吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

UDS診斷服務介紹之31服務

jf_EksNQtU6 ? 來源: ADAS與ECU之吾見 ? 2023-08-08 10:48 ? 次閱讀

正文

服務功能

功能描述

根據ISO14119-1標準中所述,診斷服務31服務主要用于實現針對某類測試場景,非正常工況下的程序活動以及其他擦除內存等連續性操作步驟的集合。

在某些情況下2F服務的基本功能也是能夠通過31服務來實現,可以理解2F實現的功能31服務均可以實現,不過如果能夠用2F實現的功能來用31服務,未免有些大材小用,因此31服務則是用于更為復雜的輸入輸出控制場景,而2F服務則可用于較為簡單常見的輸入輸出控制場景。

下列文中使用到的Client可直接理解為上位機Tester,Server可直接理解為接受Tester診斷請求的ECU。

應用場景

一般而言,對于31診斷服務,主要應用場景為以下場合:

比如用于某sensor特定工況下的操作集合,如進行攝像頭或者雷達內參標定流程;

在整車制造過程中較為常見的便是某Sensor的外參標定工位,在該工位中需要用到31服務開啟標定例程,標定流程結束后也能夠31服務獲取標定例程的最終結果;

如雷達使用過程中的非正常工況下的發波波形配置調整可以通過31服務來實現;

在進行UDS刷寫過程中可以通過31服務來觸發內存的擦除操作等;

上述這些應用場景較為常見,這里就不一一列舉。

除了在哪些應用場景下使用,在此還需要針對31服務提出如下幾點注意事項:

31服務針對同一控制場景一般可分為開始,停止,獲取結果三個過程,這三個過程并不是同時存在,是否需要同時存在完全可以客戶自定義;

31服務針對每一個控制場景均可以一個Routine ID來進行唯一的區別,因此不同的控制場景應采用唯一的Routine ID來進行區別;

通過AUTOSAR工具鏈配置的31 Routine回調函數命名時,函數名除了說明其基本功能以外,也需要將對應的Routine ID體現在函數名稱中,這樣便于搜索排查問題,是一種不錯的代碼實踐;

對于31服務涉及的回調函數,一般不建議走RTE,主要是從代碼可維護角度而言,更加簡潔明了,實現效率高,走RTE接口還需增加額外的工作量,沒有必要且容易出錯。

31服務控制基本原理:

如下圖1所示,針對31服務的通信控制過程會經過如下幾個AUTOSAR BSW模塊進行處理,然后完成最終的Routine控制,具體步驟如下:

Client 發送診斷指令給到Server,Server接收到指令后通過確認Routine Type來決定調用不同的回調函數;

在每個回調函數中便可以實現客戶自定義的控制場景,具體場景就是要根據客戶需求來自定義來實現的。

16ef8b3c-3508-11ee-9e74-dac502259ad0.png

圖1 31服務控制流程圖

服務請求

服務請求是Client發送給到Server的診斷服務指令。

請求格式

按照ISO14229-1標準所述,如下圖2所示為31服務診斷請求格式,即上述31服務控制原理中診斷服務請求格式:

170736e2-3508-11ee-9e74-dac502259ad0.png

圖2 31診斷服務請求格式

上述參數routineControlOptionRecord是可選項,在項目中可自定義,如傳遞相關的一些控制參數等。除此之外,就是SID,SubFunction,routineIdentifier這三個參數則必選,下圖3中各參數解釋如下:

1723fbd8-3508-11ee-9e74-dac502259ad0.png

圖3 31診斷服務請求格式說明

請求實例

開啟Routine(01)

以開啟Routine為例,假設Routine ID為0201,該Routine則用于進行短時間的輸入輸出控制, 31服務診斷請求開啟Routine實例如下圖4所示:

1733fd6c-3508-11ee-9e74-dac502259ad0.png

圖4 31服務開啟Routine請求實例

停止Routine(02)

以停止Routine為例,31服務診斷停止Routine請求實例如下圖5所示:

17586148-3508-11ee-9e74-dac502259ad0.png

圖5 31服務停止Routine請求實例

獲取Routine結果(03)

以獲取Routine結果為例,31服務診斷獲取Routine結果請求實例如下圖5所示:

1786238a-3508-11ee-9e74-dac502259ad0.png

圖6 31服務獲取Routine結果請求實例

服務響應

服務響應是針對Client對Server診斷請求的響應。

正響應格式

如下圖7所示,為31診斷服務的正響應格式:

17aaf87c-3508-11ee-9e74-dac502259ad0.png

圖7 31診斷服務正響應格式

從上圖中可以看出,31診斷服務的正響應由以下二個部分組成:

Response ID:該參數固定為SID+0x40 = 0x71;

SubFunction:該參數為上述診斷請求格式中Routine Type保持一致;

routineIdentifier: 該參數與診斷服務請求中的routineIdentifier中保持一致;

routineInfo:一般可以理解為客戶自定義,作為可選項;

routineStatusRecord: 同上;

正響應實例

開啟Routine(01)

如下圖8所示,為上述31 01 02 01請求示例所對應的正響應:

17b3cbc8-3508-11ee-9e74-dac502259ad0.png

圖8 31 01正響應示例

其中,0x01就是跟診斷請求中31 01中的RoutineType保持一致即可,同時routineStatusRecord則是根據客戶需求進行自定義回復。

停止Routine(02)

如下圖9所示,為上述31 02 02 01請求示例所對應的正響應:

17e4be72-3508-11ee-9e74-dac502259ad0.png

圖9 31 02正響應示例

其中,0x02就是跟診斷請求中31 02中的RoutineType保持一致即可,同時routineStatusRecord則是根據客戶需求進行自定義回復。

獲取Routine結果(03)

如下圖10所示,為上述31 03 02 01請求示例所對應的正響應:

180a0de4-3508-11ee-9e74-dac502259ad0.png

圖10 31 03正響應示例

其中,0x03就是跟診斷請求中31 03中的RoutineType保持一致即可,同時routineStatusRecord則是根據客戶需求進行自定義回復。

負響應NRC支持

絕大多數情況下,Server針對Client的請求都會給到正響應,比如發生重啟前需確保整車處于安全狀態,如引擎熄火,車速不能超過3km/h等,或者為了防止不按照診斷請求格式進行請求,那么Server需要通過某種方式來告訴Client執行不成功的原因在哪里以便于調查問題直至得到正響應。

因此ISO14229-1針對所有的診斷服務提供了一種統一的診斷負響應的診斷格式:7F +SID + NRC。

其中NRC全稱為Negetive Responce Code,每個NRC具有唯一的含義來代表當前診斷請求錯誤的原因所在。當然每個診斷服務支持的NRC不盡相同,具體支持的NRC需要參考ISO14229-1標準文檔,對于31服務而言支持的NRC如下圖:

1844b7e6-3508-11ee-9e74-dac502259ad0.png

185ab3f2-3508-11ee-9e74-dac502259ad0.png

圖11 31服務NRC支持

當診斷請求的subfuntion不在Server支持的范圍內時,則Server會回復”7F 31 12“;

當發送報文長度或者格式不對時,則Server會回復"7F 31 13";

例如當嘗試請求復位時且當前車速條件不滿足,此時Client發送診斷請求時,Server將會回復“7F 31 22”來告訴請求者當前進入編程會話的條件不滿足,請再次檢查進入編程會話的條件;

當某個routine還沒有Start時便請求結果或者中止Routine時,那么Server會回復"7F 31 24";

當routineIdentifier或者可選的routineControlOptionRecord中均超出規定的范圍時,則Server會回復“7F 31 31”;

當該routineIdenfier設置了安全訪問等級時,如果未解鎖便執行該31服務,則Server會回復"7F 31 33";

當31服務用于擦除NVM時,在此過程中如果出現失敗那么Server便會回復"7F 31 72"

上述NRC也存在對應的優先級,因此小T將對應的31服務NRC優先級展示如下圖12所示:

1881125e-3508-11ee-9e74-dac502259ad0.png

圖12 31服務NRC優先級

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內存
    +關注

    關注

    8

    文章

    3055

    瀏覽量

    74327
  • AUTOSAR
    +關注

    關注

    10

    文章

    363

    瀏覽量

    21778
  • ecu
    ecu
    +關注

    關注

    14

    文章

    892

    瀏覽量

    54745
  • 上位機
    +關注

    關注

    27

    文章

    945

    瀏覽量

    55003

原文標題:UDS服務基礎篇之31服務

文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    UDS在CAN和以太網上的實現方案

    JTAG是針對MCU或者SOC這種芯片的調試接口協議,而UDS更像是針對整個ECU的調試接口。UDS簡單來說是一種Client/Server的通信服務,即Tester(診斷儀)向ECU
    發表于 11-28 09:56 ?6449次閱讀
    <b class='flag-5'>UDS</b>在CAN和以太網上的實現方案

    TSMaster 的 CAN UDS 診斷操作指南(上)

    TSMaster可以少代碼甚至零代碼就可以完成診斷流程開發,診斷開發人員只需要熟悉診斷流程,就能打通研發、產線、售后整條鏈路環節。TSMaster的UDS
    的頭像 發表于 06-08 08:21 ?2743次閱讀
    TSMaster 的 CAN <b class='flag-5'>UDS</b> <b class='flag-5'>診斷</b>操作指南(上)

    TSMaster 的 CAN UDS 診斷操作指南(下)

    上期,我們主要介紹UDS診斷模塊的創建以及TSMaster基礎診斷配置。很多客戶表示意猶未盡。因此我們將繼續帶來《TSMaster的CANUDS
    的頭像 發表于 06-18 08:21 ?2071次閱讀
    TSMaster 的 CAN <b class='flag-5'>UDS</b> <b class='flag-5'>診斷</b>操作指南(下)

    Aurix TC364D是否可以通過某些UDS服務停用HSM?

    無法更新,因為 HSM 無法驗證。 我們無法連接 JTAG 或其他 UCB,因此唯一的辦法是通過診斷插座(UDS 服務)停用它。 請問誰有經驗? 非常感謝。
    發表于 05-20 07:19

    UDS診斷命令備忘錄

    UDS實踐性強,邏輯復雜,很多服務非要體驗過一次才能理解,導致包括我在內的初學者感覺晦澀難懂,不明覺厲,因此將自己的理解寫下來、整理下來,與君共勉。零、UDS診斷命令備忘錄一、簡介
    發表于 08-26 16:09

    OBDII與UDS的區別是什么

    PrimaryECU在已經開發完UDS診斷的基礎上增加OBD II診斷一、OBD II與UDS的區別?這里主要介紹
    發表于 02-23 06:55

    基于MM32F0140系列MCU實現UDS Bootloader的設計

    (Unified Diagnostic Services,統一診斷服務)是一種用于汽車電子控制器 ECU (Electronic Control Units) 環境下的一種診斷通信協議,可實現
    發表于 09-15 16:35

    【野火】瑞薩RA MCU創意氛圍賽+ 基于CAN總線的UDS診斷升級MCU /bootloader/UDS診斷/14229/15765

    基于can總線的UDS軟件升級 最近學習UDS診斷協議(ISO14229),是一項國際標準,為汽車電子系統中的診斷通信定義了統一的協議和服務
    發表于 06-13 01:26

    UDS診斷協議在純電動汽車電機控制器中的應用說明

      針對UDS診斷協議在電動汽車電機控制器中的應用問題,利用UDS診斷協議中各項服務的功能,同時根據電機控制器的功能需求,實現
    發表于 04-02 17:16 ?8次下載

    UDS基礎知識介紹

    UDS(Unified Diagnostic Services 統一的診斷服務)是一種通用的診斷服務標準,用于汽車電子控制單元(ECU)的
    的頭像 發表于 05-30 10:57 ?1.4w次閱讀
    <b class='flag-5'>UDS</b>基礎知識<b class='flag-5'>介紹</b>

    UDS常用診斷服務

    UDS診斷概述 UDS(Unified Diagnostic Services,統一的診斷服務診斷
    的頭像 發表于 06-12 10:36 ?1.3w次閱讀
    <b class='flag-5'>UDS</b>常用<b class='flag-5'>診斷</b><b class='flag-5'>服務</b>

    UDS19服務中04子服務:讀取快照數據

    診斷通信的需求規范,也就是UDSUDS主要應用于OSI七層模型的第七層——應用層,它支持的汽車總線包括:CAN、LIN、FlexRay、Ethernet及K-L
    的頭像 發表于 04-23 09:32 ?2659次閱讀
    <b class='flag-5'>UDS</b><b class='flag-5'>之</b>19<b class='flag-5'>服務</b>中04子<b class='flag-5'>服務</b>:讀取快照數據

    UDS診斷服務響應規則介紹

    15031,ISO 15765,還有我們熟悉的ISO 14229就是UDS協議,在協議里面定義了診斷的請求,診斷響應的報文格式,以及ECU怎樣處理診斷請求報文,以及
    的頭像 發表于 08-15 17:00 ?4142次閱讀
    <b class='flag-5'>UDS</b><b class='flag-5'>診斷</b><b class='flag-5'>服務</b>響應規則<b class='flag-5'>介紹</b>

    汽車UDS協議棧與XCP協議棧

    UDS協議棧 汽車UDS協議棧是一種用于汽車電子控制單元(ECU)之間進行診斷和通信的標準協議。UDS(Unified Diagnostic Services)協議定義了一組
    的頭像 發表于 10-27 16:35 ?4431次閱讀
    汽車<b class='flag-5'>UDS</b>協議棧與XCP協議棧

    UDS29服務:認證服務

    汽車工業的很多領域都有嚴格的國際標準,其中針對車載診斷的ISO14229規定了車載診斷服務的通用需求(UDS),UDS主要應用于OSI模型的
    的頭像 發表于 11-30 08:24 ?2307次閱讀
    <b class='flag-5'>UDS</b><b class='flag-5'>之</b>29<b class='flag-5'>服務</b>:認證<b class='flag-5'>服務</b>
    百家乐官网玩法介| 百家乐官网正品| 百家乐系统分析器| 娱乐城百家乐的玩法技巧和规则 | 达孜县| 百家乐官网永利娱乐网| 澳门百家乐官网赌钱| 澳门百家乐登陆网址| 索罗门百家乐的玩法技巧和规则 | 阳宅24山吉凶方位| 基础百家乐的玩法技巧和规则 | 新澳博天上人间娱乐| 百家乐官网国际娱乐平台| 百家乐如何抽千| 娱乐城开户送38体验金| 百家乐官网最佳公式| 风水24山图| 大发888zhldu| 百家乐官网赌博规律| 百家乐娱乐天上人间| 德州扑克网站| 百家乐官网走势图备用网站 | 百家乐官网是娱乐场| 威尼斯人娱乐老| 库车县| 免费百家乐官网缩水软件| 大发888娱乐城.com| 百家乐官网的方法和公式| 线上百家乐官网平玩法| 大发888设置| 百家乐官网大赌场娱乐网规则 | 百家乐赌博机玩法| 金尊国际娱乐城| 风水24山向| 边城棋牌游戏下载| 百家乐官网押注方法| 百家乐代理打| 百家乐官网作弊手段| 现金百家乐赌法| 资中县| 百家乐平的概率|