詳解UDS CAN診斷:SecurityAccess Service(SID:0X27)
診斷和通信管理功能單元(Diagnostic and communication management functional unit)包含10種服務(wù),本篇博文將詳細(xì)講解SecurityAccess Service(SID:0X27)的特性和協(xié)議。
本篇博文素材來源于:ISO 14229-1-2020:規(guī)范和要求。
在學(xué)習(xí)本篇博文之前推薦學(xué)習(xí):
詳解UDS CAN診斷:什么是UDS(ISO 14229)診斷?
詳解UDS CAN診斷:DiagnosticSessionControl Service(SID:0X10)
很多關(guān)聯(lián)知識(shí)已經(jīng)詳細(xì)講解過,這里不再贅述了。
客戶端使用SecurityAccess Service請(qǐng)求安全解鎖服務(wù)端,SecurityAccess Service用于將客戶端的數(shù)據(jù)上傳到服務(wù)端或者將服務(wù)器的數(shù)據(jù)下載到服務(wù)端時(shí)候的安全訪問。
客戶端使用SecurityAccess Service請(qǐng)求安全解鎖服務(wù)端流程如下所示:
第1步:客戶端發(fā)送seed請(qǐng)求;
第2步:服務(wù)端發(fā)出seed;
第3步:客戶端發(fā)送key密鑰,依據(jù)服務(wù)端發(fā)出的seed進(jìn)行處理;
第4步:服務(wù)端解析客戶端發(fā)過來的key密鑰,如果無誤則完成安全解鎖功能。
1
診斷請(qǐng)求
客戶端發(fā)送seed請(qǐng)求協(xié)議:0X27 0X** 0X&&(A_Data.A_PCI.SI和A_Data.Parameter 1~k數(shù)據(jù))。
其中:
0X27是服務(wù)ID(SID),1字節(jié);
0X**是服務(wù)的子功能,當(dāng)requestSeed為奇數(shù)時(shí)發(fā)送send命令,范圍為:0X01~0X7F中的奇數(shù),1字節(jié);
0X&&是可選項(xiàng),用于在請(qǐng)求種子信息時(shí)將數(shù)據(jù)傳輸?shù)椒?wù)器,它可以包含服務(wù)端中驗(yàn)證的客戶端標(biāo)識(shí),長度不固定。
客戶端發(fā)送key密鑰協(xié)議:0X27 0X** 0X&&(A_Data.A_PCI.SI和A_Data.Parameter 1~k數(shù)據(jù))。
其中:
0X27是服務(wù)ID(SID),1字節(jié);
0X**是服務(wù)的子功能,當(dāng)sendKey為偶數(shù)時(shí)發(fā)送key密鑰命令,范圍為:0X01~0X7F中的偶數(shù),1字節(jié);
0X&&的值是通過將獲取服務(wù)端發(fā)出seed數(shù)值進(jìn)行安全算法生成的,所以這個(gè)值是隨著服務(wù)端發(fā)出seed數(shù)值的變化而變化,長度不固定。
在ISO 14229-1-2020協(xié)議中規(guī)定了各類requestSeed和sendKey的意義和使用場景,如下所示:
標(biāo)準(zhǔn)中也規(guī)定了seed請(qǐng)求和key密鑰的對(duì)應(yīng)關(guān)系:
2
診斷響應(yīng)
診斷響應(yīng)有肯定響應(yīng)和否定響應(yīng)兩種類型。
2.1、肯定響應(yīng)
肯定響應(yīng)表示服務(wù)端回復(fù)客戶端請(qǐng)求成功,響應(yīng)協(xié)議:0X67 0X** 0X&&(A_Data.A_PCI.SI和A_Data.Parameter 1~k數(shù)據(jù))。
其中:
0X67是響應(yīng)服務(wù)的SID,相當(dāng)于0X27+0X40,1字節(jié);
0X**是響應(yīng)服務(wù)的子功能,范圍為:0X00~0X7F,1字節(jié)。例如,客戶端使用0X01子服務(wù),此時(shí)肯定響應(yīng)的子服務(wù)就是0X01;
0X&&的存在取決于securityAccessType參數(shù),seed參數(shù)是服務(wù)端發(fā)來的數(shù)據(jù),客戶端在安全訪問服務(wù)端時(shí)需要使用該值計(jì)算密鑰,長度不固定。
2.2、否定響應(yīng)
否定響應(yīng)表示客戶端或者服務(wù)端存在問題,否定響應(yīng)會(huì)提示失敗原因。
響應(yīng)協(xié)議:0X7F 0X** 0X&&(A_Data.A_PCI.NR_SI、A_Data.A_PCI. SI和A_Data.Parameter 1數(shù)據(jù))。
其中:
0X7F是否定響應(yīng)固定數(shù)值,1字節(jié);
0X**是診斷服務(wù)ID(SID),本篇博文使用的是0X27服務(wù),則否定響應(yīng)會(huì)返回0X27,1字節(jié);
0X&&是NRC錯(cuò)誤碼,描述了返回錯(cuò)誤的原因,1字節(jié)。
SecurityAccess Service(SID:0X27)有8種類型錯(cuò)誤,如下所示:
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。