來源:電控知識(shí)搬運(yùn)工
車輛的診斷需要有Tester端和ECU端,Tester端和ECU端通過一問一答的形式進(jìn)行通信,因而Tester端和ECU端都需要遵循同樣的診斷通信協(xié)議,常用的診斷協(xié)議有ISO 14230,ISO 15031,ISO 15765,還有我們熟悉的ISO 14229就是UDS協(xié)議,在協(xié)議里面定義了診斷的請(qǐng)求,診斷響應(yīng)的報(bào)文格式,以及ECU怎樣處理診斷請(qǐng)求報(bào)文,以及診斷服務(wù)的應(yīng)用。
UDS是Unified Diagnostic Services的縮寫,在國(guó)際標(biāo)準(zhǔn)ISO 14229-1中定義,UDS標(biāo)準(zhǔn)中除了定義服務(wù)的用法,以及服務(wù)的格式以外,還定義了一些標(biāo)準(zhǔn)化的數(shù)據(jù),而到OEM要使用UDS協(xié)議時(shí),除了要使用標(biāo)準(zhǔn)定義的服務(wù)以及標(biāo)準(zhǔn)數(shù)據(jù)以外,還要依據(jù)自身的情況,定義屬于OEM的特定數(shù)據(jù),比如說,定義所要遵循的服務(wù),需要支持的DID,需要支持的DTC等這些內(nèi)容,這樣形成的符合某OEM的診斷規(guī)范才能用于ECU診斷功能的開發(fā)以及驗(yàn)證。
隨著車輛ECU的增多,車輛網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)也越來越負(fù)責(zé),比如說一輛車需要有多種總線(CAN總線,LIN,以太網(wǎng),F(xiàn)lexRay),所以在2013年釋放的UDS協(xié)議中,除了對(duì)通用診斷服務(wù)的定義以外,還增加了關(guān)于UDS在各個(gè)總線中應(yīng)用的定義。
如果我們說UDS診斷服務(wù)是實(shí)現(xiàn)人或設(shè)備與ECU控制器交流的一種語言,那么診斷服務(wù)的響應(yīng)規(guī)則就如同是語法,而SID(Service ID)定義就如同詞匯。因此了解響應(yīng)規(guī)則和SID的意義就基本能了解與ECU溝通的方法和含義。本文先來介紹一下響應(yīng)規(guī)則。
1.尋址方式
在總線上往往有著眾多ECU設(shè)備,作為診斷設(shè)備既可以與所有的ECU一起溝通,也可以指定某一個(gè)ECU單獨(dú)溝通。所以尋址方式就有功能尋址(Functionally Addressed)和物理尋址(Physically Addressed)兩種。
功能尋址
功能尋址可以廣播診斷請(qǐng)求Request,同時(shí)等待總線上的ECU給與響應(yīng)。
物理尋址
物理尋址指定發(fā)送特定診斷請(qǐng)求Request,等待指定ECU給與響應(yīng)。
因此我們的診斷報(bào)文一般會(huì)有三個(gè)CAN ID,其中DiagRequest(診斷物理請(qǐng)求報(bào)文)和DiagState(診斷功能請(qǐng)求報(bào)文)是ECU接收來自Client的報(bào)文,而DiagRespone(診斷響應(yīng)報(bào)文)是ECU反饋的報(bào)文。
例如下圖的0x7FF和0x731分別是功能請(qǐng)求報(bào)文和物理請(qǐng)求報(bào)文,而0x7B1則是診斷響應(yīng)報(bào)文。
2.請(qǐng)求和響應(yīng)格式
診斷請(qǐng)求Request
UDS服務(wù)中共定義了26個(gè)服務(wù)請(qǐng)求SID(Service ID),每個(gè)SID代表了一類指令。由于有些服務(wù)請(qǐng)求還需要表達(dá)具體的功能類型,比如是開啟還是關(guān)閉,是讀取還是修改等,因此UDS中還定義了Sub-function來補(bǔ)充SID的意圖。另外服務(wù)請(qǐng)求有時(shí)候還需要告知ECU具體的參數(shù)信息Parameter,例如計(jì)數(shù)信息。因此診斷請(qǐng)求的格式基本上是SID + Sub-function + Parameter三部分組成的,其中SID一個(gè)byte,Sub-function一個(gè)byte(其中最高位是禁止肯定響應(yīng)指示位,0則表示需要肯定響應(yīng),1則表示禁止肯定響應(yīng)),Parameter根據(jù)具體情況定義。
肯定響應(yīng)Postive Response
收到Client的診斷請(qǐng)求后,ECU可能反饋肯定響應(yīng)或者否定響應(yīng)。肯定響應(yīng)在診斷請(qǐng)求的SID上+0x40表示確認(rèn)。例如診斷請(qǐng)求SID為0x10,則肯定響應(yīng)反饋0x50。
否定響應(yīng)Negative Response
USD診斷服務(wù)的否定響應(yīng)中包含有導(dǎo)致否定響應(yīng)原因的編碼,稱為否定響應(yīng)碼(NRC, Negative Response Code)。否定響應(yīng)碼的取值范圍為0x00 - 0xFF,被分為三組:
0x00:服務(wù)器內(nèi)部實(shí)現(xiàn)否定響應(yīng)碼判斷邏輯時(shí)使用,表示要給出肯定響應(yīng)。
0x01 – 0x7F:診斷通信相關(guān)的否定響應(yīng)碼。
0x80 – 0xFF:服務(wù)器收到診斷服務(wù)請(qǐng)求時(shí),由于某些條件不滿足要求而給出的否定響應(yīng)碼。給出這些否定響應(yīng)碼而不是給出0x22的目的是為了提供請(qǐng)求的服務(wù)不能被執(zhí)行的更詳細(xì)的原因。
當(dāng)ECU反饋為否應(yīng)響應(yīng)時(shí)格式為,NR_SI(否定響應(yīng)服務(wù)碼0x7F) + SID(否定的請(qǐng)求服務(wù)SID)+ NRC(否定響應(yīng)碼,表示否定的理由)。
這里列舉了常用的診斷服務(wù)所支持的否定響應(yīng)碼。如下表:
否定響應(yīng)碼定義及其取值
下表中列出了ISO14229-1:2013(E)中定義的否定響應(yīng)碼及其使用條件。
審核編輯:湯梓紅
-
控制器
+關(guān)注
關(guān)注
112文章
16103瀏覽量
177077 -
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5343瀏覽量
170801 -
CAN
+關(guān)注
關(guān)注
57文章
2694瀏覽量
463155 -
總線
+關(guān)注
關(guān)注
10文章
2858瀏覽量
87912 -
ecu
+關(guān)注
關(guān)注
14文章
876瀏覽量
54360
原文標(biāo)題:UDS診斷服務(wù)響應(yīng)規(guī)則介紹
文章出處:【微信號(hào):智能汽車電子與軟件,微信公眾號(hào):智能汽車電子與軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論