如何看懂UDS診斷報(bào)文

UDS介紹

UDS(Unified Diagnostic Services,統(tǒng)一的診斷服務(wù))診斷協(xié)議是ISO 15765 和ISO 14229 定義的一種汽車通用診斷協(xié)議,位于OSI模型中的應(yīng)用層笔诵,它可在不同的汽車總線(例如CAN, LIN, Flexray, Ethernet 和 K-line)上實(shí)現(xiàn)街佑。UDS協(xié)議的應(yīng)用層定義是ISO 14229-1磁携,目前大部分汽車廠商均采用UDS on CAN的診斷協(xié)議。

UDS本質(zhì)上是一系列的服務(wù)篙议,共包含6大類26種鬼贱。每種服務(wù)都有自己獨(dú)立的ID移怯,即SID。

  • SID:Service Identifier这难,診斷服務(wù)ID舟误。UDS本質(zhì)上是一種定向的通信,是一種交互協(xié)議(Request/Response)姻乓,即診斷方給ECU發(fā)送指定的請(qǐng)求數(shù)據(jù)(Request)嵌溢,這條數(shù)據(jù)中需要包含SID。
  • 如果是肯定的響應(yīng)(Positive Response)蹋岩,回復(fù)[SID+0x40]赖草,如請(qǐng)求10,響應(yīng)50剪个;請(qǐng)求22秧骑,響應(yīng)62。
  • 如果是否定的響應(yīng)(Negative Response),回復(fù)7F+SID+NRC乎折,回復(fù)的是一個(gè)聲明绒疗。

肯定響應(yīng)和否定響應(yīng)的形式一定要熟記。

常用服務(wù)介紹

UDS的26種服務(wù)中骂澄,有7種很重要忌堂。它們分別是:

  • $10 Diagnostic Session Control(診斷會(huì)話),
  • $14 Clear Diagnostic Information(清除診斷信息)酗洒,
  • $19 Read DTC Information士修,
  • $22 Read Data By Identifier(通過ID讀數(shù)據(jù)),
  • $27 Security Access(安全訪問)樱衷,
  • $2E Write Data By Identifier(通過ID寫數(shù)據(jù))棋嘲,
  • $3E Tester Present(待機(jī)握手)。
image

下面對(duì)這7個(gè)服務(wù)進(jìn)行解讀矩桂。

$10診斷會(huì)話

$10包含3個(gè)子功能沸移,

  • 01 Default,
  • 02 Programming侄榴,
  • 03 Extended雹锣,

ECU上電時(shí),進(jìn)入的是默認(rèn)會(huì)話(Default)癞蚕。如果您進(jìn)入了一個(gè)非默認(rèn)會(huì)話的狀態(tài)蕊爵,一個(gè)定時(shí)器會(huì)運(yùn)轉(zhuǎn),如果一段時(shí)間內(nèi)沒有請(qǐng)求桦山,那么到時(shí)間后攒射,診斷退回到默認(rèn)會(huì)話01。當(dāng)然恒水,我們有一個(gè)$3E的服務(wù)会放,可以使診斷保持在非默認(rèn)的狀態(tài)。

報(bào)文包含4種類型钉凌,即

  • SID咧最,
  • SID+SF(Sub-function),
  • SID+DID(Data Identifier)(讀寫用)御雕,
  • SID+SF+DID矢沿。

NRC:Negative Response Code(否定響應(yīng)碼)。如果ECU拒絕了一個(gè)請(qǐng)求饮笛,它會(huì)回應(yīng)一個(gè)NRC咨察。不同的NRC有不同的含義论熙。

NRC.jpg

例子:以CAN總線網(wǎng)絡(luò)舉例福青。

八個(gè)數(shù)據(jù)字節(jié),第一字節(jié)被網(wǎng)絡(luò)層占用

  • 請(qǐng)求(Request):

02 10 02 xx xx xx xx xx

02中的0代表網(wǎng)絡(luò)層單幀SF无午,2代表 數(shù)據(jù)域有2個(gè)字節(jié)媒役;10是SID,02是子功能宪迟。

  • 肯定響應(yīng):

02 50 02 xx xx xx xx xx

02同上酣衷,10+40表示對(duì)SID的肯定回復(fù),02是子功能次泽。

  • 否定響應(yīng):

03 7F 10 22 xx xx xx xx穿仪;

03同上,7F表示否定響應(yīng)意荤,10是SID啊片,22是NRC。

$3E待機(jī)握手

$3E服務(wù)用于向服務(wù)器指示診斷儀仍然連接在網(wǎng)絡(luò)上玖像,之前已經(jīng)激活的診斷服務(wù)功能可以仍然保持激活狀態(tài)紫谷。

例子:

02 3E 80 00 00 00 00 00,發(fā)送一個(gè)3E服務(wù)的報(bào)文捐寥,保持非默認(rèn)會(huì)話狀態(tài)笤昨。80表示無需回復(fù)。

$27安全訪問

27安全訪問:我們?cè)谧x取一些特殊數(shù)據(jù)的時(shí)候握恳,要先進(jìn)行一個(gè) **安全解鎖**瞒窒。ECU上電之后是一個(gè)鎖定的狀態(tài)(Locked),我們通過27服務(wù)乡洼,加上一個(gè)子服務(wù)根竿,再加上一個(gè)鑰匙,這樣的服務(wù)請(qǐng)求可以進(jìn)行解鎖就珠。

比如下面的例子寇壳,2n-1是某個(gè)子服務(wù),通過首輪種子的請(qǐng)求妻怎,首輪ECU會(huì)返回67+01+AA+BB+CC+DD壳炎,AA~DD就是種子了。之后第二輪逼侦,診斷端會(huì)利用種子進(jìn)行運(yùn)算(利用整車廠的算法)匿辩,生成k1(不一定是1個(gè)字節(jié)),那么發(fā)送請(qǐng)求榛丢,27+02+[k1]铲球。ECU同樣也會(huì)通過種子算出k2。當(dāng)k1和k2匹配時(shí)晰赞,解鎖(Unlocked)成功稼病。

  • 例子:

Rx: 02 27 05 00 00 00 00 00 安全訪問选侨,05子功能
Tx: 07 67 05 08 27 11 F0 77 肯定響應(yīng),回復(fù)了對(duì)應(yīng)安全級(jí)別的種子
Rx: 06 27 06 FF FF FF FF 00 發(fā)送密鑰然走,4個(gè)FF援制。注意06是與05成對(duì)使用的。
Tx: 03 7F 27 78 00 00 00 00 否定響應(yīng)芍瑞,7F+27+NRC
Tx: 02 67 06 00 00 00 00 00 肯定響應(yīng)晨仑,通過安全校驗(yàn)

$22讀數(shù)據(jù)

$22讀數(shù)據(jù),
Request(請(qǐng)求):

22+DID(Data Identifier拆檬,通常是兩個(gè)字節(jié))

Response(響應(yīng)):

62+DID+Data

DID有一部分已經(jīng)被ISO 14229-1規(guī)定了洪己。比如0xF186就是當(dāng)前診斷會(huì)話數(shù)據(jù)標(biāo)識(shí)符,0xF187就是車廠備件號(hào)數(shù)據(jù)標(biāo)識(shí)符竟贯,0xF188就是車廠ECU軟件號(hào)碼數(shù)據(jù)ID码泛,0xF189就是車廠ECU軟件版本號(hào)數(shù)據(jù)標(biāo)識(shí)符。

$2E寫數(shù)據(jù)

$22寫數(shù)據(jù)澄耍,
Request(請(qǐng)求):

2E+DID+Data

Response(響應(yīng)):

6E+DID

注意噪珊,比如0xF186這個(gè)DID不支持直接寫入數(shù)據(jù),需要用$10來進(jìn)行會(huì)話轉(zhuǎn)換齐莲。也就是說痢站,對(duì)于寫數(shù)據(jù)的請(qǐng)求,一般來說需要在一個(gè)非默認(rèn)會(huì)話选酗,或解鎖的狀態(tài)下才能進(jìn)行阵难。

$19 讀DTC

DTC(diagnostic trouble code):如果系統(tǒng)檢測(cè)到了一個(gè)錯(cuò)誤,它將其存儲(chǔ)為DTC芒填。DTC可表現(xiàn)為:一個(gè)顯而易見的故障:通訊信號(hào)的丟失(不會(huì)使故障燈亮起)呜叫;排放相關(guān)的故障;安全相關(guān)的錯(cuò)誤等殿衰。DTC可以揭示錯(cuò)誤的位置和錯(cuò)誤類型朱庆。通常DTC占用3個(gè)字節(jié),OBD II占用兩個(gè)字節(jié)闷祥。

故障碼包括四個(gè)大類娱颊,分別是PCBU,P是powertrain動(dòng)力系統(tǒng)凯砍,C是Chassis底盤箱硕,B是Body車身,U是network通信系統(tǒng)悟衩。一個(gè)DTC信息占用4個(gè)字節(jié)剧罩。最后一個(gè)字節(jié)是DTC的狀態(tài)。前兩個(gè)字節(jié)是我們熟知的類似P0047的故障碼座泳。

DTCHighByte DTCMiddleByte DTCLowByte DTCStatus
Byte 1 Byte 2 Byte 3 Byte 4

$19 擁有28個(gè)子服務(wù)(Sub-Function)惠昔。常用的子服務(wù)有02(通過DTC狀態(tài)掩碼讀取DTC)幕与,04(讀取快照信息),06(讀取擴(kuò)展信息)舰罚,0A(讀ECU支持的所有DTC數(shù)據(jù))。

$14清除DTC

清除(復(fù)位)DTC格式薛耻,它可以改變DTC的狀態(tài)营罢。3個(gè)FF代表清除所有DTC。

Request:14+FF+FF+FF饼齿;
Response:54 饲漾。

診斷報(bào)文解析

UDS 的診斷數(shù)據(jù)的發(fā)送與接收都是基于CAN,所以每個(gè)數(shù)據(jù)流都包含基本的CAN Message 的架構(gòu)

CAN Message =CAN ID + CAN DATA

根據(jù)上篇UDS文章的敘述缕溉,每一個(gè)PDU 包含控制信息PCI,數(shù)據(jù)信息Data.


N_PDU format.png

網(wǎng)絡(luò)層 PDU(協(xié)議數(shù)據(jù)單元)PCI(協(xié)議控制信息)格式:具體如下圖所示:

幀類型 bit7-4 bit3-0 Byte 2 Byte 3
單幀 PCItype=0 SF_DL N/A N/A
首幀 PCItype=1 FF_DL FF_DL N/A
連續(xù)幀 PCItype=2 SN N/A N/A
流控幀 PCItype=3 FS BS ST_min
PCI_format.png

綜上所述考传,N_PDU =N_PCI+N_DATA, N_PCI的值主要集中的前三個(gè)字節(jié)N_DATA值主要集中在后面7位字節(jié)证鸥。其中僚楞,

  • SF_DL 代表單幀中數(shù)據(jù)字節(jié)數(shù)(取值0-7),
  • FF_DL代表 連續(xù)幀中的數(shù)據(jù)字節(jié)數(shù)(12bit可表四8~4095)枉层,
  • SN代表此幀為連續(xù)幀中的第幾幀泉褐,(0、1鸟蜡、2...E膜赃、F、0揉忘、1...)
  • FS流控制幀跳座,有三種狀態(tài):繼續(xù)發(fā)送0、保持等待1泣矛、數(shù)據(jù)溢出2
  • BS規(guī)定發(fā)送端允許持續(xù)傳輸連續(xù)幀數(shù)目的最大值(0~255)疲眷,
  • STmin限定連續(xù)幀相互之間所允許的最小時(shí)間間隔。

先面用連個(gè)例子進(jìn)行說明您朽,請(qǐng)參考咪橙!

例子 1--- 單幀的數(shù)據(jù)傳輸與接收

[圖片上傳失敗...(image-b66bab-1538824826939)]

數(shù)據(jù)發(fā)送: 02 27 09
數(shù)據(jù)反饋: 03 7F 27 7E ---==否定的響應(yīng)==(Negative Response),回復(fù)==7F+SID+NRC==虚倒,回復(fù)的是一個(gè)聲明

數(shù)據(jù)發(fā)送: 02 10 40
數(shù)據(jù)反饋: 06 50 40 00 32 01 F4 ---==肯定的響應(yīng)==(Positive Response)美侦,回復(fù)[==SID+0x40==],就是請(qǐng)求10魂奥,響應(yīng)40菠剩;回復(fù)的是一組數(shù)據(jù)

由于這個(gè)數(shù)據(jù)發(fā)送與接收都是單幀傳輸,所以第一個(gè)數(shù)據(jù)的高四位均為0耻煤,四個(gè)數(shù)據(jù)流中的第一個(gè)字節(jié)的低四位具壮,02准颓,03,02棺妓,06代表的為此幀數(shù)據(jù)含有幾個(gè)字節(jié)攘已,多余的數(shù)據(jù)位都用 00或者AA行填充。

例子2 --- 多幀的數(shù)據(jù)接收與傳輸

[圖片上傳失敗...(image-b5e84b-1538824826939)]

數(shù)據(jù)發(fā)送:

  • 06 19 04 00 01 00 00 00

數(shù)據(jù)反饋:

  • 10 1E 59 04 00 01 00 27
  • 30 00 00 00 00 00 00 00
  • 21 00 0B FF FF FF FF FF
  • 22 FF FF FF FF FF FF FF
  • 23 FF FF FF FF FF FF FF
  • 24 FF FF FF AA AA AA AA

數(shù)據(jù)發(fā)送為單幀怜跑,所以06代表發(fā)送的數(shù)據(jù)中含有6個(gè)字節(jié)样勃,

回復(fù)為Positive Response,為連續(xù)幀性芬。

  • 10中的1代表連續(xù)幀的首幀峡眶,==01E代表此連續(xù)幀含有30個(gè)字節(jié)==,
  • 30代表此連續(xù)幀的流控制幀植锉,
  • 21辫樱,22,23俊庇,24代表連續(xù)幀中的第幾幀狮暑,21代表第一幀,22代表第二幀辉饱,依此類推心例,其中AA為填充位。

參考資料:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鞋囊,一起剝皮案震驚了整個(gè)濱河市止后,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌溜腐,老刑警劉巖译株,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異挺益,居然都是意外死亡歉糜,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門望众,熙熙樓的掌柜王于貴愁眉苦臉地迎上來匪补,“玉大人,你說我怎么就攤上這事烂翰『蝗保” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵甘耿,是天一觀的道長(zhǎng)踊兜。 經(jīng)常有香客問我,道長(zhǎng)佳恬,這世上最難降的妖魔是什么捏境? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任于游,我火速辦了婚禮,結(jié)果婚禮上垫言,老公的妹妹穿的比我還像新娘贰剥。我一直安慰自己,他們只是感情好筷频,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布蚌成。 她就那樣靜靜地躺著,像睡著了一般截驮。 火紅的嫁衣襯著肌膚如雪笑陈。 梳的紋絲不亂的頭發(fā)上际度,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天葵袭,我揣著相機(jī)與錄音,去河邊找鬼乖菱。 笑死坡锡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的窒所。 我是一名探鬼主播鹉勒,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼吵取!你這毒婦竟也來了禽额?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤皮官,失蹤者是張志新(化名)和其女友劉穎脯倒,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捺氢,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡藻丢,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了摄乒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片悠反。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖馍佑,靈堂內(nèi)的尸體忽然破棺而出斋否,到底是詐尸還是另有隱情,我是刑警寧澤拭荤,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布如叼,位于F島的核電站,受9級(jí)特大地震影響穷劈,放射性物質(zhì)發(fā)生泄漏笼恰。R本人自食惡果不足惜踊沸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望社证。 院中可真熱鬧逼龟,春花似錦、人聲如沸追葡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宜肉。三九已至匀钧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谬返,已是汗流浹背之斯。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留遣铝,地道東北人佑刷。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像酿炸,于是被迫代替她去往敵國和親瘫絮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 11,007評(píng)論 6 13
  • 電力系統(tǒng)是一個(gè)綜合化的系統(tǒng)填硕,作為一個(gè)熟練的電工麦萤,對(duì)于通信有著一定的認(rèn)識(shí)。否則很多問題扁眯,我們將無從下手壮莹。首先我們從廣...
    洪城小電工閱讀 117,859評(píng)論 8 34
  • 隨著學(xué)習(xí)思維導(dǎo)圖的深入,每日一繪已經(jīng)成為一種習(xí)慣恋拍,用思維導(dǎo)圖做筆記垛孔,學(xué)習(xí),但思維導(dǎo)圖真正可以用來做什么呢施敢?我們好像...
    z飛鳥與魚h閱讀 435評(píng)論 4 8
  • 大風(fēng)爸芗觥!大風(fēng)敖┩蕖概作!大風(fēng)啊默怨!吹過大地讯榕。大風(fēng)呼呼的刮,就這樣子,它愚屁,漂過了济竹,我身旁。大風(fēng)霎槐,呼呼的刮送浊,就這樣,它吹在我身上...
    王密亮閱讀 170評(píng)論 0 0
  • 如此情深丘跌,卻難以啟齒袭景,原來你若真愛一個(gè)人,內(nèi)心酸澀闭树,反而會(huì)說不出話來耸棒,甜言蜜語,多數(shù)說給不相干的人聽报辱。 與你相遇 ...
    A羽翼閱讀 310評(píng)論 0 1