バックナンバーはこちら。
https://www.simulationroom999.com/blog/diagnostic-communication-backnumber/
はじめに
ISO14229ことUDSの話。
WriteDataByIdentifierサービスの具体的な電文について。
登場人物
博識フクロウのフクさん
イラスト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
前提となるDIDリソース状態
ReadDataByIdentifierサービスの時と同じようにDIDを先に定義しておこう。
マルチDIDとかは無いから1個でいいんじゃない?
そうだね。一個だけ定義しよう。
- 0x1234:2byte
送受信
定義したDIDを使用した送受信がこんなん。
Req:0x2E 0x12 0x34 0x01 0x02
Res:0x6E 0x12 0x34
うーん、驚くほどシンプルだねー。
実際はセッション移動とかセキュリティ解除が必要になるけどね。
このサービスだけの電文としてはシンプルだね。
そうか、セッションとセキュリティの存在を忘れてた・・・。
NRC含めた送受信
もう1パターンやっとくか。
え?他の通信方法もあるの?
通信としては一緒なんだけど、NRC$78が入るパターン。
あー、それは見ておきたい!
こんな感じ。
NRC$78は2回入る想定。
Req:0x2E 0x12 0x34 0x01 0x02
Res:0x7F 0x2E 0x78 // ResponsePending(P2*タイマへ移行)
Res:0x7F 0x2E 0x78 // ResponsePending(P2*タイマリセット)
Res:0x6E 0x12 0x34
なるほど。
こんなイメージになるのか・・・。
これってオフボードテスタ―側もECU側も結構大変な気がするなー。
まぁNRC$78仕様はWriteDataByIdentifierサービスに限ったものじゃないで、
結構初期に解決する問題なんだよねー。
だから、あんまり大変とは思ってないかも。
え?そうなの?
明確なものは実装難度が高くても設計検証内容が明確なんで
結果的にはそれほど怖くないね。
ほー。そういうものなのかー。
一通りシミュレーションで扱うサービスは説明したから
次回から、シミュレーションの構成とかどうCanTpとDcmを繋いでいくかとかの話に突入だな。
まとめ
まとめだよ。
- WriteDataByIdentifierサービスの具体的送受信例。
- NRC$78を含めた送受信例も。
バックナンバーはこちら。
コメント