バックナンバーはこちら。
https://www.simulationroom999.com/blog/diagnostic-communication-backnumber/
はじめに
ISO14229ことUDSの話。
UDSシミュレーションで使用するサービスについて。
登場人物
博識フクロウのフクさん
イラスト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
UDSシミュレーションで使用するサービス。
さて、UDSシミュレーションに向けていろいろ始めるんだけど、
先に使用するサービスを決めておこう。
全部はやらないの?
全部やれた方が良いんだけど、
それはそれでいろいろ大変なんだよねー。
全サービスを説明して、それを全部シミュレーションするのって。
確かに結構な数あったもんね・・・。
とりあえず、私の方でピックアップしておいた。
Service | SID | Description |
---|---|---|
DiagnosticSessionControl | $10 | 診断セッションの制御 |
SecurityAccess | $27 | セキュリティアンロック |
TesterPresent | $3E | オフボードテスタの存在の通知。(セッション維持等に利用) |
ReadDataByIdentifier | $22 | DataIdentifierによって識別されるレコードの現在値の読み取み |
WriteDataByIdentifier | $2E | dataIdentifierで指定されたレコードの書き込み |
UDSシミュレーションの基本フロー
この5つのサービスを選んだ理由とかあるの?
うん。
診断通信の基本的なフローを再現できる組み合わせを意識した。
どんなフローになるの?
今考えてるのはこんなの。
①DiagnosticSessionControlで非デフォルトセッションへ移動
②SecurityAccessでセキュリティアンロック
③TesterPresentでセッション維持
④ReadDataByIdentifierで特定データ読み出し
⑤WriteDataByIdentifierで特定データの書き換え
WriteDataByIdentifierはセキュリティアンロック状態じゃないと使えないという設定にしておく。
なるほど。
ReadDataByIdentifierとWriteDataByIdentifierで読み書きをするってのが目的なんだけど、
WriteDataByIdentifierを実現するためにはセッション移動とセキュリティアンロックが必要って流れだね。
確かに組み合わせとして面白そう。
各サービスのリクエストメッセージとレスポンスメッセージ
というわけで、上記5つのサービスに絞った
リクエストメッセージとレスポンスメッセージを次回から順次説明していこうと思う。
またCANフレームにどうのるとかって感じ?
CANフレームまでの説明はしない予定。
CANフレームへの分割はISO15765-2の時に説明したし、
各フレームパターンはサービス依存じゃなくてメッセージ長依存なんで、
今回は触れない。
そういえば、メッセージ長依存だったね。
7以下だとシングルフレームのみ
8byte以上だとマルチフレームになるんだった。
これだけ覚えておけば、上位層のISO14229-1で改めて考える必要はないね。
まぁ実際のシミュレーションの時はASCファイルでログ取るから
最終的にはCANフレームを見ることにはなるけど、メッセージ仕様としては意識しない感じだね。
まとめ
まとめだよ。
- UDSシミュレーションで実現するサービスは5つ
- DiagnosticSessionControl。
- SecurityAccess。
- TesterPresent。
- ReadDataByIdentifier。
- WriteDataByIdentifier。
- リクエストメッセージとレスポンスメッセージの説明の際はCANフレームまでの落とし込みはしない。
- あくまでISO14229-1のレイヤのみでISO15765-2のレイヤの話はしない。
バックナンバーはこちら。
コメント