【DoCAN】車両診断通信 その9【ISO-TP④】

【DoCAN】車両診断通信 その9【ISO-TP④】 車両診断通信

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

はじめに

車両診断通信のネットワーク層の話。
メッセージを構築するための各種フレーム概要。

登場人物

博識フクロウのフクさん

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

通信のイメージ

太郎くん
太郎くん

前回まででアドレッシングフォーマットって、どこに送るかって話はOKだと思うんだけど、
実際に送る時ってどんなイメージになるのかな?
CANって1フレーム8[byte]だったと思うんだけど、
そうなると、8[byte]が上限ってことになるの?

フクさん
フクさん

いんや、一応4095byteまでは送れる
N_PCI(Network Protocol Control Information)というのが各CANフレームの先頭について、8[byte]以上のデータの送受信をしている。

太郎くん
太郎くん

N_PCIってのが何かわからないけど、
EthernetでいうところのIPフラグメンテーションみたいなイメージかな。

フクさん
フクさん

IPフラグメンテーションほどの複雑さはないけど、認識としてはそれでOKだね。

各種フレーム

フクさん
フクさん

まず、話しやすさ重視ってことで

アドレッシングフォーマットはNormal fixed addressing前提とする。

太郎くん
太郎くん

なんで?

フクさん
フクさん

CANのDataFieldって最大で8byteなんだけど、
Extended addressingとかだと、DataFieldの先頭1byte分はアドレッシングフォーマットで使われちゃうじゃん?

太郎くん
太郎くん

前回の説明だとそんな感じだったね。

フクさん
フクさん

アドレッシングフォーマットでCANのDataFieldのサイズが変ることを加味すると説明がメンd。
もとい、理解が難しくなる。

太郎くん
太郎くん

(説明がメンドイのか)

フクさん
フクさん

じゃー各種フレームを列挙しよう。

  • SF(Single Frame)
  • FF(First Frame)
  • FC(Flow Control)
  • CF(Consecutive Frame)
太郎くん
太郎くん

うーん、さっそくカオスな匂いがしてきたぞ。

フクさん
フクさん

まぁ基本的な部分はそれほど難しくないから。

基本フロー

フクさん
フクさん

各フレームの中身は置いておいて、
基本的なフローを先に説明しよう。

フクさん
フクさん

まず7byte以下の送信の場合はSFになる
CAN 1フレームで済むので絵で描いたとしてもこんな感じだ。

太郎くん
太郎くん

まぁ送ったってだけだね。

フクさん
フクさん

そして、車両診断通信の難易度を引き上げている
8byte以上の送信がこんなんだ。

太郎くん
太郎くん

え?一方的に送るのかと思ったけど、
一回FCが入るんだね?
これはなんか特別な理由があるの?

フクさん
フクさん

FCの後にCFが連続的にくるんで、
CFの送信間隔などの制限をFCで送信元に伝えているんだ。
パラメータ名でいうとSTmin(SeparationTime minimum)ってやつだ。
ECUのスペックが低いと取りこぼす可能性があるから、

ある程度の隙間時間を作りたいときに使用される。

太郎くん
太郎くん

そんなこともやっているのか・・・。
結構スペックを気にする仕様が多いけど、

車両ネットワークに宿命みたいな感じだな。

フクさん
フクさん

ちなみにFCを複数回待たせるような送信方法もある。

太郎くん
太郎くん

このFCが複数入るのは何できまるの?

フクさん
フクさん

FCの中に

次のFCが送出されるまでのCFの数を規定するパラメータがあるんだ。
パラメータ名はBS(Block Size)。

太郎くん
太郎くん

結構気にしないとうまく通信できなそうだな。

フクさん
フクさん

まぁ一個一個理解していければ割と平気にはなると思うよ。

まとめ

フクさん
フクさん

まとめだよ。

  • CAN複数フレームで最大4095byteまで送信/受信可能。
    • N_PCIというパラメータが各フレームの先頭にあり、うまくつなげられるような仕掛けがしてある。
  • 送信データ数によって送信方式が大きく2つに分かれる。
    • 7byte以下であればシングルフレーム送信。
    • 8byte以上であればマルチフレーム送信。
  • マルチフレーム送信はFCでCFの送信間隔、再度のFC受信タイミング設置などでスループットをコントロールする仕掛けがある。

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

コメント

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