バックナンバーはこちら。
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
(絶望)
(まぁ絶望するよねー。)
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。
バックナンバーはこちら。
コメント