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

  • 手機(jī)站
  • 小程序

    汽車(chē)測(cè)試網(wǎng)

  • 公眾號(hào)
    • 汽車(chē)測(cè)試網(wǎng)

    • 在線課堂

    • 電車(chē)測(cè)試

UDS基礎(chǔ)知識(shí)介紹

2024-07-20 19:42:40·  來(lái)源:汽車(chē)電子與軟件  
 

圖片


01  UDS很簡(jiǎn)單卻總學(xué)不會(huì)?


UDS作為汽車(chē)電子領(lǐng)域必備技能,而很多入行者甚至工作多年的老工程師們卻難以精準(zhǔn)掌握,可能是你學(xué)習(xí)方法有問(wèn)題;


搞明白這三個(gè)問(wèn)題,輕松掌握UDS;


是什么?(ISO14229-1)


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


怎么做?(AUTOSAR Dcm, Dem)


前兩問(wèn)適用于所有汽車(chē)電子開(kāi)發(fā)者、管理者等,本篇文章將針對(duì)前兩個(gè)問(wèn)題展開(kāi)描述。


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


02  UDS是什么?  


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


車(chē)載診斷非常類(lèi)似醫(yī)生與病人的關(guān)系。


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


2.1 什么是Client與Server? 


Client:外部診斷設(shè)備,如診斷儀、CANoe等

Server:車(chē)身電子件(ECU)


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


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


所有的UDS指令都直接套用如下請(qǐng)求和響應(yīng)格式


請(qǐng)求格式:   

        

響應(yīng)格式:


正相應(yīng):

       

負(fù)響應(yīng):

        

【例子1】:


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

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


【例子2】:


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

響應(yīng)(正):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 具體的服務(wù)該怎么看? 


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


DiagnosticSessionControl (10 hex) service


10服務(wù)的字面意思就是Session控制。


UDS 10服務(wù)用于控制ECU(電子控制單元)在不同診斷會(huì)話之間的切換。在車(chē)輛診斷過(guò)程中,診斷儀與ECU之間需要建立通訊會(huì)話,以執(zhí)行各種診斷任務(wù)。UDS 10服務(wù)允許診斷儀通過(guò)發(fā)送請(qǐng)求報(bào)文來(lái)控制這些診斷會(huì)話的建立、切換和結(jié)束。


它允許診斷儀通過(guò)發(fā)送請(qǐng)求報(bào)文來(lái)建立、切換和結(jié)束與ECU之間的診斷會(huì)話,從而執(zhí)行各種診斷任務(wù)。UDS 10服務(wù)支持多種會(huì)話類(lèi)型和控制類(lèi)型,以滿足不同的診斷需求。


圖片

DiagnosticSessionControl (10 hex) service請(qǐng)求(來(lái)源:ISO14229-1)


10服務(wù),請(qǐng)求長(zhǎng)度固定為2個(gè)字節(jié),第一個(gè)字節(jié)為SID 10,第二個(gè)字節(jié)為子功能;


圖片

DiagnosticSessionControl (10 hex) service響應(yīng)(來(lái)源:ISO14229-1)


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


UDS 10服務(wù)支持多種會(huì)話類(lèi)型,較為常用的幾個(gè)子功能服務(wù)為: 

 

默認(rèn)會(huì)話(01 Default Session):上電/遠(yuǎn)程ECU初始化后,完成初始化的ECU默認(rèn)啟動(dòng)默認(rèn)會(huì)話模式。這是基礎(chǔ)狀態(tài),不需要任何診斷應(yīng)用程序的在線服務(wù)來(lái)保持此模式激活。


擴(kuò)展會(huì)話(03 Extended Session):此狀態(tài)支持在ECU存儲(chǔ)器中進(jìn)行操作,如#2E寫(xiě)服務(wù)、#28通信控制、#31例程等操作。


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


2.4 DTC相關(guān)內(nèi)容 


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


車(chē)輛在運(yùn)行過(guò)程中ECU會(huì)持續(xù)監(jiān)控車(chē)輛運(yùn)行狀態(tài),檢測(cè)到故障時(shí),它會(huì)記錄相應(yīng)的DTC,并將其存儲(chǔ)在車(chē)輛的故障存儲(chǔ)器中。通過(guò)讀取故障存儲(chǔ)器中的DTC,可以快速確定車(chē)輛的故障問(wèn)題,并采取相應(yīng)的修復(fù)措施。


2.4.1 DTC Status 


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


2.4.2 與DTC相關(guān)的診斷服務(wù) 


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


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


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


圖片

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


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


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


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


在ECU運(yùn)行過(guò)程中如檢測(cè)到故障,會(huì)記錄對(duì)應(yīng)的故障碼,并根據(jù)故障嚴(yán)重及危害程度確定是否需要點(diǎn)亮儀表盤(pán)的發(fā)動(dòng)機(jī)故障燈。


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


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


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


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


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


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


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


UDS 14服務(wù)的字面意思就是清除存儲(chǔ)的故障診斷信息,這些信息可以是某一個(gè)特定的故障碼(DTC),也可以是某個(gè)類(lèi)別的故障診斷碼(如動(dòng)力總成、車(chē)身、底盤(pán)等),甚至是所有的故障診斷碼。


圖片

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


03  UDS怎么發(fā)? 


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


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


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


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


圖片

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


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


圖片

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


【例子1】:

圖片

CANoe Trace界面


請(qǐng)求10 01

響應(yīng) 50 01 00 32 00 C8

請(qǐng)求和響應(yīng)長(zhǎng)度都在單幀范圍內(nèi),則消息Trace中報(bào)文序列為:

請(qǐng)求 710:[02] 10 01 [00 00 00 00 00]

響應(yīng) 720:[06] 50 01 00 32 00 C8 [AA]   


【例子2】:

圖片


CANoe Trace界面

請(qǐng)求22 F1 90

響應(yīng) 62 F1 90 31 32 33 34 37 38 20 20 20 20 20 20 20 20 20 20 20


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

請(qǐng)求 710:[03] 22 F1 90 [00 00 00 00]

響應(yīng) 720:[10 14] 62 F1 90 31 32 33

響應(yīng) 720:[21] 34 37 38 20 20 20 20

響應(yīng) 720:[22] 20 20 20 20 20 20 20


04  如何快速學(xué)UDS?


4.1推薦的學(xué)習(xí)技巧 


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

使用CANoe(或其余設(shè)備)調(diào)試診斷請(qǐng)求和響應(yīng),觀察Trace報(bào)文

按照診斷需求,軟件改寫(xiě)簡(jiǎn)單指令,并測(cè)試驗(yàn)證   


圖片

診斷服務(wù)列表


圖片

DID列表


圖片

DTC列表


參考文件:

[1] CAN診斷輕松入門(mén)第一講-網(wǎng)絡(luò)層與應(yīng)用層基本知識(shí)講解 - 知乎 (zhihu.com)

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

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

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

[5] 微信公眾號(hào)“汽車(chē)電子與軟件”:小公司如何使用”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

分享到:
 
反對(duì) 0 舉報(bào) 0 收藏 0 評(píng)論 0
滬ICP備11026917號(hào)-25