日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UDS协议入门

發布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UDS协议入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

UDS協議入門簡介

UDS簡介

UDS全稱為:Unified Diagnostic Services即統一診斷服務,因為各汽車廠的產品、型號、功能可能各不相同,為了方便管理和診斷測試,OSI制定了UDS通信協議,對通信的格式,內容定義等等作了規范,其中ISO-14229主要涉及到應用層,ISO-15765主要涉及到網絡層的內容,大家有興趣的話可以在網上自行搜索。

UDS服務分類

  • Diagnostic and Communication Management (診斷和通信管理)

  • Data Transmission (數據傳輸)

  • Stored Data Transmission (存儲數據傳輸,用于操作DTC)

  • InputOutput Control (IO控制)

  • Routine Control (遠程控制)

  • Upload Download (上傳下載)

  • UDS的部分術語

    下面簡單列舉一些uds協議的常用到的術語,可能不是很全,后面慢慢再補充。

  • ECU(Electronic control unit):電子控制單元,產品模塊的統稱,整車上的很多功能模塊都可以叫這個。
  • tester:診斷儀,通常情況下指上位機軟件,比如canoe的診斷控制臺。
  • DTC(Diagnostic trouble code):診斷故障碼,記錄ecu特定的故障問題。
  • NRC(Negative response code):否定響應碼,表示當前診斷命令失敗的原因。
  • SID(Service ID):診斷的某項服務ID
  • DID(Data ID):某個服務下的某組數據的ID
  • APCI:應用層協議控制信息,存放一些協議的格式信息,長度,尋址方式等
  • ASDU:應用層服務數據單元,用于存放數據信息。
  • APDU:應用層協議數據單元,通常情況下PCI+SDU=PDU。
  • UDS的通信過程

    診斷通信的過程,簡單來說就是診斷儀發送診斷請求(request),ECU給出診斷響應(response),而UDS就是為不同的診斷功能的request和response定義了統一的內容和格式。從AUTOSAR的整體架構來說就是從CAN->CAN Drv->CAN IF->CAN TP->PDUR->DCM->RTE->APPL,具體詳細的內容過多暫不展開講解。

    Diagnostic request格式

    Diagnostic request的格式可以分為兩類:一類是擁有sub-function的,另一類是沒有sub-function的,如下面所示。
    擁有sub-function的診斷請求:

    service IDSub-functionParameter

    無sub-function的診斷請求:

    service IDParameter
    SID的長度固定為1個字節,代表了這條診斷命令執行的什么功能。 sub-function的長度也是1個字節,它通常表示對這個診斷服務的具體操作,比如是啟動、停止還是查詢這個診斷服務。 parameter則根據各個診斷服務的不同具有不同的內容,長度和格式并沒有統一規格,它用于限定診斷服務執行的條件,比如某個診斷服務執行的時間等。

    其實sub-function嚴格來說是7個bit,而不是1個byte,因為它的最高位bit被用于抑制正響應(suppress positive response,SPR),如果這個bit被置1,則ECU不會給出正響應(positive response); 如果這個bit被置0,則ECU會給出正響應。這樣做的目的是可以告訴ECU不要發不必要的response,從而節約通信資源。

    Diagnostic response格式

    Diagnostic response分為positive和negative兩類。positive response意味著診斷儀發過來的診斷請求被執行了,而negative response則意味著ECU因為某種原因無法執行診斷儀發過來的診斷請求,而無法執行的原因則存在于negative response的報文中。
    肯定響應(Positive response):

    response ID(Sub-function)Parameter
    response SID這個字節作為診斷請求的echo,它等于SID + 0X40。 后面的兩個部分則視具體的診斷服務而定。

    否定響應(Negative response):

    0x7Frequest IDNRC
    negative response的格式固定為3個字節,第一個字節為0x7F, 第二個字節是被拒絕掉的SID, 第三個字節是這個診斷服務無法被執行的原因(NRC)。

    NRC碼

    下面這張圖列舉了部分原因代碼,比如,如果ECU給出7F 2F 33這個negative response,則說明2F這個服務因為診斷請求因為安全權限不足無法執行。

    最后

    因為在工作中用到了UDS,所以在此總結下學習所得,可能理解有誤或者有不足的地方,歡迎大家指正,后續會展開寫下UDS中的各項服務。

    總結

    以上是生活随笔為你收集整理的UDS协议入门的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。