日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

首頁 > 汽車技術 > 正文

UDS基礎知識介紹

2024-07-20 19:42:40·  來源:汽車電子與軟件  
 

圖片


01  UDS很簡單卻總學不會?


UDS作為汽車電子領域必備技能,而很多入行者甚至工作多年的老工程師們卻難以精準掌握,可能是你學習方法有問題;


搞明白這三個問題,輕松掌握UDS;


是什么?(ISO14229-1)


怎么發(fā)?(ISO15765-2)


怎么做?(AUTOSAR Dcm, Dem)


前兩問適用于所有汽車電子開發(fā)者、管理者等,本篇文章將針對前兩個問題展開描述。


第三問適用于軟件工程師及對軟件感興趣的朋友,將在后續(xù)文章中講解AUTOSAR中UDS的軟件實現(xiàn)方法。


02  UDS是什么?  


UDS (Unified Diagnostic Services) 是一種用于車輛診斷和通信的標準化協(xié)議,它是ISO 14229標準的一部分,也被稱為UDS協(xié)議或UDS服務。UDS協(xié)議定義了一系列的服務和子服務,用于在診斷設備和車輛ECU(電子控制單元)之間進行通信,以執(zhí)行各種診斷任務,如讀取和清除故障碼、配置ECU參數(shù)、請求和設置數(shù)據(jù)等。


車載診斷非常類似醫(yī)生與病人的關系。


本質(zhì)上講,UDS就是服務于Client與Server之間用于信息交互的標準協(xié)議。


2.1 什么是Client與Server? 


Client:外部診斷設備,如診斷儀、CANoe等

Server:車身電子件(ECU)


診斷的最基本的內(nèi)容其實就是請求和響應,請求即由Client端發(fā)出的數(shù)據(jù)指令,響應為由Server端返回的數(shù)據(jù)信息;搞明白UDS,最先需要搞明白請求和響應的通用格式,即做到一通百通。


2.2 掌握通用格式,即掌握所有 


所有的UDS指令都直接套用如下請求和響應格式


請求格式:   

        

響應格式:


正相應:

       

負響應:

        

【例子1】:


請求:10 01(“10”為Request SID,“01”為Sub function)

響應(正):50 01 00 32 01 F4(“50”為Response SID,“01 00 32 01 F4”為data-parameter)


【例子2】:


請求:22 F1 90(“22”為Request SID,“F1 90”為data-parameter)

響應(正):62 F1 90 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10(“62”為Response SID,“F1 90 00……0E 0F 10”為data-parameter) 

 

2.3 具體的服務該怎么看? 


理解了如上通用的診斷格式后,非常簡單的學習服務的方法,一般情況僅僅需要從字面意思既能了解內(nèi)涵;本文以10服務為例展開描述,其余服務大家可以自行查閱ISO14229-1。


DiagnosticSessionControl (10 hex) service


10服務的字面意思就是Session控制。


UDS 10服務用于控制ECU(電子控制單元)在不同診斷會話之間的切換。在車輛診斷過程中,診斷儀與ECU之間需要建立通訊會話,以執(zhí)行各種診斷任務。UDS 10服務允許診斷儀通過發(fā)送請求報文來控制這些診斷會話的建立、切換和結束。


它允許診斷儀通過發(fā)送請求報文來建立、切換和結束與ECU之間的診斷會話,從而執(zhí)行各種診斷任務。UDS 10服務支持多種會話類型和控制類型,以滿足不同的診斷需求。


圖片

DiagnosticSessionControl (10 hex) service請求(來源:ISO14229-1)


10服務,請求長度固定為2個字節(jié),第一個字節(jié)為SID 10,第二個字節(jié)為子功能;


圖片

DiagnosticSessionControl (10 hex) service響應(來源:ISO14229-1)


正響應中除了DataByte#1 為Response SID和 DataByte#2 diagnosticSession外,sessionParamaterRecord的參數(shù)格式可以參考客戶需求規(guī)范。


UDS 10服務支持多種會話類型,較為常用的幾個子功能服務為: 

 

默認會話(01 Default Session):上電/遠程ECU初始化后,完成初始化的ECU默認啟動默認會話模式。這是基礎狀態(tài),不需要任何診斷應用程序的在線服務來保持此模式激活。


擴展會話(03 Extended Session):此狀態(tài)支持在ECU存儲器中進行操作,如#2E寫服務、#28通信控制、#31例程等操作。


編程會話(02 Programming Session):此會話下支持ECU內(nèi)存編程操作,一般在此會話下執(zhí)行bootloader操作。


2.4 DTC相關內(nèi)容 


DTC(Diagnostic Trouble Code,診斷故障碼)是指車輛電子控制單元(ECU)存儲的車輛故障代碼,它是一種數(shù)字編碼,用于標識車輛的故障問題。


車輛在運行過程中ECU會持續(xù)監(jiān)控車輛運行狀態(tài),檢測到故障時,它會記錄相應的DTC,并將其存儲在車輛的故障存儲器中。通過讀取故障存儲器中的DTC,可以快速確定車輛的故障問題,并采取相應的修復措施。


2.4.1 DTC Status 


DTC狀態(tài)為1個字節(jié),包含8個Bit的狀態(tài)?;旧峡梢灾苯臃g從字面意思即可理解含義;詳細的可以參見ISO14229-1附錄。


2.4.2 與DTC相關的診斷服務 


1. DTC狀態(tài)更新控制ControlDTCSetting (85 hex) service


UDS 85服務,字面意思為控制診斷故障代碼設置服務,是UDS協(xié)議中的一個重要部分,該服務用于停止或繼續(xù)ECU中DTC狀態(tài)位的更新。


客戶端可以指示ECU停止或繼續(xù)更新DTC狀態(tài)位。這在某些特殊場景下非常有用,例如在ECU刷寫過程中,為了避免因刷寫操作導致的DTC誤報,可以臨時停止DTC狀態(tài)位的更新。


圖片

ControlDTCSetting (85 hex) service(來源:ISO14229-1)


2. DTC信息的讀取ReadDTCInformation (19 hex) service


UDS 19服務,字面意思即讀取診斷故障代碼信息(DTC),是UDS協(xié)議中的一個重要組成部分,用于讀取診斷故障代碼(DTC)相關信息。


UDS 19服務允許診斷儀/上位機從車輛內(nèi)的任何ECU(電子控制單元)讀取故障診斷碼(DTC)信息的狀態(tài)。


在ECU運行過程中如檢測到故障,會記錄對應的故障碼,并根據(jù)故障嚴重及危害程度確定是否需要點亮儀表盤的發(fā)動機故障燈。


UDS 19服務包含28個子服務(Sub-Function),每個子服務都有其特定的功能,常用的幾個服務如下:


01子服務:讀取符合掩碼條件的DTC數(shù)量。這里的掩碼由客戶端定義,可以指定讀取當前故障、歷史故障或全部故障。


02子服務:讀取符合掩碼條件的DTC列表及其狀態(tài)。同樣,掩碼的定義與01子服務相同。 


 04子服務:讀取DTC快照信息,即與DTC關聯(lián)的已存儲數(shù)據(jù)記錄。這些數(shù)據(jù)可以幫助工程師在ECU出現(xiàn)故障時了解車輛的歷史和實時故障信息。


06子服務:讀取擴展信息,包括DTC狀態(tài)、優(yōu)先級、發(fā)生次數(shù)、時間戳、里程等。


0A子服務:讀取ECU支持的所有DTC列表及其狀態(tài),此服務不需要掩碼。


3. DTC的清除ClearDiagnosticInformation (14 hex) service


UDS 14服務的字面意思就是清除存儲的故障診斷信息,這些信息可以是某一個特定的故障碼(DTC),也可以是某個類別的故障診斷碼(如動力總成、車身、底盤等),甚至是所有的故障診斷碼。


圖片

ClearDiagnosticInformation (14 hex) service(來源:ISO14229-1)


03  UDS怎么發(fā)? 


我們所常用的CAN/LIN診斷報文消息只有8個Byte長度,而上文描述的請求和響應多則幾十個的Byte,本章節(jié)將闡述診斷消息如何收發(fā);


CAN診斷由發(fā)送端的請求與接收端的響應構成,診斷即為發(fā)送端與接收端數(shù)據(jù)往來。有的診斷一條消息完成,有的診斷需要多條消息完成,畢竟在診斷中,一條CAN消息只包含8個字節(jié)長度。對于一條CAN診斷消息的分段發(fā)送問題,即為網(wǎng)絡層需要討論的內(nèi)容。


網(wǎng)絡層的作用可以看作是把CAN診斷通信上層需要傳輸?shù)臄?shù)據(jù)進行封裝準備發(fā)送的過程,若數(shù)據(jù)量小于等于7個字節(jié)數(shù)據(jù)(本文只討論正常地址模式),則用單幀發(fā)送,數(shù)據(jù)量大于7個字節(jié)數(shù)據(jù)(ISO 15765規(guī)定最大傳輸數(shù)據(jù)量為4095個字節(jié)),則用多幀發(fā)送。網(wǎng)絡層的作用就好比一堆貨物準備發(fā)貨,貨物量少,即使用一輛車托運,貨物量多,則需要使用多輛車進行托運。


如下圖所示,當需要傳輸?shù)淖止?jié)小于等于7個字節(jié)時,網(wǎng)絡層只需將數(shù)據(jù)封裝成一個單幀發(fā)送即可;   


圖片

單幀數(shù)據(jù)收發(fā)(來源:ISO15765-2)


當需要傳輸?shù)淖止?jié)大于7個字節(jié)時,網(wǎng)絡層需要將數(shù)據(jù)封裝成一個首幀加若干個連續(xù)幀,然后再發(fā)送。


圖片

多幀數(shù)據(jù)收發(fā)(來源:ISO15765-2)


【例子1】:

圖片

CANoe Trace界面


請求10 01

響應 50 01 00 32 00 C8

請求和響應長度都在單幀范圍內(nèi),則消息Trace中報文序列為:

請求 710:[02] 10 01 [00 00 00 00 00]

響應 720:[06] 50 01 00 32 00 C8 [AA]   


【例子2】:

圖片


CANoe Trace界面

請求22 F1 90

響應 62 F1 90 31 32 33 34 37 38 20 20 20 20 20 20 20 20 20 20 20


請求在單幀范圍內(nèi),響應長度需要使用首幀+連續(xù)幀傳輸,則消息Trace中報文序列為:

請求 710:[03] 22 F1 90 [00 00 00 00]

響應 720:[10 14] 62 F1 90 31 32 33

響應 720:[21] 34 37 38 20 20 20 20

響應 720:[22] 20 20 20 20 20 20 20


04  如何快速學UDS?


4.1推薦的學習技巧 


自己嘗試編輯診斷調(diào)查問券文件,有條件的同學可以編輯Cdd文件

使用CANoe(或其余設備)調(diào)試診斷請求和響應,觀察Trace報文

按照診斷需求,軟件改寫簡單指令,并測試驗證   


圖片

診斷服務列表


圖片

DID列表


圖片

DTC列表


參考文件:

[1] CAN診斷輕松入門第一講-網(wǎng)絡層與應用層基本知識講解 - 知乎 (zhihu.com)

[2] CAN診斷輕松入門第二講-UDS服務講解 - 知乎 (zhihu.com)    

[3] CAN診斷輕松入門第三講-DTC知識講解 - 知乎 (zhihu.com)

[4] 《UDS協(xié)議從入門到精通》系列——到底什么是DTC?_uds dtc-CSDN博客

[5] 微信公眾號“汽車電子與軟件”:小公司如何使用”AUTOSAR”?

[6] ISO14229-1, Unified diagnostic services (UDS) – Part 1: Application layer (Release 2015)

[7] ISO15765-2, Road vehicles – Diagnostics on Controller Area Networks (CAN) – Part2: Network layer services

分享到:
 
反對 0 舉報 0 收藏 0 評論 0
滬ICP備11026917號-25