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

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

バックナンバーはこちら。
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のインターフェースの特定

フクさん
フクさん

前回CanTpをA-COMSTACKから引っこ抜いてきたわけなんだけど、
動作させるにはCanTpのインターフェースを把握しなければならない。

太郎くん
太郎くん

どうするの?

フクさん
フクさん

AUTOSAR-CanTpのドキュメントを死ぬ気で読む。

AUTOSAR_SWS_CANTransportLayer r4.3

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

太郎くん
太郎くん

(絶望)

フクさん
フクさん

(まぁ絶望するよねー。)

AUTOSAR CanTpのインターフェース仕様概要

フクさん
フクさん

とりあえず、私の方で必要最低限の情報をピックアップしておいたよ。

太郎くん
太郎くん

(良かった・・・。仕様書に殺されるところだった・・・。)

要件番号 要件 要約
[SWS_CanTp_00212]

Service name: CanTp_Transmit

This service is used to request the transfer of segmented data.

送信開始指示(セグメントタイプのみ。非セグメントはCanTp以外で実現。)
[SWS_CanTp_00213]

Service name: CanTp_MainFunction

The main function for scheduling the CAN TP.

メイン関数。コンフィグレーションで指定した駆動周期で呼び出す必要あり。(タイマ関連の処理も埋まってるため)
[SWS_CanTp_00214]

Service name: CanTp_RxIndication

The CanIf module shall call this function after a successful reception of a Rx CAN L-PDU.

受信割り込み通知用
[SWS_CanTp_00215]

Service name: CanTp_TxConfirmation

The CanIf module shall call the function CanTp_TxConfirmation after the TP related CAN Frame (SF, FF, CF, FC) has been transmitted through the CAN network.

送信完了割り込み通知用
[SWS_CanTp_00216]

API function: CanIf_Transmit

This service initiates a request for transmission of the CAN L-PDU specified by the CanTxSduId and CAN related data in the L-SDU structure.

データリンク層(CAN:ISO11898-1)への送信要求

API function: PduR_CanTpCopyRxData

This function is called to provide the received data of an I-PDU segment (N-PDU) to the upper layer.

受信したデータを指定されたバッファへコピー(残りバッファサイズの通知含む)

API function: PduR_CanTpCopyTxData

This function is called to acquire the transmit data of an I-PDU segment (N-PDU).

送信するデータを指定したバッファからコピー

API function: PduR_CanTpRxIndication

Called after an I-PDU has been received via the TP API, the result indicates whether the transmission was successful or not.

診断メッセージ受信完了通知(エラー完了含む)

API function: PduR_CanTpStartOfReception

This function is called at the start of receiving an N-SDU.

診断メッセージ受信開始通知

API function: PduR_CanTpTxConfirmation

This function is called after the I-PDU has been transmitted on its network, the result indicates whether the transmission was successful or not.

診断メッセージ送信完了通知(エラー完了含む)
太郎くん
太郎くん

これでも十分絶望だぁ。

フクさん
フクさん

うーん、やっぱりダメかー。

太郎くん
太郎くん

もうちょっと分かるようにならないの?

フクさん
フクさん

うーん、先頭語がポイントかなぁ。

太郎くん
太郎くん

と言うと?

フクさん
フクさん

以下のイメージかな。
CanTp_:CanTpへの通知
CanIf_:CanTpからCanIfへの通知
PduR_:CanTpから上位層への通知

太郎くん
太郎くん

うーん、ちょっと雰囲気わかったようなわからないような・・・。

フクさん
フクさん

わかった!
ちょっと絵で表現できないか次回までに考える!

まとめ

フクさん
フクさん

まとめだよ。

  • AUTOSAR CanTpの仕様はAUTOSAR_SWS_CANTransportLayerで公開されている。
  • 最低限把握する必要のあるインターフェースは以下。
    • CanTp_Transmit。
    • CanTp_MainFunction。
    • CanTp_RxIndication。
    • CanTp_TxConfirmation。
    • CanIf_Transmit。
    • PduR_CanTpCopyRxData。
    • PduR_CanTpCopyTxData。
    • PduR_CanTpRxIndication。
    • PduR_CanTpStartOfReception。
    • PduR_CanTpTxConfirmation。

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

コメント

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