詳解UDS CAN診斷:DiagnosticSessionControl Service(SID:0X10)
診斷和通信管理功能單元(Diagnostic and communication management functional unit)包含10種服務(wù),本篇博文將詳細講解DiagnosticSessionControl Service(SID:0X10)的特性和協(xié)議。
本篇博文素材來源于:ISO 14229-1-2020:規(guī)范和要求。
詳解UDS CAN診斷:什么是UDS(ISO 14229)診斷?
DiagnosticSessionControl Service用于在服務(wù)器中啟用不同的診斷會話。
診斷會話有兩種:Default Session和Any Other Session,它們之間可以互相轉(zhuǎn)換,如下所示:
不同服務(wù)在Default Session和Any Other Session中的權(quán)限不同,某些服務(wù)并不支持在Default Session中運行,所有服務(wù)都可以在Any Other Session中運行,如下圖(not applicable代表不支持服務(wù),x代代表支持服務(wù))所示:
1
診斷請求
診斷請求分為具有子功能的請求和沒有子功能的請求兩種。
首先來看看具有子功能的請求協(xié)議,如下所示:
我們只需要關(guān)注A_Data.A_PCI.SI和A_Data.Parameter 1~k數(shù)據(jù),其他參數(shù)數(shù)值取決于客戶的實際應用。
具有子功能的請求A_Data.Parameter 1字節(jié)存儲的就是子功能數(shù)據(jù)。
沒有子功能的請求協(xié)議,如下所示:
A_Data.Parameter 1字節(jié)不再規(guī)定。
接著來看一看協(xié)議中對A_Data.A_PCI.SI和A_Data.Parameter 1~k數(shù)據(jù)的規(guī)定和使用。
啟用不同的診斷會話需要客戶端發(fā)送請求協(xié)議:0X10 0X**(A_Data.A_PCI.SI和A_Data.Parameter 1~k數(shù)據(jù))。
其中:
0X10是服務(wù)ID(SID),1字節(jié);
0X**是服務(wù)的子功能,范圍為:0X00~0XFF,1字節(jié)。
在ISO 14229-1-2020協(xié)議中規(guī)定了各類數(shù)值子功能的意義和使用場景,如下所示:
2
診斷響應
診斷響應有肯定響應和否定響應兩種類型。
2.1、肯定響應
肯定響應協(xié)議中也只需要關(guān)注A_Data.A_PCI.SI和A_Data.Parameter 1~k數(shù)據(jù),如下所示:
肯定響應表示服務(wù)端回復客戶端請求成功,響應協(xié)議:0X50 0X** 0X&&(A_Data.A_PCI.SI和A_Data.Parameter 1~k數(shù)據(jù))。
其中:
0X50是響應服務(wù)的SID,相當于0X10+0X40,1字節(jié);
0X**是響應服務(wù)的子功能,范圍為:0X00~0XFF,1字節(jié)。例如,客戶端使用0X01子服務(wù),此時肯定響應的子服務(wù)就是0X01;
0X&&記錄了包含服務(wù)器報告的特定會話參數(shù)值,范圍為:0X00~0XFF,4字節(jié),協(xié)議規(guī)定如下所示:
2.2、否定響應
否定響應表示客戶端或者服務(wù)端存在問題,否定響應會提示失敗原因。
否定響應協(xié)議中只需要關(guān)注A_Data.A_PCI.NR_SI、A_Data.A_PCI. SI和A_Data.Parameter 1數(shù)據(jù),如下所示:
響應協(xié)議:0X7F 0X** 0X&&(A_Data.A_PCI.NR_SI、A_Data.A_PCI. SI和A_Data.Parameter 1數(shù)據(jù))。
其中:
0X7F是否定響應固定數(shù)值,1字節(jié);
0X**是診斷服務(wù)ID(SID),本篇博文使用的是0X10服務(wù),則否定響應會返回0X10,1字節(jié);
0X&&是NRC錯誤碼,描述了返回錯誤的原因,1字節(jié)。
DiagnosticSessionControl Service(SID:0X10)有3種類型錯誤,如下所示:
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。
全息投影相關(guān)文章:全息投影原理