バックナンバーはこちら
https://www.simulationroom999.com/blog/model-based-of-minimum-backnumber/
はじめに
CANapeへのXCP関連の設定の続き。
登場人物
博識フクロウのフクさん

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
イベントリスト

さぁXCP関連の設定の続きだよ。

後、どのくらいあるの?

項目としては
- イベントリスト
- DAQリスト
- トランスポート層
だね。

じゃあ、やりますか・・・。

イベントリストは多分あまり詳しくは説明していない。

え?そうなの?
DAQがイベントと同期だどうのは言ってた気はしたけど。

うん。
その通りでDAQリストを送信するタイミングを作り出す重要な概念。

結構設定はメンドクサイ?

今回は特に複雑なものはないね。
プロトタイプECUの仕様によると、
\(1[ms]\)タイマによるイベントがあるだけのようだ。
TimeStampフィールドのデータ長はDWORD。
TimeStampの精度は\(1[us]\)
なので、設定としては以下になる。


リストという割には1個で済むんだ。

今回はたまたまだね。
実際はもっとあることが多い。

どちらにしても今回はシンプルでよかった。
DAQリスト

次はDAQリストだな。
これも説明していなかったけど、
DAQリストにはStaticDAQとDynamicDAQの2種類に大別される。
今回はDynamicDAQなんで、DAQリストの一般設定は何も入れなくて良い。

StaticDAQとDynamicDAQの違いは?

StaticDAQは最初からDAQリスト構成が決まっている状態。
DynamicDAQはCMDのALLOC_DAQ、ALLOC_ODT等で動的にDAQリスト構成を決められる、
って違いがある。
DynamicDAQの方が主流っぽいけどね。

DynamicDAQの方が簡単ってことかな?

実装する側としてはDynamicDAQの方が手間かかるだろうね。
でも、計測の自由度が無くなるんで、結果的にDynamicDAQを選択せざる得ない感じ。

これもECUの負荷を想定したoptionalな仕様ってことかー。

あと、DAQリストの拡張設定を調整する必要があるね。

任せた。

(だんだん頭が付いてこれなくなってきてるな・・・。)
DAQリスト(拡張設定)

MIN_DAQは0。
識別子フィールドタイプは4byte構成のRelative_Word_Aligned。
オーバーロード通知は無いな。
ODTの最適化型はBYTEなんでデフォルト。
アドレス拡張は使わない。
単位はBYTE。
MAX_ODTは255。
整合性モードはDAQだな。


最適化型ってなに?

1要素の大きさを示してる。
大体byteだけどね。

これもECU都合に変わってくるやつなんだな。

「高度な設定」も調整するの?

ここは調整しなくても良いね。
トランスポート層

次で最後だ。

トランスポート層ってところだね。

ここはプロトタイプECUのIPアドレスとポート番号とプロトコルを指定すればOK。
IPアドレスは192.168.40.20。
ポート番号は5000。
プロトコルはUDP。


これはXCPと関係ないネットワーク設定だからイメージ湧くな。

「高度な設定」の方で、PACKET_CTRをオンにしておこう。


PACKET_CTRってXCPパケットの外側にいたCTRってやつ?
デフォルトだとオフになっているんだ。

そうみたいだね。
XCPの仕様としてはオフのパターンは無かったと思うが、
CANapeとしてはCTRが無いことも想定しているようだ。
ここら辺はXCPの初期のころの仕様の揺らぎの名残なのかもね。

仕様の揺らぎって、標準仕様なのに。

内容を入力してください。標準仕様って聞くと絶対的な響きはあるが、
必ずしもそうとは限らない。
時代の流れで、最適な標準は変わっていくんで、
どうしても揺らぎってのは発生すると思った方が良いね。

そういうもんかぁ。
難しいなぁ。

で、これで計測できる状態?

XCPの設定は出来たと思うけど、
計測はまだだな。
ASAP2 Studioで変数定義しないと。

(ホント、次から次へといろいろ出てくるな。)
まとめ

まとめだよ。
- DAQリストを駆動させるイベントの定義が必要。
- DAQリストタイプはStaticDAQとDynamicDAQの2種類がある。
- 今回はDynamicDAQ
- トランスポート層はEthernetとしての設定。
- デフォルトではCTRがオフになっているので、オンに切り替える。
バックナンバーはこちら
コメント