バックナンバーはこちら。
https://www.simulationroom999.com/blog/diagnostic-communication-backnumber/
はじめに
AUTOSARでのCAN-FDのシミュレーションに向けて。
AUTOSAR-CanTpとAUTOSAR-Dcmのコンフィグレーションを修正。
登場人物
博識フクロウのフクさん
イラスト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のCAN-FD向けコンフィグレーション
ぱっとコンフィグレーションを見せるとこんな感じかな。
const NSDU_INIB nsdu_inib_table[2] = {
{
0, /* 所属するチャネル番号 */
CANTP_SEND, /* NSDU送受信方向 */
1000, /* N_Ar/N_Asタイムアウト値 */
1000, /* N_Br/N_Bsタイムアウト値 */
1000, /* N_Cr/N_Csタイムアウト値 */
CANTP_ON, /* 通信中止の許可/禁止 */
CANTP_NORMALFIXED, /* アドレスフォーマット */
CANTP_ON, /* Paddingの使用有無 */
CANTP_CANFD_PHYSICAL, /* N-SDUの通信タイプ */
0, /* N_AE */
0x10, /* N_SA */
0xF1, /* N_TA */
62, /* 最大SDUデータ長(シングルフレーム) */
65535, /* 最大SDUデータ長(マルチフレーム) */
62, /* SF最大データ長 */
62, /* FF最大データ長 */
63, /* CF最大データ長 */
&nsdu_inib, /* 送受信別NSDU初期化ブロック */
},
{
1, /* 所属するチャネル番号 */
CANTP_RECEIVE, /* NSDU送受信方向 */
1000, /* N_Ar/N_Asタイムアウト値 */
1000, /* N_Br/N_Bsタイムアウト値 */
1000, /* N_Cr/N_Csタイムアウト値 */
CANTP_ON, /* 通信中止の許可/禁止 */
CANTP_NORMALFIXED, /* アドレスフォーマット */
CANTP_ON, /* Paddingの使用有無 */
CANTP_CANFD_PHYSICAL, /* N-SDUの通信タイプ */
0, /* N_AE */
0xF1, /* N_SA */
0x10, /* N_TA */
62, /* 最大SDUデータ長(シングルフレーム) */
65535, /* 最大SDUデータ長(マルチフレーム) */
62, /* SF最大データ長 */
62, /* FF最大データ長 */
63, /* CF最大データ長 */
&rx_nsdu_inib, /* 送受信別NSDU初期化ブロック */
}
};
N-SDUの通信タイプが変わって、
各データ長がCAN-FD向けに変わった感じだね。
これだけでCAN-FDの診断通信に対応するはずだよ。
ちなみにCAN版のAUTOSAR-CanTpのコンフィグレーションは以下で話してるから比較してみるのも良いかも。
AUTOSAR-DcmのCAN-FD向けコンフィグレーション
実はいじるところはほぼ無くてー。
DCM_BUF_SIZEを調整すれば終了。
#define DCM_BUF_SIZE 4095
↓
#define DCM_BUF_SIZE 65535
え?これだけ?
まぁCAN-FDになってメッセージ長が大きくなったからそれに合わせてバッファサイズも大きくしたってことなんだろうけど。
実際には4Gbyteまでは大きくしてOKだけど、
CanTpのコンフィグレーション側で65535byteを最大値にしたんで、
それに合わせた感じ。
あ、確かにCanTpの方も65535byteになってるね。
DcmのDCM_BUF_SIZEに関係する話は以下で話したね。
これで大体準備はそろった感じかなー。
まとめ
まとめだよ。
- AUTOSAR-CanTpのコンフィグレーションをCAN-FD用に修正。
- AUTOSAR-DcmのコンフィグレーションをCAN-FD用に修正。
バックナンバーはこちら。
コメント