|
1.OBD用來做什么 2.OBD和UDS的區(qū)別 3.OBD硬件接口簡(jiǎn)介 4.OBD的9大模式介紹
OBD(On-Board Diagnostic)指的是在線診斷系統(tǒng),是汽車上的一種用于監(jiān)控車輛狀況以及控制排放的一種在線診斷系統(tǒng)。本篇文章主要圍繞OBD的九種模式進(jìn)行介紹,當(dāng)然也會(huì)輔助介紹一些OBD相關(guān)的內(nèi)容。
1.OBD用來做什么
對(duì)于一般的車主,可能有接觸過OBD口,可以用它來查看一些車內(nèi)的參數(shù)等等,但是OBD它到底用來做什么用呢?
還是以一貫的思路,進(jìn)行分點(diǎn)說明
a.用于監(jiān)控車輛基本參數(shù),例如監(jiān)控里程、車速、油門踏板位置、冷卻液溫度等等的一些參數(shù);
b.用于監(jiān)控排放相關(guān)的參數(shù),這是OBD很核心的一個(gè)功能,比如各種尾氣的含量,氧含量等等,以此來保證滿足各國(guó)的標(biāo)準(zhǔn);
c.用于車輛故障的診斷,例如我們車故障燈亮了,送到維修店后,維修人員就會(huì)拿出診斷儀,請(qǐng)求發(fā)生的故障內(nèi)容,以及故障時(shí)刻的凍結(jié)幀數(shù)據(jù),以此來方便故障排查;
d.當(dāng)然還有小部分會(huì)使用OBD進(jìn)行一些控制功能,這部分在中國(guó)是沒有的。
2.OBD和UDS的區(qū)別
大家看過我前面的文章的話,也有對(duì)UDS進(jìn)行介紹,那么UDS和OBD都是車上診斷的標(biāo)準(zhǔn),他們有什么區(qū)別呢? 首先從適用對(duì)象來說,OBD出現(xiàn)的更早,那么它主要針對(duì)傳統(tǒng)燃油車,并且OBD主要是用于排放相關(guān)的診斷,而UDS是統(tǒng)一診斷系統(tǒng),那么它的適用性則更廣一點(diǎn),它囊括了非排放相關(guān)的車身上所有ECU的診斷??梢院?jiǎn)單的理解OBD就是用于排放相關(guān)的ECU,如發(fā)送機(jī)控制單元,減速器控制器等;而UDS則包含了車身上幾乎所有ECU的診斷,例如VCU BCM DCDC等等。 第二點(diǎn):也是因?yàn)樗麄冞m用對(duì)象的不同,所以他們支持的服務(wù)是不一樣的,這點(diǎn)看標(biāo)準(zhǔn)就知道了。 稍微總結(jié)一下就是OBD主要用于與排放相關(guān)的ECU的診斷,而UDS則是排放除外的其他ECU的統(tǒng)一診斷標(biāo)準(zhǔn)。OBD的使用對(duì)象主要是傳統(tǒng)燃油車中排放相關(guān)的ECU,而UDS使用對(duì)象既可以是燃油車中的ECU也可以是混動(dòng)純電動(dòng)中的ECU。一般傳統(tǒng)燃油或混動(dòng)車中與排放相關(guān)的ECU既要支持OBD也要支持UDS,而其他的ECU一般僅僅需要支持UDS。 3.OBD的硬件接口簡(jiǎn)介
從圖中我們也知道,各個(gè)引腳之間的關(guān)系,那么這個(gè)端口也是通過國(guó)際標(biāo)準(zhǔn)進(jìn)行定義的OBD-II端口,在使用時(shí),我們需要買對(duì)應(yīng)的端口來進(jìn)行與汽車診斷端口進(jìn)行通信。
一般汽車這個(gè)診斷端口在我們的方向盤下面,油門踏板上面(不同廠家可能不一致)。
4.OBD的9大模式(服務(wù))介紹
為了能夠快速的了解OBD的各個(gè)模式,以下針對(duì)每個(gè)模式從2方面進(jìn)行介紹;
1).模式的作用(使用場(chǎng)景)
2),模式如何使用
a.模式1-請(qǐng)求動(dòng)力系統(tǒng)當(dāng)前數(shù)據(jù)
1).模式的作用
從這個(gè)定義我們就了解到,通過該模式我們可以去請(qǐng)求車輛上動(dòng)力系統(tǒng)的一些數(shù)據(jù),但是這些數(shù)據(jù)都是需要預(yù)先定義好的,如何進(jìn)行定義呢,那么ISO標(biāo)準(zhǔn)規(guī)定了一些參數(shù)標(biāo)識(shí)符即PID(parameter Identifiers),每個(gè)PID代表一個(gè)變量參數(shù),但是呢在CAN上傳輸怎么去識(shí)別這個(gè)參數(shù)呢,其實(shí)就是頂一個(gè)8bit的數(shù)據(jù)來代表這個(gè)參數(shù),比如PID 0x01 表示DTC清除后的監(jiān)控狀態(tài),比如PID 0x05 表示電機(jī)冷卻液的溫度 ,那么ISO15031-5它定義了很多這樣的PID參數(shù),這樣定義是很有意義的,因?yàn)檫@可以保證所有廠家的OBD可以盡可能的統(tǒng)一,從而方便通用。
我們稍微總結(jié)一下,模式1的作用就是 通過預(yù)先標(biāo)準(zhǔn)定義好的一些PID參數(shù),去請(qǐng)求動(dòng)力系統(tǒng)當(dāng)前的一些數(shù)據(jù)(如速度、里程、溫度等),以此來了解當(dāng)前車輛的一些狀態(tài)。
2).模式如何使用
ISO其實(shí)定義了很多PID參數(shù),但是并不要求所有的主機(jī)廠把這些參數(shù)都實(shí)現(xiàn),也就是說PID參數(shù)是可以選擇支持的。那么我們?cè)趺粗肋@個(gè)廠家支持哪一些參數(shù)呢?其實(shí)模式1中它有一些PID 0x00\0x20\0x40\0x60\0x80等就是用來查詢到底支持哪些服務(wù)的。具體如何使用如下:
PID 0x00 用于查詢(0x01~0x20)之間支持的PID參數(shù)
PID 0x20 用于查詢(0x21~0x40)之間支持的PID參數(shù)
PID 0x40 用于查詢 (0x41~0x60)之間支持的PID參數(shù)
以此類推后面的0x60 0x80
使用第一步:查詢支持的PID參數(shù)(req表示請(qǐng)求(request),res表示答復(fù)(response))
req:01 00
res:41 00 xx xx xx xx
左起第一個(gè)xx表示0x01~0x08之間的PID支持情況 將xx轉(zhuǎn)為2進(jìn)制 如xx=0x65 ->xx=0110 0101 從左往右 那么表示支持PID 0x02 0x03 0x06 0x08
左起第二個(gè)xx表示0x09~0x10之間的PID支持情況 按照同樣的轉(zhuǎn)化方式
左起第三個(gè)xx表示0x11~0x18之間的PID 支持情況 按照同樣的轉(zhuǎn)化方式
左起第四個(gè)xx表示0x19~0x20之間的PID支持情況 按照同樣的轉(zhuǎn)化方式
是不是0x00就是查詢0x01~0x20之間支持的PID情況?
同理對(duì)0x20 0x40等進(jìn)行查詢
使用第二步:就可以讀取相關(guān)支持的PID參數(shù)的值了,假如支持PID 0x04 0x05 0x0d
req:01 04 05 0c
res:41 04 xx xx 05 xx 0d xx
其中xx表示支持的PID的值了,比如0d表示當(dāng)前的車速,0d后面的xx的值是64,及對(duì)應(yīng)的是100KM/h,即請(qǐng)求到的車速為當(dāng)前100km/h
多說幾句就是我們可以每次只請(qǐng)求一個(gè)PID,也可以一次請(qǐng)求多個(gè),最多6個(gè),而答復(fù)的話可能不會(huì)按照順序來,如果在CAN上,答復(fù)的數(shù)據(jù)超過8個(gè)byte的話,那么它就會(huì)分出幾個(gè)幀來進(jìn)行答復(fù)。
b.模式2-請(qǐng)求凍結(jié)幀數(shù)據(jù)
1).模式的作用
首先解釋一下凍結(jié)幀,所謂的凍結(jié)幀你可以理解為故障發(fā)生時(shí)刻的一些環(huán)境數(shù)據(jù),凍結(jié)幀的存在就是為了盡可能了解故障發(fā)生時(shí)的一些參數(shù),以此來方便分析故障。
因此我們可以這樣說模式2的作用就是為了快速方便的了解,故障發(fā)生時(shí)刻的一個(gè)狀態(tài),以此來分析、排查以及定位故障,從而能夠有效的提高售后維護(hù)的效率。
2).模式的使用
使用第一步:和模式1一樣,先要查詢支持的凍結(jié)幀的PID參數(shù),格式也和模式1類似。
使用第二步:因?yàn)閮鼋Y(jié)幀是因?yàn)楣收习l(fā)生導(dǎo)致存儲(chǔ)的,因此我們先要知道導(dǎo)致存儲(chǔ)的凍結(jié)幀的故障碼是什么。
req:02 02 xx //這里xx表示幀序號(hào)
res:42 0x xx xx xx //左起 第一個(gè)xx表示幀序號(hào),第二個(gè)xx 表示DTC(故障碼)高字節(jié) 第三個(gè)xx 表示DTC(故障碼)低字節(jié)
使用第三步:請(qǐng)求相應(yīng)的凍結(jié)幀數(shù)據(jù),比如支持PID 0x0C(速度) 0x05(溫度)參數(shù) ,請(qǐng)求frame 00
req:02 0c 00 05 00 //這里00表示frame 00
res:43 0c 00 xx xx 05 00 xx 這里左起前兩個(gè)xx表示速度 后面的xx表示溫度
c.模式3-請(qǐng)求排放相關(guān)的故障碼
1).模式的作用
首先我們了解一下故障碼,所謂的故障碼就是代表某一種故障的代碼,比如氧氣傳感器短路的故障碼為P0130 那么這些故障碼在IDS15031-6中都有定義,對(duì)應(yīng)can報(bào)文上兩個(gè)字節(jié)DTC_H 和DTC_L 例如這里的P0130 對(duì)應(yīng)的DTC_H = 0x01 DTC_L=0x30。
那么模式3的作用就是請(qǐng)求當(dāng)前確認(rèn)的故障(Comfirmed DTC)的故障碼,以此就可以了解車輛發(fā)生故障時(shí),是哪個(gè)故障導(dǎo)致的,進(jìn)而就可以根據(jù)該故障的機(jī)理來分析故障,維修車輛。
2).模式的使用
req:03
res:43 03 01 41 01 45 01 48 // 03表示DTC的個(gè)數(shù),后面三對(duì)顏色表示三個(gè)故障碼P0141 P0145 P0148
如果沒有故障則會(huì)回復(fù) 00 00...
d.模式4-清除排放相關(guān)的故障信息
1).模式的作用
為啥要清除故障信息呢,因?yàn)檐囎釉诔鰪S后,我們不能讓車故障燈亮著就出廠吧,這是其一,其二就是每次維修好之后,有必要將故障清除掉,表示該故障已經(jīng)解決,還有就是可以騰出內(nèi)存空間,以便后續(xù)發(fā)生的故障進(jìn)行存儲(chǔ)。
2).模式的使用
該模式的使用比較簡(jiǎn)單;
req:04
res:44
就算沒有故障,也會(huì)返回正響應(yīng);注意這里清除的數(shù)據(jù)比較多,包括故障碼、凍結(jié)幀、測(cè)試數(shù)據(jù)等等排放相關(guān)的內(nèi)存數(shù)據(jù)都會(huì)清除掉。
e.模式5-請(qǐng)求氧傳感器的檢測(cè)結(jié)果
1).模式的作用
顯然根據(jù)名字我們就可以知道,這個(gè)模式的作用就是監(jiān)控氧傳感器的測(cè)試結(jié)果,因?yàn)檠鯕獾臐舛葘?duì)燃燒過程有著重要的影響,因此對(duì)排放也有著重大的影響,因此有必要進(jìn)行測(cè)試監(jiān)控。一般支持模式6的話也可以通過模式6來代替模式5的功能。
2)模式的使用
使用第一步:查詢支持的氧傳感器支持的測(cè)試表示符TID(Test Identifiers),這是TID也在IDS15031-5的附錄中有定義。如模式1和2查詢PID一樣,模式5查詢TID也是類似使用0x00...來查詢;
使用第二步:通過PID 0x13 0x1D來查詢氧傳感器的位置,因?yàn)閯?dòng)力系統(tǒng)模塊中,可能多個(gè)地方都有O2傳感器,如圖定義了字節(jié)信息對(duì)應(yīng)傳感器的位置
使用第三步:查詢氧傳感器的測(cè)試結(jié)果,
根據(jù)第一步獲得的TID 如0x05 和第二步獲得的O2傳感器位置0x01,那么就可以進(jìn)行獲取氧傳感器的測(cè)試結(jié)果。
req:05 05 01
res:45 05 01 12 00 19 //這里的12表示測(cè)試結(jié)果,00表示測(cè)試結(jié)果范圍的最小值,19表示測(cè)試結(jié)果范圍的最大值。
f.模式6-請(qǐng)求指定監(jiān)控系統(tǒng)的測(cè)試結(jié)果
1).模式的作用
車上不僅僅氧傳感器的結(jié)果需要監(jiān)控,還有其他很多的地方需要結(jié)構(gòu),比如催化劑、蒸發(fā)系統(tǒng)等等,那么可以通過模式6來進(jìn)行監(jiān)控。
那么主機(jī)廠也可以根據(jù)需要去定義監(jiān)控各個(gè)系統(tǒng)模塊ID以及需要進(jìn)行測(cè)試的參數(shù)TID。
2).模式的使用
使用第一步:也是查詢支持的TID
使用第二步:查詢支持的組件ID(若有的話)
使用第三步:請(qǐng)求測(cè)試結(jié)果 比如 TID 0x11 模塊ID 0x01
req:06 11
res:46 11 01 xx xx xx xx //左起前兩個(gè)xx表示測(cè)試結(jié)果,后兩個(gè)xx表示測(cè)試值的限制值,意思就是表示測(cè)試結(jié)果是否在范圍內(nèi)。
g.模式7-請(qǐng)求當(dāng)前或上一驅(qū)動(dòng)周期檢測(cè)到的排放相關(guān)的故障碼
1).模式的作用
為啥有了03請(qǐng)求故障碼,還需要07模式呢,我們可以看到,03模式主要請(qǐng)求的是確認(rèn)的故障碼(比如一個(gè)故障發(fā)生后,需要連續(xù)3個(gè)驅(qū)動(dòng)周期才能發(fā)展為確認(rèn)的故障),而這里07模式表示的是當(dāng)前的或上一驅(qū)動(dòng)周期發(fā)生的故障(這里強(qiáng)調(diào)的是上一驅(qū)動(dòng)周期或當(dāng)前驅(qū)動(dòng)周期發(fā)生的,意思是pending),以上是他們請(qǐng)求的故障碼的區(qū)別。那么需要請(qǐng)求pending類的故障呢?這是因?yàn)椋看尉S修人員修理完之后,會(huì)清理故障,為了了解這個(gè)故障是不是真正解決了,就需要重新試一下,然后看這個(gè)故障是不是又會(huì)出現(xiàn),如果是通過模式3去了解,則至少需要三個(gè)操作循環(huán),而模式7則可當(dāng)前操作循環(huán)就可以知道。
總結(jié)一下可以這么說07模式就是幫助技術(shù)員快速了解故障問題是否解決。
2)模式的使用
同03模式,可參考03模式。
h.模式8-請(qǐng)求控制在線系統(tǒng)或組件
1).模式的作用
因?yàn)檫@個(gè)模式使用的比較少,比如我國(guó)的所有OBD是不支持08模式的,以下對(duì)其進(jìn)行簡(jiǎn)單的介紹。
這個(gè)模式就是通過定義測(cè)試標(biāo)識(shí)符TID以及測(cè)試數(shù)據(jù),去操作ECU進(jìn)行測(cè)試。
2).模式的使用
如定義了TID 0x01 測(cè)試數(shù)據(jù) 00 00 00 00 00
req:08 01 00 00 00 00 00
res:48 01 00 00 00 00 00
i.模式9-請(qǐng)求整車信息
1)模式的作用
大家知道車輛中,有一個(gè)很重要的信息就是VIN碼,也就是車輛標(biāo)識(shí)碼,這個(gè)碼可是這輛車的“身份證”,那么我們?cè)趺醋x這個(gè)身份證信息呢,這就需要我們使用09模式了。
此外還包括一些標(biāo)定ID 標(biāo)定校驗(yàn)ID ECU名稱 IPT等信息可以通過09模式來讀取。
2)模式的使用
和前面提到的PID TID一樣,這里定義了一個(gè)叫InfoType的,你可以理解為消息類型,其實(shí)也同樣是用一個(gè)byte來表示某個(gè)信息,比如infoType = 0x02表示VIN碼這個(gè)信息。
使用第一步:類似查詢支持的PID TID一樣,這里第一步也是查詢支持的InfoType;
使用第二步:根據(jù)支持的InfoType來請(qǐng)求其對(duì)應(yīng)的值,如請(qǐng)求VIN碼 0x02為例
req:09 02
res:49 02 32 31 47 53 78 98 27 18 38 38 85 92 92 82 71 82 92 //這里標(biāo)紅部分就是VIN的內(nèi)容,如果是CAN的話會(huì)采用多幀傳輸,這里僅僅是示意。
以上主要針對(duì)OBD進(jìn)行說明,更多具有價(jià)值的是讀者去體會(huì)和使用其中提到的PID TID以及InfoType,經(jīng)過幾次使用之后會(huì)對(duì)這個(gè)協(xié)議會(huì)有更深的理解。 --------------------- 作者:AgingMoon 來源:CSDN 原文:https://blog.csdn.net/agingmoon/article/details/78225200 版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接! |
|
|