电竞比分网-中国电竞赛事及体育赛事平台

分享

關(guān)于OBD協(xié)議(ISO 15031)的學(xué)習(xí)

 車(chē)載診斷技術(shù) 2022-07-25 發(fā)布于上海

今天是2022年7月24日,上海天氣陰轉(zhuǎn)多云。

老規(guī)矩,分享一段喜歡的文字,避免自己成為高知識(shí)低文化的工科男:

生命的吊詭、可愛(ài)的地方就在于,你永遠(yuǎn)不知道在那一個(gè)轉(zhuǎn)彎,碰到什么樣的人,甚至拿起一本什么樣的書(shū),一看,就改變了一生。人生總有確幸的美好的時(shí)刻,有時(shí)候?yàn)榱俗穼み@種時(shí)刻,就值得活下來(lái)。

Return to today's topic!

最近在做關(guān)于OBD的相關(guān)內(nèi)容工作,這里做一個(gè)備注。

OBD是英文On-Board Diagnostic的縮寫(xiě),即車(chē)載診斷系統(tǒng)。這個(gè)系統(tǒng)隨時(shí)監(jiān)控發(fā)動(dòng)機(jī)的運(yùn)行狀況和尾氣后處理系統(tǒng)的工作狀態(tài),若發(fā)現(xiàn)有可能引起排放超標(biāo)的情況,會(huì)馬上發(fā)出警示。當(dāng)系統(tǒng)出現(xiàn)故障時(shí),故障燈(MIL)或檢查發(fā)動(dòng)機(jī)(Check Engine)警告燈亮,同時(shí)OBD系統(tǒng)會(huì)將故障信息存入存儲(chǔ)器,通過(guò)標(biāo)準(zhǔn)的診斷儀器和診斷接口可以以故障碼的形式讀取相關(guān)信息。根據(jù)故障碼的提示,維修人員能迅速準(zhǔn)確地確定故障的性質(zhì)和部位。

在車(chē)載診斷范疇,可以分為兩個(gè)方向:

1、偏向OEM定義內(nèi)容


2、偏向Society and Legislative Authority


本文關(guān)于OBD協(xié)議內(nèi)容,ISO為其分配了ISO-15031系列標(biāo)準(zhǔn)號(hào),共有7個(gè)子類(lèi)。同樣在傳統(tǒng)燃油車(chē)強(qiáng)國(guó)美國(guó),其國(guó)內(nèi)組織SAE也為OBD分配了相應(yīng)的標(biāo)準(zhǔn)號(hào)。

本文分享ISO15031-5,即OBD所用的診斷服務(wù)(0x01-09),說(shuō)明其:

1)模式的作用(使用場(chǎng)景)

2)模式如何使用

OBD協(xié)議協(xié)議中定義9個(gè)診斷服務(wù),每個(gè)服務(wù)用一個(gè)byte來(lái)代表,即所謂的Service ID(SID),具體內(nèi)容如下:

Service 01 - Request Current Powertrain Diagnostic Data:

通過(guò)該服務(wù),Tester端可以獲取車(chē)載動(dòng)力系統(tǒng)當(dāng)前的診斷數(shù)據(jù):

-> 具體單個(gè)定義傳感器的狀態(tài);

-> 發(fā)動(dòng)機(jī)轉(zhuǎn)速;

-> 動(dòng)力域DTC數(shù)量;

-> 故障指示燈是否亮起等。

格式為:SID + PID(Parameter ID),PID也是一個(gè)Byte,取值范圍是0x00-0xFF,類(lèi)似于UDS協(xié)議,ISO 15031定義了部分PID內(nèi)容,也做了相當(dāng)部分的預(yù)留。

因?yàn)樵搮f(xié)議具備法規(guī)效應(yīng),OBD協(xié)議定義了眾多PID,對(duì)于ECU支持哪些PID,診斷儀是如何獲知?在實(shí)際應(yīng)用過(guò)程中,PID分為兩類(lèi):

-> 用于表征具體的數(shù)據(jù);

-> 用于指出該ECU支持哪些PID。

在第二種使用場(chǎng)景中,PID分別是0x00 , 0x20 , 0x40…. 讀取其中一個(gè)PID后ECU會(huì)返回4個(gè)字節(jié)的結(jié)果,從返回的4個(gè)字節(jié)中的每個(gè)bit表示其所對(duì)應(yīng)的PID是否被支持。

PID 0x00 用于查詢(0x01~0x20)之間支持的PID參數(shù);

PID 0x20 用于查詢(0x21~0x40)之間支持的PID參數(shù);

PID 0x40 用于查詢 (0x41~0x60)之間支持的PID參數(shù),以此類(lèi)推。

例如:

req:01 00

res:41 00 xx xx xx xx

左起第一位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支持情況,注意二進(jìn)制轉(zhuǎn)換。

左起第三個(gè)xx表示0x11~0x18之間的PID 支持情況,注意二進(jìn)制轉(zhuǎn)換。

左起第四個(gè)xx表示0x19~0x20之間的PID支持情況,注意二進(jìn)制轉(zhuǎn)換。

只能說(shuō)一句,協(xié)議定制者是真牛逼!

接著使用第二步:就可以讀取相關(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)前的車(chē)速,0d后面的xx的值是64,及對(duì)應(yīng)的是100KM/h,即請(qǐng)求到的車(chē)速為當(dāng)前100km/h。

類(lèi)比UDS協(xié)議,每次請(qǐng)求一個(gè)PID,也可以一次請(qǐng)求多個(gè),最多6個(gè)。而對(duì)于最新版ISO 27145協(xié)議,通過(guò)Service 22來(lái)實(shí)現(xiàn)對(duì)OBD服務(wù)車(chē)輛信息讀取,這個(gè)時(shí)候規(guī)定是最少支持6個(gè)DID讀取。

Service 02 - Request Powertrain Freeze Frame Data

對(duì)車(chē)車(chē)輛ECU出現(xiàn)并界定出某個(gè)故障,會(huì)將這個(gè)故障被Confirm時(shí)的相關(guān)狀態(tài)信息“凍結(jié)”下來(lái)(UDS協(xié)議中叫快照信息),也就是行業(yè)內(nèi)所謂的凍結(jié)幀,這些狀態(tài)信息對(duì)車(chē)輛故障的確定非常重要,因?yàn)樗鼈冇涗浟塑?chē)輛發(fā)生故障時(shí)的很多相關(guān)信息,凍結(jié)幀的載體同樣是PID。在ISO 15031協(xié)議中,Service 02與Service 01命令的使用方法相同。只不過(guò)02讀取的是故障發(fā)生時(shí)的數(shù)據(jù),而01讀取的當(dāng)前數(shù)據(jù),數(shù)據(jù)格式和含義都是相同的。與01命令不同的是,02命令中多了一個(gè)frame字節(jié):

需要注意的是在OBD協(xié)議中,用frame = 0x00來(lái)代表讀取凍結(jié)幀。如果主機(jī)廠想自己再定義些什么其他的幀,或者多定義幾個(gè)凍結(jié)幀,則可以給frame分配上其他的編號(hào)。OBD只規(guī)定了ECU需要為一個(gè)DTC存儲(chǔ)凍結(jié)幀,當(dāng)ECU中同時(shí)存在多個(gè)DTC時(shí),就要根據(jù)優(yōu)先級(jí)來(lái)判定存儲(chǔ)誰(shuí)的凍結(jié)幀了。模式2的作用就是為了快速方便的了解,故障發(fā)生時(shí)刻的一個(gè)狀態(tài),以此來(lái)分析、排查以及定位故障,從而能夠有效的提高售后維護(hù)的效率。

Service 03 - Request Emission-Related Diagnostic Trouble Codes

服務(wù)03用于讀取存儲(chǔ)在ECU中的與排放相關(guān)的“confirmed” DTC。Service 03命令的請(qǐng)求和響應(yīng)格式:

Service 03的作用就是請(qǐng)求當(dāng)前確認(rèn)的故障(Comfirmed DTC)的故障碼,以此就可以了解車(chē)輛發(fā)生故障時(shí),是哪個(gè)故障導(dǎo)致的,進(jìn)而就可以根據(jù)該故障的機(jī)理來(lái)分析故障,維修車(chē)輛。

Service 04 - Clear/Reset Emission-Related Diagnostic Information

Service 04用于清空ECU中存儲(chǔ)的與排放相關(guān)的DTC。同時(shí)清除包括故障碼、凍結(jié)幀、測(cè)試數(shù)據(jù)等等排放相關(guān)的內(nèi)存數(shù)據(jù)。

該服務(wù)格式請(qǐng)求是一個(gè)字節(jié)的04,響應(yīng)是一個(gè)字節(jié)的44。只有在發(fā)動(dòng)機(jī)沒(méi)有運(yùn)轉(zhuǎn)的時(shí)候才可以執(zhí)行這個(gè)服務(wù),否則ECU應(yīng)該給出NRC 0x22(條件不滿足)來(lái)拒絕該服務(wù)。

Service 05 - Request Oxygen Sensor Monitoring Test Results

Service 05用于讀氧傳感器的狀態(tài),監(jiān)控氧傳感器的測(cè)試結(jié)果,因?yàn)檠鯕獾臐舛葘?duì)燃燒過(guò)程有著重要的影響,因此對(duì)排放也有著重大的影響,因此有必要進(jìn)行測(cè)試監(jiān)控。一般支持模式6的話也可以通過(guò)模式6來(lái)代替模式5的功能(對(duì)于OBDonCAN來(lái)說(shuō)不支持該服務(wù)).

Service 06 - Request On-Board Monitoring Test Results for Specific Monitored Systems

車(chē)上不僅僅氧傳感器的結(jié)果需要監(jiān)控,還有其他很多的地方需要結(jié)構(gòu),比如催化劑、蒸發(fā)系統(tǒng)等等,那么可以通過(guò)Service 06來(lái)進(jìn)行監(jiān)控。

主機(jī)廠也可以根據(jù)需要去定義監(jiān)控各個(gè)系統(tǒng)模塊ID以及需要進(jìn)行測(cè)試的參數(shù)TID。該服務(wù)用于請(qǐng)求對(duì)特定被監(jiān)測(cè)系統(tǒng)的監(jiān)測(cè)結(jié)果。OBD中定義了一個(gè)MID(Monitor ID)的表格,來(lái)標(biāo)識(shí)被監(jiān)測(cè)系統(tǒng)。一個(gè)ECU不一定需要支持所有的MID,獲知具體支持哪些MID的方法與01和02服務(wù)所使用的方法相同.

06服務(wù)的response中,針對(duì)某一個(gè)MID,可能有多個(gè)TID(Test ID),因?yàn)獒槍?duì)一個(gè)系統(tǒng)可能有多個(gè)測(cè)試項(xiàng)目。TID表格也在OBD中定義。06服務(wù)的response格式固定,每個(gè)MID的每個(gè)TID有6部分組成,具體如下:

MID;

TID;

Unit And Scaling ID,用于標(biāo)識(shí)這個(gè)TID的測(cè)試內(nèi)容是什么,比如電壓、時(shí)間、計(jì)數(shù)器之類(lèi)的;

Test Value,實(shí)際測(cè)量值;

Min. Test Value,這個(gè)測(cè)量值的最小值;

Max. Test Value,這個(gè)測(cè)量值的最大值。

Service 07 - Request Emission-Related Diagnostic Trouble Codes Detected During Current or Last Completed Driving Cycle

Service 07也是獲取DTC,但是它與03服務(wù)區(qū)別在于,它用于獲取在當(dāng)前以及上一個(gè)駕駛循環(huán)中出現(xiàn)的處于“pending”狀態(tài)的DTC,而Service 03則是獲取的是confirmed DTC。

請(qǐng)求及相應(yīng)格式如下:

該服務(wù)的作用:

每次維修人員修理完之后,會(huì)清理故障,為了了解這個(gè)故障是不是真正解決了,就需要重新試一下,然后看這個(gè)故障是不是又會(huì)出現(xiàn),如果是通過(guò)模式3去了解,則至少需要三個(gè)操作循環(huán),而模式7則可當(dāng)前操作循環(huán)就可以知道。

Service 08 - Request Control of On-Board System, Test or Component

Sercie 08用于對(duì)系統(tǒng)進(jìn)行控制,進(jìn)行元件測(cè)試操作。它相當(dāng)于UDS中定義的2F和31服務(wù)。它的使用方法是SID + TID,注意這個(gè)TID與05和06服務(wù)的TID不同,在OBD中有一個(gè)專(zhuān)門(mén)給08服務(wù)使用的TID表格。

注:因?yàn)檫@個(gè)模式使用的比較少,比如我國(guó)的所有OBD是不支持08模式的,以下對(duì)其進(jìn)行簡(jiǎn)單的介紹。這個(gè)模式就是通過(guò)定義測(cè)試標(biāo)識(shí)符TID以及測(cè)試數(shù)據(jù),去操作ECU進(jìn)行測(cè)試。

Service 09 - Request Vehicle Information

Service 09用于讀取車(chē)輛信息,請(qǐng)求格式:

SID + InfoType(個(gè)數(shù)若干)

InfoType在OBD標(biāo)準(zhǔn)中有定義。并不是所有的InfoType都需要被支持,具體哪些InfoType被支持,可以采用和01服務(wù)相同的方法相似。

以上分享是關(guān)于診斷協(xié)議OBD的內(nèi)容,在車(chē)載診斷范疇與UDS是兩個(gè)不同范疇。并且OBD協(xié)議是針對(duì)傳統(tǒng)燃油車(chē)的規(guī)范(有法律效應(yīng))。但現(xiàn)狀是新能源車(chē)慢慢在崛起,特別是電池組逐步解決續(xù)航行程和充電效率的問(wèn)題,對(duì)于大方向(節(jié)能、環(huán)保、碳中和)的布局,我國(guó)都是一個(gè)極好的彎道超車(chē)機(jī)遇。在以往傳統(tǒng)汽車(chē)強(qiáng)國(guó):

-> 日本押寶氫能源,大方向錯(cuò)誤;

-> 德在新能源車(chē)的電池和軟件捉襟見(jiàn)肘的現(xiàn)狀。

作為一個(gè)國(guó)家工業(yè)皇冠上的一顆明珠,汽車(chē)對(duì)于國(guó)家經(jīng)濟(jì)的反哺能力,有著極其重要的作用。看好這個(gè)方向,也慶幸自己在這個(gè)行業(yè)。

-----------------------------------
   作者簡(jiǎn)介 | 穿拖鞋的漢子
    汽車(chē)電子工程師

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多