【DoCAN】車両診断通信 その12【ISO-TP⑦】

【DoCAN】車両診断通信 その12【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

各種タイムアウト

フクさん
フクさん

さて、

通信と言えばタイムアウト判定と言っても過言ではないほど、タイムアウトは結構メンドクサイ。

太郎くん
太郎くん

それはなんとなくわかる。
メンドクサそう。

フクさん
フクさん

まずは名前から簡単な説明

  • N_As:フレーム送信を試みた時のタイムアウト値
  • N_Bs:FF/CF送信完了からFC受信までのタイムアウト値
  • N_Cs:FC受信/CF送信完了から次のCF送信開始までのタイムアウト値
  • N_Ar:FC送信を試みた時のタイムアウト値
  • N_Br:FF受信からFC送信開始までのタイムアウト値
  • N_Cr:CF受信から次のCF受信までのタイムアウト値
太郎くん
太郎くん

(意味わからん。)

フクさん
フクさん

(明らかに意味わからんって顔してるな。)

フクさん
フクさん

まず、末尾が”s”のものはメッセージ送信側、
末尾が”r”のものは受信側のタイムアウト値になる。

太郎くん
太郎くん

(それを聞いたところで何かの理解が進んだ気が全くしない。)

各種タイムアウト図解

フクさん
フクさん

まぁ絵で見れば大体わかると思うよ。

太郎くん
太郎くん

はよう絵をくれ!

シングルフレーム送信時のタイムアウトパラメータ

フクさん
フクさん

まずはシンプルなSF送信時のタイムアウトパラメータの図。

太郎くん
太郎くん


N_Asだけ?

フクさん
フクさん

そう。
1フレームしか送信しないんで結果的にメッセージ送信に必要なパラメータは限定される。

太郎くん
太郎くん

なんだ。ちょろいじゃん!

フクさん
フクさん

(そう言ってられるのも今のうちなんだよなぁ。)

マルチフレーム送信時のタイムアウトパラメータ

フクさん
フクさん

そして、今度はマルチフレーム送信時のタイムアウトパラメータの図。

太郎くん
太郎くん

!!!!!

フクさん
フクさん

(さぁ絶望するが良い。)

太郎くん
太郎くん

送信側は分かるけど、受信側も大量に・・・。

フクさん
フクさん

と言う感じで、ISO-TPを設計&実装すると、ここへんのタイムアウトパラメータのハンドリングが主になるね。

その他のタイムアウトパラメータ

太郎くん
太郎くん

ちょっと気になったんだけど。

フクさん
フクさん

なに?

太郎くん
太郎くん

実際の通信する場合はリクエストしてレスポンスする流れなんだよね?
リクエストメッセージを送ってからレスポンスメッセージを受けるまでのタイムアウトも有りそうなんだけど、
それは出てきてないね。

フクさん
フクさん

ほう。鋭いね。
その通り、今回は説明してない。
今回はISO15765-2に相当するメッセージの分解と構築に必要なパラメータだけでを示している。
実際のはこれより上位のレイヤを定義しているISO14229-1の中にあるタイムアウトパラメータもある。
ただし、あくまでメッセージとして成立した上のタイムアウトなんで、
ISO-TPことISO15765-2の段階でエラーがあると、そもそも判定されもしない。

太郎くん
太郎くん

まぁそのうち説明してくれるって感じかな。

まとめ

フクさん
フクさん

まとめだよ。

  • ISO-TPのタイムアウトパラメータは6個、
    • N_As、N_Bs、N_Cs、N_Ar、N_Br、N_Cr。
  • シングルフレーム送信は1フレームで完結しているのでN_Asだけ。
  • マルチフレーム送信は全パラメータを使用する。
  • ISO-TPはあくまでフレームレベルのタイムアウト判定をするだけで、メッセージ単位のタイムアウトは上位のレイヤで判定している。

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

コメント

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