バックナンバーはこちら。
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の仕様として取り込まれていると推測。
バックナンバーはこちら。
コメント