【XCP】最小構成のMBD事例 第2章 その172【XCP Basic㉖】

【XCP】最小構成のMBD事例 第2章 その172【XCP Basic㉖】 事例
【XCP】最小構成のMBD事例 第2章 その172【XCP Basic㉖】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/

はじめに

前回はSTART_STOP_DAQ_LISTコマンドでDAQ開始可能状態まで持ってきた。
これであと1コマンド投げればDAQが起動し、
計測データを送信し始めるはず。

というわけで、
今回はDAQを起動し、その状況をモニタしてみる。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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

DAQ起動一歩手前

太郎くん
太郎くん

前回まででDAQ起動直前まで来てるから、
あと1コマンド投げればDAQの振る舞いを見れるね。

フクさん
フクさん

そうだね。
コマンドとしてはSTART_STOP_SYNCHコマンドになる。

フクさん
フクさん

あと、DAQを起動するとXCPスレーブから能動的にCANフレームが送信されるから、
同時にCAN回線モニタもしておこう。

太郎くん
太郎くん

えーっと、python-canにcan.loggerってのが同梱されてるんだっけか?

フクさん
フクさん

そうだね。
以下のコマンドで起動できて、canlog.ascに回線ログが記録される。

python -m can.logger -i vector -c 0 -f canlog.asc
太郎くん
太郎くん

確かここらへんでやったね。

DAQ起動

フクさん
フクさん

START_STOP_SYNCHコマンドの電文は以下になる。
0xDD, 0x01
2byte目が開始停止指示で、
0x00:停止
0x01:開始
の意味になってる。

太郎くん
太郎くん

なるほど。
これはシンプルだ。

太郎くん
太郎くん

まずは、事前にcan.loggerを起動しておいて・・・。
それからSTART_STOP_SYNCHコマンドを送信!

xcp_sendrecv([0xDD, 0x00, ]);
Send msg : Timestamp:        0.000000   ID: 0001 S DLC: 2 dd 00
Recv msg : Timestamp: 1636380856.168114 ID: 0002 S DLC: 1 ff Channel: 1

XCP Basicコンソール画面

-> CC_START_STOP_SYNCH mode=01h
<- 0xFF
太郎くん
太郎くん

コマンドとしてはOKっぽい。

CAN回線ログ

フクさん
フクさん

CAN回線ログも見てみよう。

太郎くん
太郎くん

こんな感じのが取れてた。

Begin Triggerblock 
 0.000000 Start of measurement
 0.000000 1  1               Rx   d 2 DD 01
 0.009650 1  2               Rx   d 1 FF
 0.013541 1  2               Rx   d 7 00 00 00 00 00 00 00
 0.029491 1  2               Rx   d 7 00 9F 00 00 00 00 00
 0.044909 1  2               Rx   d 7 00 39 01 00 00 00 00
 0.060555 1  2               Rx   d 7 00 D6 01 00 00 00 00
 0.076120 1  2               Rx   d 7 00 71 02 00 00 00 00
 0.091554 1  2               Rx   d 7 00 0C 03 00 00 00 00
 0.107241 1  2               Rx   d 7 00 A9 03 00 00 00 00
 0.122405 1  2               Rx   d 7 00 40 04 00 00 00 00
 0.138175 1  2               Rx   d 7 00 DE 04 00 00 00 00
 0.154165 1  2               Rx   d 7 00 7E 05 00 00 00 00
 0.169099 1  2               Rx   d 7 00 13 06 00 00 00 00
 0.184148 1  2               Rx   d 7 00 AA 06 00 00 00 00
 0.199229 1  2               Rx   d 7 00 40 07 00 00 00 00
太郎くん
太郎くん

CANIDが2データフィールドの先頭が0x00になってるのがDAQパケットかな?

フクさん
フクさん

そうだね。

太郎くん
太郎くん

2~3byte目がなんか値が常に動いてるみたいだけど、
なんかそういう変数を計測してたんだっけか?

フクさん
フクさん

2~3byte目はタイムスタンプだな。
単位はXCP Basicのデフォルトの実装だと100[us]になってるはずだ。
ちなみにリトルエンディアンで埋まってる。

太郎くん
太郎くん

そういえば、タイムスタンプ有効で設定してたっけ。

太郎くん
太郎くん

そうすると、その後ろの0x00000000が計測値ってことか。
当たり前だけど、何をしていないアドレスだから0値のままってことか。

フクさん
フクさん

次回は、ここに外部から書き込みをして更新状態を見てみよう。

まとめ

フクさん
フクさん

まとめだよ。

  • START_STOP_SYNCHコマンドを投げて見た。
  • 並行してcan.loggerでCAN回線モニタを実施。
    • DAQパケットの計測ができた。
  • タイムスタンプ有効設定をしていたため先頭の方にタイムスタンプが埋まっている。
  • タイムスタンプの後ろから計測データが続く。
    • 今回は0値が取得されている。

バックナンバーはこちら。

コメント

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