KEI

車両診断通信

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

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

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

ISO-TPのシミュレーションをしよう。のシリーズ。 A-COMSTACKからCanTpだけを引っこ抜いてくる。 A-COMSTACKのCanTpの本体はcantp.c。 多くのヘッダファイルも持ってくる必要がある。 タイマ割り込み、排他はWin32APIで実現。
車両診断通信

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

TOPPERS協会からA-COMSTACKというAUTOSARの通信スタックBSW群が公開されている。 この中のCanTpを使用。 A-COMSTACKはAUTOSARパートナーになっていないと商用利用出来ない。 今回は学習目的で利用。 動作確認用のオフボードテスタ側はpython can-isotpを使用する。
車両診断通信

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

ISO-TPのシミュレーションをしよう。のシリーズ。 XLドライバライブラリの受信割り込みと送信完了割り込みの再現方法について。 割り込みエミュレーションのコードを提示。 WaitForSingleObjectでシグナル待ち。 xlCanReceiveで受信、送信、エラーの各種情報を取得。 xlEvent.tagで各種処理に振り分け。
車両診断通信

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

MCAL-CANDRVを実現するには受信割り込みと送信完了割り込みの再現が必要。 XLドライバライブラリは受信、送信済み、エラーのイベントをWin32APIのイベントオブジェクト経由で通知する。 よって、Win32APIによるスレッド、イベントオブジェクトのハンドリング知識が必要。
車両診断通信

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

ISO-TPのシミュレーションをしよう。のシリーズ。 Pythonから一旦離れて、AUTOSAR CanTpの話。 AUTOSAR CanTp編に突入だよー。 AUTOSARはSW-C、RTE、BSW、MCALのレイヤー構造になってる。 AUTOSAR CanTpはBSWの一つでISO15765-2を再現している。
車両診断通信

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

ISO-TPのシミュレーションをしよう。のシリーズ。 Pythonパッケージcan-isotpによる疑似ECU。のパラメータを弄ってみる回。 can-isotpのFCパラメータ変更実験をした。 can-isotpの完成度は高い。 少なくとも、そこらの構造が破綻したヤッツケ車両診断通信よりかは遥かに良い。
車両診断通信

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

ISO-TPのシミュレーションをしよう。のシリーズ。 Pythonパッケージcan-isotpによる疑似ECU。の実際に動かす回。 can-isotpのリクエストレスポンスの実験を行った。 SF-SF通信→OK! MF-MF通信→OK!
車両診断通信

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

ISO-TPのシミュレーションをしよう。のシリーズ。 Pythonパッケージcan-isotpによる疑似ECU。 車両診断通信の大半はリクエスト-レスポンスで一つの通信。 例外的にリクエストのみ、レスポンスのみもあるが、かなりレアなパターン。 リクエスト側、レスポンス側ともに受信スレッドの仕組みでスクリプト肥大している。
車両診断通信

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

can-isotpのマルチフレームリクエストの振る舞いを変えるためFC相当を変えてみた。 指定したSTminに準拠する振る舞いにはなった。 通信上の時間パラメータはシステム間で同期が取れないことを前提として幅を持たせている。 10[ms]以上ならば、11[ms]を狙って、確実に10[ms]以上を満たす。