博客專欄

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

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

        發布人:美男子玩編程 時間:2022-11-30 來源:工程師 發布文章

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


        圖片

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


        在學習本篇博文之前推薦學習:
        詳解UDS CAN診斷:什么是UDS(ISO 14229)診斷?


        DiagnosticSessionControl Service用于在服務器中啟用不同的診斷會話。


        診斷會話有兩種:Default Session和Any Other Session,它們之間可以互相轉換,如下所示:


        圖片圖片

        不同服務在Default Session和Any Other Session中的權限不同,某些服務并不支持在Default Session中運行,所有服務都可以在Any Other Session中運行,如下圖(not applicable代表不支持服務,x代代表支持服務)所示:

        圖片

        1


        診斷請求

        診斷請求分為具有子功能的請求和沒有子功能的請求兩種。


        首先來看看具有子功能的請求協議,如下所示:


        圖片

        我們只需要關注A_Data.A_PCI.SI和A_Data.Parameter 1~k數據,其他參數數值取決于客戶的實際應用。


        具有子功能的請求A_Data.Parameter 1字節存儲的就是子功能數據。


        沒有子功能的請求協議,如下所示:


        圖片

        A_Data.Parameter 1字節不再規定。


        接著來看一看協議中對A_Data.A_PCI.SI和A_Data.Parameter 1~k數據的規定和使用。


        啟用不同的診斷會話需要客戶端發送請求協議:0X10 0X**(A_Data.A_PCI.SI和A_Data.Parameter 1~k數據)。


        圖片

        其中:

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

        • 0X**是服務的子功能,范圍為:0X00~0XFF,1字節。


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


        圖片圖片

        2


        診斷響應

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


        2.1、肯定響應

        肯定響應協議中也只需要關注A_Data.A_PCI.SI和A_Data.Parameter 1~k數據,如下所示:


        圖片

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


        圖片

        其中:

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

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

        • 0X&&記錄了包含服務器報告的特定會話參數值,范圍為:0X00~0XFF,4字節,協議規定如下所示:


        圖片

        2.2、否定響應

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


        否定響應協議中只需要關注A_Data.A_PCI.NR_SI、A_Data.A_PCI. SI和A_Data.Parameter 1數據,如下所示:


        圖片

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


        其中:

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

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

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


        DiagnosticSessionControl Service(SID:0X10)有3種類型錯誤,如下所示:


        圖片


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

        全息投影相關文章:全息投影原理


        關鍵詞: CAN

        技術專區

        關閉
        主站蜘蛛池模板: 哈尔滨市| 永定县| 邢台县| 桃江县| 榆林市| 湘潭市| 东辽县| 长宁区| 白山市| 桃江县| 从化市| 正阳县| 长阳| 浪卡子县| 达州市| 汕尾市| 定陶县| 荥阳市| 海城市| 石阡县| 博爱县| 永吉县| 南丹县| 郓城县| 特克斯县| 原阳县| 张家川| 汝州市| 台北县| 德保县| 乌兰县| 铁力市| 巴中市| 柞水县| 宁武县| 克东县| 治县。| 封丘县| 山东省| 商水县| 全南县|