博客專欄

        EEPW首頁 > 博客 > 詳解UDS CAN診斷:SecurityAccess Service(SID:0X27)

        詳解UDS CAN診斷:SecurityAccess Service(SID:0X27)

        發布人:美男子玩編程 時間:2023-02-28 來源:工程師 發布文章

        診斷和通信管理功能單元(Diagnostic and communication management functional unit)包含10種服務,本篇博文將詳細講解SecurityAccess Service(SID:0X27)的特性和協議。


        圖片

        本篇博文素材來源于:ISO 14229-1-2020:規范和要求。


        在學習本篇博文之前推薦學習:

        詳解UDS CAN診斷:什么是UDS(ISO 14229)診斷?

        詳解UDS CAN診斷:DiagnosticSessionControl Service(SID:0X10)


        很多關聯知識已經詳細講解過,這里不再贅述了。


        客戶端使用SecurityAccess Service請求安全解鎖服務端,SecurityAccess Service用于將客戶端的數據上傳到服務端或者將服務器的數據下載到服務端時候的安全訪問。


        客戶端使用SecurityAccess Service請求安全解鎖服務端流程如下所示:

        第1步:客戶端發送seed請求;

        第2步:服務端發出seed;

        第3步:客戶端發送key密鑰,依據服務端發出的seed進行處理;

        第4步:服務端解析客戶端發過來的key密鑰,如果無誤則完成安全解鎖功能。



        1


        診斷請求

        客戶端發送seed請求協議:0X27 0X** 0X&&(A_Data.A_PCI.SI和A_Data.Parameter 1~k數據)。


        圖片

        其中:

        • 0X27是服務ID(SID),1字節;

        • 0X**是服務的子功能,當requestSeed為奇數時發送send命令,范圍為:0X01~0X7F中的奇數,1字節;

        • 0X&&是可選項,用于在請求種子信息時將數據傳輸到服務器,它可以包含服務端中驗證的客戶端標識,長度不固定。


        客戶端發送key密鑰協議:0X27 0X** 0X&&(A_Data.A_PCI.SI和A_Data.Parameter 1~k數據)。


        圖片

        其中:

        • 0X27是服務ID(SID),1字節;

        • 0X**是服務的子功能,當sendKey為偶數時發送key密鑰命令,范圍為:0X01~0X7F中的偶數,1字節;

        • 0X&&的值是通過將獲取服務端發出seed數值進行安全算法生成的,所以這個值是隨著服務端發出seed數值的變化而變化,長度不固定。


        在ISO 14229-1-2020協議中規定了各類requestSeed和sendKey的意義和使用場景,如下所示:


        圖片

        標準中也規定了seed請求和key密鑰的對應關系:


        圖片

        2


        診斷響應

        診斷響應有肯定響應和否定響應兩種類型。


        2.1、肯定響應

        肯定響應表示服務端回復客戶端請求成功,響應協議:0X67 0X** 0X&&(A_Data.A_PCI.SI和A_Data.Parameter 1~k數據)。


        圖片

        其中:

        • 0X67是響應服務的SID,相當于0X27+0X40,1字節;

        • 0X**是響應服務的子功能,范圍為:0X00~0X7F,1字節。例如,客戶端使用0X01子服務,此時肯定響應的子服務就是0X01;

        • 0X&&的存在取決于securityAccessType參數,seed參數是服務端發來的數據,客戶端在安全訪問服務端時需要使用該值計算密鑰,長度不固定。


        2.2、否定響應

        否定響應表示客戶端或者服務端存在問題,否定響應會提示失敗原因。


        響應協議:0X7F 0X** 0X&&(A_Data.A_PCI.NR_SI、A_Data.A_PCI. SI和A_Data.Parameter 1數據)。


        其中:

        • 0X7F是否定響應固定數值,1字節;

        • 0X**是診斷服務ID(SID),本篇博文使用的是0X27服務,則否定響應會返回0X27,1字節;

        • 0X&&是NRC錯誤碼,描述了返回錯誤的原因,1字節。


        SecurityAccess Service(SID:0X27)有8種類型錯誤,如下所示:


        圖片圖片


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: UDS CAN

        技術專區

        關閉
        主站蜘蛛池模板: 钦州市| 梁河县| 南安市| 筠连县| 芦溪县| 凤庆县| 萝北县| 新乡市| 武冈市| 万宁市| 礼泉县| 浪卡子县| 肇州县| 海安县| 庆安县| 和林格尔县| 文山县| 梓潼县| 孝感市| 崇义县| 虎林市| 南木林县| 罗甸县| 牡丹江市| 扎赉特旗| 澄江县| 湖州市| 巫山县| 密云县| 即墨市| 云龙县| 盐山县| 齐河县| 五华县| 金平| 屯门区| 彭阳县| 离岛区| 五原县| 天津市| 台南县|