【CanTp】車両診断通信 その36【シミュレーション㉓】

【CanTp】車両診断通信 その36【シミュレーション㉓】 車両診断通信

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

はじめに

ISO-TPのシミュレーションをしよう。のシリーズ。
CanTpのコンフィグレーション詳細について。

登場人物

博識フクロウのフクさん

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

AUTOSAR-CanTpのコンフィグレーションに関する仕様

フクさん
フクさん

今回はAUTOSAR-CanTpのコンフィグレーションの詳細に入る。

太郎くん
太郎くん

これはAUTOSAR-CanTpの仕様書を見れば良いのかな?

AUTOSAR_SWS_CANTransportLaye r4.3

https://www.autosar.org/fileadmin/user_upload/standards/classic/4-3/AUTOSAR_SWS_CANTransportLayer.pdf

フクさん
フクさん

まぁ最初はそうなんだけど・・・。
一応、該当すると思われる仕様を抜き出してみよう。

要件番号要件要約
[SWS_CanTp_00035]A CAN NSduId shall only be linked to one CAN LSduId that is used to transmit SF, FF, FC and CF frames.要は、SF/FF/FC/CFのフレームで使用するCANIDを確定しろって話。実際には送信/受信で1トランザクションなので、結果的に2つのNSduIdを用意しないと通信ができない。USBエンドポイントと似たような感じ。
[SWS_CanTp_00122]Each connection channel is independent of the other connection channels. This means that a connection channel uses its own resources, such as internal buffer, timer, or state machine.チャネルは他のチャネルには依存しない。ちなみにチャネルはバッファ、タイマ、状態機などのリソースを内包したもの。USBpipe、TCPsocketと似たような感じ。
[SWS_CanTp_00340]Data structure type for the post-build configuration parameters.コンフィグレーション定義はポストビルドパラメータとする。コードとして埋め込む必要はない。が埋め込んでも良い。
太郎くん
太郎くん

・・・。

フクさん
フクさん

・・・。

太郎くん
太郎くん

どういうこと?

フクさん
フクさん

チャンネルって概念の説明と、
内部の状態遷移とか管理する構造を持ちなさいって話と、
コンフィグレーション定義はビルド後に決定するパラメータとしても良いよー。
って言ってるね。

太郎くん
太郎くん

具体的にどうするかってのは?

フクさん
フクさん

AUTOSAR_SWS_CANTransportLayer.pdfの
10.2 Containers and configuration parameters以降でいっぱい書いてる。

太郎くん
太郎くん

(絶望)

フクさん
フクさん

(また絶望してる・・・。まぁそりゃそうなんだけど。)

AUTOSAR-CanTpのコンフィグレーション構造

フクさん
フクさん

まぁこれは絵を見て全体像を把握するのが手っ取り早いね。
AUTOSARの仕様書には記載されていないけど、
絵に起こすとこんな感じになる。

AUTOSAR-CanTpコンフィグレーション構造。CfgCB、チャネルCB、NSDU_CB、NSDU初期化ブロック、駆動周期
太郎くん
太郎くん

おー、UMLっぽい書き方だねー。
これだとなんとなく分かる。

フクさん
フクさん

本来だとAUTOSAR仕様もUMLでコンフィグレーション構造を記載することになってるんだけど、
CanTpに関しては何故か無いんだよねー。

太郎くん
太郎くん

そうなの?
なんで?

フクさん
フクさん

推測になるが・・・。

フクさん
フクさん

AUTOSARの前身にOSEKってのがあるんだよね。

OSEK(オーゼック、独:Offene Systeme und deren Schnittstellen für die Elektronik im Kraftfahrzeug、英語:Open system together with interfaces for automotive electronics(車載電子機器用の公開インタフェース及びシステム))は、自動車制御を行うエンジンコントロールユニット(ECU)で用いるプログラムの業界標準作成を目標としてドイツの自動車産業が1993年に設立したプロジェクトである。 また、そのプロジェクトが規定したオペレーティングシステム仕様も指す。

Wikipediaより(https://ja.wikipedia.org/wiki/OSEK)
フクさん
フクさん

CanTpってこのOSEK時代からあるものを、割とそのまま踏襲しているみたい。
よって、そのままで使えるじゃんってことで一旦放置されてるのかも。

太郎くん
太郎くん

放置って、そんなんあり?

フクさん
フクさん

まぁ標準仕様作成の作業優先度の問題もあれば、
実績があるからそのままってのも理由かもね。

太郎くん
太郎くん

まぁここに文句を言っても始まらないかー。

太郎くん
太郎くん

で、具体的なコンフィグレーションはどうするの?

フクさん
フクさん

本来得あれば、コンフィグレータを使用するんだけど、
今回は無理やりCanTpを引っこ抜いてきた手前、手動で構造体の実態を定義していくことになる。

太郎くん
太郎くん

まじか

フクさん
フクさん

まぁそこまで複雑ってことも無いんで、

次回あたりにざっと書いてみようかと思う。

まとめ

フクさん
フクさん

まとめだよ。

  • CanTpのコンフィグレーション構造はAUTOSAR仕様に記載されている。
  • しかし、UMLによる表記無し。
    • OSEK時代からの踏襲であるため更新優先度が下がってる可能性あり。
  • 今回はコンフィグレータを使用せず、手動で該当の構造体実体を定義していく方針。

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

コメント

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