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

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

バックナンバーはこちら。
https://www.simulationroom999.com/blog/diagnostic-communication-backnumber/

はじめに

AUTOSAR-Dcmのシミュレーションの話。
TesterPresentsのシミュレーション結果。

登場人物

博識フクロウのフクさん

イラスト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

TesterPresentsのシミュレーションの結果(メッセージ)

太郎くん
太郎くん

TesterPresentsの復習はこちらー。

フクさん
フクさん

そして、シミュレーション結果。

Send msg : 3e00			// TesterPresents
Recv msg : 7e00			// 
Send msg : 3e0000		// TesterPresentsのメッセージ長間違い
Recv msg : 7f3e13		// NRC$13(incorrectMessageLengthOrInvalidFormat)
Send msg : 3e01			// TesterPresentsの存在しないsub-function
Recv msg : 7f3e12		// NRC$12(subFunctionNotSupported)
Send msg : 3e80			// TesterPresents(suppressPosRspMsgIndicationBitあり)
Send msg : 3e8000		// TesterPresentsのメッセージ長間違い(suppressPosRspMsgIndicationBitあり)
Send msg : 3e81			// TesterPresentsの存在しないsub-function(suppressPosRspMsgIndicationBitあり)
Send msg : 1003			// extendDiagnosticSessionへ遷移
Recv msg : 5003003001f4	// P2時間=48[ms],P2*時間=5000
Send msg : 2713			// Seed要求
Recv msg : 6713deadbeef	// Seed=0xdeadbeef
Send msg : 2714deadbeef	// Key送信(Key=0xdeadbeef)
Recv msg : 6714			// 
sleep : 4.900000 [ms]	// 4.900[ms] Wait
Send msg : 3e80			// TesterPresents(suppressPosRspMsgIndicationBitあり)
sleep : 4.900000 [ms]	// 4.900[ms] Wait
Send msg : 3e80			// TesterPresents(suppressPosRspMsgIndicationBitあり)
sleep : 4.900000 [ms]	// 4.900[ms] Wait
Send msg : 2713			// Seed要求
Recv msg : 671300000000	// Seed=0x00000000(セキュリティアンロック状態維持)
sleep : 5.100000 [ms]	// 5.100[ms] Wait
Send msg : 2713			// Seed要求
Recv msg : 7f277f		// NRC$7F(serviceNotSupportedInActiveSession)
Exiting

TesterPresentsのシミュレーションの結果(CAN回線)

フクさん
フクさん

CAN回線ログで見るとこんな感じ。

Begin Triggerblock
 0.000000 Start of measurement
 
 //TesterPresents
 0.000000 1  18DA10F1x       Rx   d 8 02 3E 00 CC CC CC CC CC
 0.009879 1  18DAF110x       Rx   d 8 02 7E 00 55 55 55 55 55
 
 // TesterPresentsのメッセージ長間違い
 0.013959 1  18DA10F1x       Rx   d 8 03 3E 00 00 CC CC CC CC
 0.015892 1  18DAF110x       Rx   d 8 03 7F 3E 13 55 55 55 55
 
 // esterPresentsの存在しないsub-function
 0.018858 1  18DA10F1x       Rx   d 8 02 3E 01 CC CC CC CC CC
 0.020791 1  18DAF110x       Rx   d 8 03 7F 3E 12 55 55 55 55
 
 // TesterPresents(suppressPosRspMsgIndicationBitあり)
 0.025125 1  18DA10F1x       Rx   d 8 02 3E 80 CC CC CC CC CC
 
 // TesterPresentsのメッセージ長間違い(suppressPosRspMsgIndicationBitあり)
 0.072778 1  18DA10F1x       Rx   d 8 03 3E 80 00 CC CC CC CC
 
 // TesterPresentsの存在しないsub-function(suppressPosRspMsgIndicationBitあり)
 0.123699 1  18DA10F1x       Rx   d 8 02 3E 81 CC CC CC CC CC
 
 // extendDiagnosticSessionへ遷移
 0.177447 1  18DA10F1x       Rx   d 8 02 10 03 CC CC CC CC CC
 0.179364 1  18DAF110x       Rx   d 8 06 50 03 00 30 01 F4 55
 
 // Seed要求
 0.183533 1  18DA10F1x       Rx   d 8 02 27 13 CC CC CC CC CC
 0.186343 1  18DAF110x       Rx   d 8 06 67 13 DE AD BE EF 55
 
 // Key送信(Key=0xdeadbeef)
 0.192594 1  18DA10F1x       Rx   d 8 06 27 14 DE AD BE EF CC
 0.195322 1  18DAF110x       Rx   d 8 02 67 14 55 55 55 55 55
 
 // 4.900[ms] Wait
 
 // TesterPresents(suppressPosRspMsgIndicationBitあり)
 5.100740 1  18DA10F1x       Rx   d 8 02 3E 80 CC CC CC CC CC
 
 // 4.900[ms] Wait
 
 // TesterPresents(suppressPosRspMsgIndicationBitあり) 
 10.052895 1  18DA10F1x       Rx   d 8 02 3E 80 CC CC CC CC CC
 
 // 4.900[ms] Wait
 
 // Seed要求
 15.003722 1  18DA10F1x       Rx   d 8 02 27 13 CC CC CC CC CC
 15.005786 1  18DAF110x       Rx   d 8 06 67 13 00 00 00 00 55

 // 5.100[ms] Wait
 
 // Seed要求
 20.110475 1  18DA10F1x       Rx   d 8 02 27 13 CC CC CC CC CC
 20.112540 1  18DAF110x       Rx   d 8 03 7F 27 7F 55 55 55 55
End TriggerBlock

TesterPresentsのシミュレーションの結果を見た感じの考察

太郎くん
太郎くん

suppressPosRspMsgIndicationBitありだとエラーパターンでもNRCを返さないんだねー。

フクさん
フクさん

ISO14229-1としてはsuppressPosRspMsgIndicationBitありだとしてもNRCを返すべきなんだけどねー。

太郎くん
太郎くん

え?そうなの?
なんでNRCを返さないの?

フクさん
フクさん

AUTOSAR-Dcmとしての仕様によるものだね。
suppressPosRspMsgIndicationBitありのTesterPresentsは無条件にS3時間を延長する役目から、ちょっと特別扱いされてるんだよ。

太郎くん
太郎くん

どんな特別扱い?

フクさん
フクさん

本来、各種サービスはDcmのサブモジュールのDsdでメッセージ判定され、
Dspでサービス別のハンドリングされるんだけど、
suppressPosRspMsgIndicationBitありのTesterPresentsに限っては
同じくサブモジュールの一つであるDslでS3時間を延長したあとは、破棄することになってる。
よって、そのあとのDsdの判定も無いため、結果的にNRCが抑制される。

太郎くん
太郎くん

でも、ISO14229-1に反して大丈夫なのかなー。

フクさん
フクさん

まぁ現実論としては無害だし、
むしろ、S3時間延長に特化した仕様の方が有益だろうね。

太郎くん
太郎くん

うーん、そういうものと思っておくか。

太郎くん
太郎くん

あとは、セッションの維持とかもしっかり効いてるみたいだね。
4.9秒周期でTesterPresentsを送ってる間はセッション維持されて、
5.1秒に切り替えるとdefaultSessionに戻ってるね。

フクさん
フクさん

このセッション維持がTesterPresentsの目的そのものだからねー。

太郎くん
太郎くん

しかし、pingっぽいサービスとだけ認識していたから、
動作確認となるといろいろやる必要があってちょっと意外だったなー。

まとめ

フクさん
フクさん

まとめだよ。

  • TesterPresentsのシミュレーションの結果を確認。
    • メッセージレベルの確認。
    • CAN回線レベルの確認。
  • suppressPosRspMsgIndicationBitありのTesterPresentsはAUTOSAR-Dcm仕様としては特別扱い。
    • DslでS3時間延長をしたあとはメッセージ破棄して、Dsd、Dspには渡さない。
    • ISO14229-1と異なる結果になるが、実用性の方を重視されている。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました