【上流検証】最小構成のモデルベース開発事例 その45【Bypass⑪】

【上流検証】最小構成のモデルベース開発事例 その45【Bypass⑪】 事例

バックナンバーはこちら
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]\)
なので、設定としては以下になる。

CANape、設定、プロトコル、XCP、イベントリスト、イベント名、イベントチャンネル、レート、単位、イベントタイプ、プライオリティ、DAQ、STIM、マルチサンプルの数、タイムスタンプ、スレーブのタイムスタンプ、マスタのタイムスタンプ、サイズ、DWORD、精度、1ns
太郎くん
太郎くん

リストという割には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だな。

CANape、プロトコル、DAQリスト、拡張設定、定義済みDAQリスト、定義済みDAQリストの数(MIN_DAQ)、パケット形式、識別子フィールドタイプ、Relative_Word_Align、オーバーロード通知、ODT設定、一般、最適化の型、デフォルト、アドレス拡張、free、ODTエントリ(DAQ)、単位、BYTE、最大ODTエントリ数、255、その他、DAQタイムアウト、1000ms、整合性モード、DAQ、プリスケーラサポート、レジュームサポート
太郎くん
太郎くん

最適化型ってなに?

フクさん
フクさん

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

太郎くん
太郎くん

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

太郎くん
太郎くん

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

フクさん
フクさん

ここは調整しなくても良いね。

トランスポート層

フクさん
フクさん

次で最後だ。

太郎くん
太郎くん

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

フクさん
フクさん

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

CANape、プロトコル、XCP、トランスポート層、一般、Ethernetトランスポート層、共通、XCPonEthernetバージョン、1.1、Ethernet、ホスト、192,168,40,20、ポート、5000、プロトコル、UDP
太郎くん
太郎くん

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

フクさん
フクさん

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

CANape、トランスポート層、XCP、高度な設定、PACKET_CTR
オン、COUNTER_HANDLING、コマンド応答を含む、IGNORE_CTR_FAULTS、いいえ、OVERRUN_HANDLING、At XCP Master、PROTOCOK_TYPE、XCP3(dlc+ctr WORD)、TCP_TIMEOUT、0、アクティブにすると、XCPマスタはトランスポート レイヤ ヘッダーに増加するパケットカウンタをセットします。
太郎くん
太郎くん

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

フクさん
フクさん

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

太郎くん
太郎くん

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

フクさん
フクさん

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

太郎くん
太郎くん

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

太郎くん
太郎くん

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

フクさん
フクさん

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

太郎くん
太郎くん

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

まとめ

フクさん
フクさん

まとめだよ。

  • DAQリストを駆動させるイベントの定義が必要。
  • DAQリストタイプはStaticDAQとDynamicDAQの2種類がある。
    • 今回はDynamicDAQ
  • トランスポート層はEthernetとしての設定。
    • デフォルトではCTRがオフになっているので、オンに切り替える。

バックナンバーはこちら

コメント

タイトルとURLをコピーしました