バックナンバーはこちら。
https://www.simulationroom999.com/blog/diagnostic-communication-backnumber/
はじめに
AUTOSAR-Dcmのシミュレーションの話。
WriteDataByIdentifierのシミュレーションおまけ。
登場人物
博識フクロウのフクさん
イラスト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
NRCの特殊な仕様
前回、妙な事言ってたけど、今回はなにするの?
前回のWriteDataByIdentifierでNRC$78が出てきたと思うけど、
あれの特殊な挙動をやってみようと思う。
どんな感じ?
まぁすぐ終わるんで、まずは挙動を見せるよ。
特殊な挙動のシミュレーションの結果(メッセージ)
まずはメッセージ。
Send msg : 1003 // extendDiagnosticSessionへ遷移
Recv msg : 500300300064
Send msg : 2713 // Seed要求
Recv msg : 6713deadbeef
Send msg : 2714deadbeef // Key送信
Recv msg : 6714
Send msg : 2e567811223344 // DID=5678へ書き込み
Recv msg : 7f2e78 // NRC$78(ResponsePending)
Recv msg : 7f2e78 // NRC$78(ResponsePending)
Recv msg : 7f2e10 // NRC$10(generalReject)
Exiting
特殊な挙動のシミュレーションの結果(CAN回線)
そしてCAN回線ログ。
Begin Triggerblock
0.000000 Start of measurement
// extendDiagnosticSessionへ遷移
0.000000 1 18DA10F1x Rx d 8 02 10 03 CC CC CC CC CC
0.001884 1 18DAF110x Rx d 8 06 50 03 00 30 00 64 55
// Seed要求
0.005841 1 18DA10F1x Rx d 8 02 27 13 CC CC CC CC CC
0.007823 1 18DAF110x Rx d 8 06 67 13 DE AD BE EF 55
// Key送信
0.011862 1 18DA10F1x Rx d 8 06 27 14 DE AD BE EF CC
0.013787 1 18DAF110x Rx d 8 02 67 14 55 55 55 55 55
// DID=5678へ書き込み
0.017834 1 18DA10F1x Rx d 8 07 2E 56 78 11 22 33 44
0.066617 1 18DAF110x Rx d 8 03 7F 2E 78 55 55 55 55
1.066197 1 18DAF110x Rx d 8 03 7F 2E 78 55 55 55 55
2.067071 1 18DAF110x Rx d 8 03 7F 2E 10 55 55 55 55
End TriggerBlock
これは・・・。
WriteDataByIdentifierでNRC$78でP2*時間で延長してるようだけど・・・。
最後にNRC$10(generalReject)になってるね???
どういう状態なの?
NRC$78って無限に返すとどうなると思う?
んー?
無限に待ち続ける???
そうだね。
ただ、仕様としてそれって良いのかな?
さすがに無限はまずいと思うよー。
どっかでタイムアウトなりしないと・・・。
そこで登場するのが、DslDiagRespMaxNumRespPendってDslの内部パラメータ。
DslDiagRespMaxNumRespPendとは?
DslDiagRespMaxNumRespPendって何?
NRC$78を返す回数の上限を規定する。
ん?返す回数?
あ!
この上限を超えるとNRC$10になるのか?!
Yes!
まぁISO14229-1には規定されていないAUTOSAR-Dcmとしての仕様だねー。
ISO14229-1に規定されてないのにAUTOSAR-Dcmで規定して良いの?
まぁ、ISO14229-1で規定されてないとはいえ、
各完成車メーカとしては規定していることが多いんじゃないかなー。
AUTOSARも規格に準拠するという面と完成車メーカのデファクトを取り込むって面があるんで、
今回の話は後者に該当。
なるほどねー。
まとめ
まとめだよ。
- NRC$78(ResponsePending)が一定回数を超えるとNRC$10(generalReject)を返すパターンを見た。
- この仕様はISO14229-1では規定されていない
- しかし、デファクトスタンダードである可能性が高い。
- よって、AUTOSARの仕様として取り込まれていると推測。
バックナンバーはこちら。
コメント