UDS學習筆記(五)——ISO14229

在學習完ISO15765後,我們就可以正式的學習UDS了,也就是ISO14229。我們前面知道了,所有的ISO14229中的服務啊,請求啊,都是在ISO15765基礎上進行的。例如10功能代碼表示的就是切換對話模式的功能。接收端接收到消息之後,還要進行相應的答覆。因此我們本節就分爲診斷請求以及診斷響應兩個部分進行學習。

目錄

 

診斷請求

診斷響應


診斷請求

那我們按套路,首先就上一張圖吧。

這麼多的診斷服務,其實主要還是分爲兩大類。:一類是擁有sub-function的,另一類是沒有sub-function的。

service ID就是上圖的ID值,不同的ID表示不同的功能。

sub-function表示的是該服務的子服務,例如對於10 02來說,10表示的是DiagnosticSessionControl即切換ECU的診斷模式,02表示的是切換到程序下載模式。嚴格來說,sub-function只有七位,其最高位用來表示ECU是否要響應該消息。當置1時,ECU就不會進行回覆。

parameter則沒有嚴格的限制,只是表示服務的一些參數。

帶sub-function的服務

 不帶sub-function的服務就更好理解了。

不帶sub-function的服務

診斷響應

響應來說,主要分爲兩種響應,第一種是ECU正確的執行了該診斷服務,被稱爲positive response。它的響應格式就是診斷請求的Service ID + 0X40。

positive response

而當ECU無法執行該診斷服務時,就會響應一條negative response表示ECU沒有執行該診斷服務,對於negative response來說,其固定成三個字節。第一個字節爲0x7F,第二個字節是被拒絕掉的SID,第三個字節是這個診斷服務無法被執行的原因(下圖)。

negative response
無法執行的原因

參考文獻

參考的知乎專欄

https://blog.csdn.net/u012252959/article/details/83063899

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章