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

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

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

はじめに

とりあえずメモリアクセスに絡まないコマンドをXCP Basicに対して送ってみることにした。
前回はCONNECTコマンドを送信して期待通りのレスポンスになっていることが確認できた。

今回は残りのGET_STATUS、SYNCのコマンドを送ってみる。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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 BasicにGET_STATUSコマンドを送ってみる

太郎くん
太郎くん

前回の続きってことで、
次はGET_STATUSコマンドを送ってみよう。

フクさん
フクさん

パケットとしては0xFDを送ればOKだ。

太郎くん
太郎くん

じゃー前回のCONNECTコマンドと同じように送ればOKか。

send_msg = can.Message(arbitration_id=1, extended_id=0, data=[0xFD, ])
print('Send msg : %s' % send_msg)
bus.send( send_msg )
recv_msg = bus.recv(timeout=1)
print('Recv msg : %s' % recv_msg)
太郎くん
太郎くん

お、一応応答があったみたいだ。

Send msg : Timestamp:        0.000000   ID: 0001 S DLC: 1 fd
Recv msg : Timestamp: 1634994335.163173 ID: 0002 S DLC: 6 ff 20 00 08 00 00 Channel: 1

XCP Basicコンソール画面

-> GET_STATUS
<- 0xFF sessionstatus=20h, protectionstatus=00
フクさん
フクさん

GET_STATUSも問題ないようだね。

SYNCコマンドを送ってみる

太郎くん
太郎くん

次はSYNCコマンドだねー。

フクさん
フクさん

0xFCを送ればOKだ。

太郎くん
太郎くん

じゃー同じように。

send_msg = can.Message(arbitration_id=1, extended_id=0, data=[0xFC, ])
print('Send msg : %s' % send_msg)
bus.send( send_msg )
recv_msg = bus.recv(timeout=1)
print('Recv msg : %s' % recv_msg)
太郎くん
太郎くん

これは・・・応答はあったようだけど、
0xFFじゃないからエラー応答

Send msg : Timestamp:        0.000000   ID: 0001 S DLC: 1 fc
Recv msg : Timestamp: 1634994499.259418 ID: 0002 S DLC: 2 fe 00 Channel: 1

XCP Basicのコンソール画面

-> SYNC
<- 0xFE 0x00
フクさん
フクさん

あー、SYNCコマンドは必ず
「Command processor synchronization.」

「コマンドプロセッサの同期。」
0x00というエラーコードが返るんだよ。
エラーコードと言うカテゴリに入ってはいるが、
正常応答と思って良い。

太郎くん
太郎くん

ほう。
そうなっているのか。

フクさん
フクさん

これで現時点で試したいコマンドは試せたな。

Jupyter Notebook

フクさん
フクさん

今回はJupyter Notebook経由でXCPコマンドの送受信をしたんで、
その時のipynbをGithubに上げておこう。

まとめ

フクさん
フクさん

まとめだよ。

  • XCP BasicにGET_STATUSコマンドを送ってみた。
    • 問題無く応答あり。
  • 次にSYNCコマンドを送ってみた。
    • 応答があったがエラー応答?
      • 実は「コマンドプロセッサの同期。」を示す0x00というエラーコードで通常応答になる。
  • メモリ非依存のコマンド確認は取れた状態。

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

コメント

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