【DoCAN】車両診断通信 その59【UDS⑲】

【DoCAN】車両診断通信 その59【UDS⑲】 車両診断通信

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

はじめに

ISO14229ことUDSの話。
ReadDataByIdentifierサービスの具体的な電文について。

登場人物

博識フクロウのフクさん

イラスト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サービスの説明は前回のでOKといえばOKだと思うのだけど。

太郎くん
太郎くん

うーん、やっぱり具体的な電文を見たいなぁ。

フクさん
フクさん

じゃー、まずDIDリソースの状態定義からするか。

太郎くん
太郎くん

何それ?

フクさん
フクさん

簡単にいうと、DIDに紐づいたdataRecordが何byte長かって話だね。
実際はどういうパラメータがどのような配置って話なんだけど、
そこまでは詰めなくても良いかな。

太郎くん
太郎くん

えーっと、細かいパラメータは一旦抜きの方向で・・・。

フクさん
フクさん

はいよ。

フクさん
フクさん

とりあえずDIDは2つで、それぞれのサイズ

  • 0x1234:2byte
  • 0x5678:4byte

まぁ実際は数十byteとかでもっと大きいと思うけど。

太郎くん
太郎くん

ここで変なリアリティは要らないよ。
短くていいよ!(切実)

フクさん
フクさん

じゃ、上の構成で。

シングルDIDの送受信

フクさん
フクさん

じゃ、基本のシングルDIDの場合の送受信は以下になる。

Req: 0x22 0x12 0x34		// DID=0x1234 要求
Res: 0x62 0x12 0x34 0x01 0x02
Req: 0x22 0x56 0x78		// DID=0x5678 要求
Res: 0x62 0x12 0x34 0x03 0x04 0x05 0x06
太郎くん
太郎くん

うん、これは単純で分かり易い。

マルチDIDの送受信

フクさん
フクさん

次はマルチDIDの場合の送受信は以下になる。

Req: 0x22 0x12 0x34 0x56 0x78		// DID=0x1234/0x5678 要求
Res: 0x62 0x12 0x34 0x01 0x02 0x56 0x78 0x03 0x04 0x05 0x06
Req: 0x22 0x56 0x78 0x12 0x34		// DID=0x5678/0x1234 要求
Res: 0x62 0x56 0x78 0x03 0x04 0x05 0x06 0x12 0x34 0x01 0x02
太郎くん
太郎くん

あ、DIDは勝手にソートされないんだね。
要求した順番になるんだ。

マルチDIDの送受信(未サポートDIDがある場合)

フクさん
フクさん

ついでにこれもやっておこう。

Req: 0x22 0x11 0x11 0x12 0x34		// DID=0x1111/0x1234 要求
Res: 0x62 0x12 0x34 0x01 0x02
Req: 0x22 0x56 0x78 0x22 0x22		// DID=0x5678/0x2222 要求
Res: 0x62 0x12 0x34 0x03 0x04 0x05 0x06
太郎くん
太郎くん

え?何やってるの?
DIDが0x1111と0x2222の話なんて出てきてないよ?

フクさん
フクさん

うん。
これは存在しないDIDを混ぜるとどうなるかをやってみただけ。

太郎くん
太郎くん

エラーにはならずに存在するDIDだけを返すんだ。

フクさん
フクさん

そうそう。
マルチDIDの場合、こういうのがあるんで、ちゃんとレスポンスメッセージに乗っているDIDもチェックが必要。

太郎くん
太郎くん

なんでエラーにしないの?

フクさん
フクさん

機能アドレスを利用した運用を想定しているのかもね。
全ECUに同一のDIDを複数要求して、多少未サポートDIDがあっても可能な限り返すって仕様。

太郎くん
太郎くん

確かに、そっちの方が効率的と言えば効率的かー。

フクさん
フクさん

まぁそんな使い方は私も見たことはないけどね。

フクさん
フクさん

とりあえず、ReadDataByIdentifierサービスは大体わかった?

太郎くん
太郎くん

バッチリ―・・・とまでは行かないけど、雰囲気としてはわかったよー。

まとめ

フクさん
フクさん

まとめだよ。

  • シングルDIDの送受信を見た。
  • マルチDIDの送受信を見た。
    • 一部のDIDが未定義なパターンも。

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

コメント

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