【CanTp】車両診断通信 その27【シミュレーション⑭】

【CanTp】車両診断通信 その27【シミュレーション⑭】 車両診断通信

バックナンバーはこちら。
https://www.simulationroom999.com/blog/diagnostic-communication-backnumber/

はじめに

ISO-TPのシミュレーションをしよう。のシリーズ。
Pythonパッケージcan-isotpによる疑似ECU。のパラメータを弄ってみる回。

登場人物

博識フクロウのフクさん

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

can-isotpのパラメータ

フクさん
フクさん

前回、無事can-isotpのよるリクエストレスポンスができたわけなのだけど
ここらでFCのパラメータを弄ってみる。

太郎くん
太郎くん

FCのパラメータというと、BSとかSTmin?

フクさん
フクさん

そうだね。
割と簡単にいじれそうだからちょっと実験してみよう。

パラメータ変更

フクさん
フクさん

前々回、前回で使用したスクリプトの中に以下のパラメ―タ用のディクショナリがある。

isotp_params = {
 'stmin' : 0, 
 'blocksize' : 0,
 'wftmax' : 0,
 'll_data_length' : 8,
 'tx_padding' : 0xCC,
 'rx_flowcontrol_timeout' : 1000,
 'rx_consecutive_frame_timeout' : 1000,
 'squash_stmin_requirement' : False,
 'can_fd' : False,
 'tx_data_min_length' : 8
}
太郎くん
太郎くん

もしかして、これを弄ればOK?

フクさん
フクさん

Yes。

フクさん
フクさん

というわけで、リクエスト側、レスポンス側の両方のBSとSTminを弄ってみる。

パラメータ変更後の動作

フクさん
フクさん

パラメータとしてはこんな感じで行く。
・リクエスト側:BS=3、STmin=1
・レスポンス側:BS=2、STmin=2

フクさん
フクさん

ざっと修正してざっと動かしたときのログがこれ。

Begin Triggerblock
 0.000000 Start of measurement
 0.000000 1  18DA10F1x       Rx   d 8 10 1E 01 02 03 04 05 06
 0.001909 1  18DAF110x       Rx   d 8 30 02 02 CC CC CC CC CC
 0.005915 1  18DA10F1x       Rx   d 8 21 07 08 09 10 01 02 03
 0.008880 1  18DA10F1x       Rx   d 8 22 04 05 06 07 08 09 10
 0.010953 1  18DAF110x       Rx   d 8 30 02 02 CC CC CC CC CC
 0.016843 1  18DA10F1x       Rx   d 8 23 01 02 03 04 05 06 07
 0.020881 1  18DA10F1x       Rx   d 8 24 08 09 10 55 55 55 55
 0.036889 1  18DAF110x       Rx   d 8 10 1E 01 02 03 04 05 06
 0.039780 1  18DA10F1x       Rx   d 8 30 03 01 55 55 55 55 55
 0.058802 1  18DAF110x       Rx   d 8 21 07 08 09 10 01 02 03
 0.072778 1  18DAF110x       Rx   d 8 22 04 05 06 07 08 09 10
 0.078709 1  18DAF110x       Rx   d 8 23 01 02 03 04 05 06 07
 0.079643 1  18DA10F1x       Rx   d 8 30 03 01 55 55 55 55 55
 0.106660 1  18DAF110x       Rx   d 8 24 08 09 10 CC CC CC CC
End TriggerBlock
太郎くん
太郎くん

おー、ちゃんとFC待ちしてBS単位で受け付けているみたいだねー。
STminもちゃんと機能してるね。

フクさん
フクさん

というわけでcan-isotpの完成度はかなり高いと言える。
正直、車両診断通信をちょっとかじった人が実装されたものよりかは遥かに信頼できる。

太郎くん
太郎くん

なに?
過去に何かあったの???

フクさん
フクさん

いやー、診断通信って振る舞いだけで見ると

あまりレイヤとか意識しなくても、それっぽくは実装できちゃうんだよねー。
だけど、レイヤ無視の実装ってやっぱりどっかで破綻することが多くて、
破綻した車両診断通信を解析/修正することが多かったんだよね・・・。
コードがキレイとか以前に構造が破綻してるんで、そもそも修正と言えるのかってレベル。

太郎くん
太郎くん

なんか恐ろしい目にあったってことは分かった。
レイヤは意識することにするよ。

まとめ

フクさん
フクさん

まとめだよ。

  • can-isotpのFCパラメータ変更実験をした。
  • can-isotpの完成度は高い。
    • 少なくとも、そこらの構造が破綻したヤッツケ車両診断通信よりかは遥かに良い。

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

コメント

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