今天是2022年7月24日,,上海天氣陰轉(zhuǎn)多云,。老規(guī)矩,分享一段喜歡的文字,,避免自己成為高知識低文化的工科男:“生命的吊詭,、可愛的地方就在于,你永遠(yuǎn)不知道在那一個轉(zhuǎn)彎,,碰到什么樣的人,,甚至拿起一本什么樣的書,一看,,就改變了一生,。人生總有確幸的美好的時刻,有時候為了追尋這種時刻,,就值得活下來,。” Return to today's topic!最近在做關(guān)于OBD的相關(guān)內(nèi)容工作,,這里做一個備注,。“OBD是英文On-Board Diagnostic的縮寫,即車載診斷系統(tǒng),。這個系統(tǒng)隨時監(jiān)控發(fā)動機(jī)的運行狀況和尾氣后處理系統(tǒng)的工作狀態(tài),,若發(fā)現(xiàn)有可能引起排放超標(biāo)的情況,會馬上發(fā)出警示,。當(dāng)系統(tǒng)出現(xiàn)故障時,,故障燈(MIL)或檢查發(fā)動機(jī)(Check Engine)警告燈亮,同時OBD系統(tǒng)會將故障信息存入存儲器,,通過標(biāo)準(zhǔn)的診斷儀器和診斷接口可以以故障碼的形式讀取相關(guān)信息,。根據(jù)故障碼的提示,維修人員能迅速準(zhǔn)確地確定故障的性質(zhì)和部位,。” 在車載診斷范疇,,可以分為兩個方向:1、偏向OEM定義內(nèi)容
2,、偏向Society and Legislative Authority
本文關(guān)于OBD協(xié)議內(nèi)容,,ISO為其分配了ISO-15031系列標(biāo)準(zhǔn)號,共有7個子類,。同樣在傳統(tǒng)燃油車強(qiáng)國美國,,其國內(nèi)組織SAE也為OBD分配了相應(yīng)的標(biāo)準(zhǔn)號。本文分享ISO15031-5,,即OBD所用的診斷服務(wù)(0x01-09),,說明其:1)模式的作用(使用場景)2)模式如何使用OBD協(xié)議協(xié)議中定義9個診斷服務(wù),,每個服務(wù)用一個byte來代表,即所謂的Service ID(SID),,具體內(nèi)容如下:Service 01 - Request Current Powertrain Diagnostic Data:通過該服務(wù),Tester端可以獲取車載動力系統(tǒng)當(dāng)前的診斷數(shù)據(jù):-> 具體單個定義傳感器的狀態(tài),;-> 發(fā)動機(jī)轉(zhuǎn)速,;-> 動力域DTC數(shù)量;-> 故障指示燈是否亮起等,。格式為:SID + PID(Parameter ID),,PID也是一個Byte,取值范圍是0x00-0xFF,,類似于UDS協(xié)議,,ISO 15031定義了部分PID內(nèi)容,也做了相當(dāng)部分的預(yù)留,。因為該協(xié)議具備法規(guī)效應(yīng),,OBD協(xié)議定義了眾多PID,對于ECU支持哪些PID,,診斷儀是如何獲知,?在實際應(yīng)用過程中,PID分為兩類:-> 用于表征具體的數(shù)據(jù),;-> 用于指出該ECU支持哪些PID,。在第二種使用場景中,PID分別是0x00 , 0x20 , 0x40…. 讀取其中一個PID后ECU會返回4個字節(jié)的結(jié)果,,從返回的4個字節(jié)中的每個bit表示其所對應(yīng)的PID是否被支持,。PID 0x00 用于查詢(0x01~0x20)之間支持的PID參數(shù);PID 0x20 用于查詢(0x21~0x40)之間支持的PID參數(shù),;PID 0x40 用于查詢 (0x41~0x60)之間支持的PID參數(shù),,以此類推。例如:req:01 00res: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左起第二個xx表示0x09~0x10之間的PID支持情況,注意二進(jìn)制轉(zhuǎn)換,。左起第三個xx表示0x11~0x18之間的PID 支持情況,,注意二進(jìn)制轉(zhuǎn)換。左起第四個xx表示0x19~0x20之間的PID支持情況,,注意二進(jìn)制轉(zhuǎn)換,。只能說一句,協(xié)議定制者是真牛逼,!接著使用第二步:就可以讀取相關(guān)支持的PID參數(shù)的值了,,假如支持PID 0x04 0x05 0x0dreq:01 04 05 0cres:41 04 xx xx 05 xx 0d xx其中xx表示支持的PID的值了,,比如0d表示當(dāng)前的車速,0d后面的xx的值是64,,及對應(yīng)的是100KM/h,,即請求到的車速為當(dāng)前100km/h。類比UDS協(xié)議,,每次請求一個PID,,也可以一次請求多個,最多6個,。而對于最新版ISO 27145協(xié)議,,通過Service 22來實現(xiàn)對OBD服務(wù)車輛信息讀取,這個時候規(guī)定是最少支持6個DID讀取,。Service 02 - Request Powertrain Freeze Frame Data對車車輛ECU出現(xiàn)并界定出某個故障,,會將這個故障被Confirm時的相關(guān)狀態(tài)信息“凍結(jié)”下來(UDS協(xié)議中叫快照信息),也就是行業(yè)內(nèi)所謂的凍結(jié)幀,,這些狀態(tài)信息對車輛故障的確定非常重要,,因為它們記錄了車輛發(fā)生故障時的很多相關(guān)信息,凍結(jié)幀的載體同樣是PID,。在ISO 15031協(xié)議中,,Service 02與Service 01命令的使用方法相同。只不過02讀取的是故障發(fā)生時的數(shù)據(jù),,而01讀取的當(dāng)前數(shù)據(jù),,數(shù)據(jù)格式和含義都是相同的。與01命令不同的是,,02命令中多了一個frame字節(jié):需要注意的是在OBD協(xié)議中,,用frame = 0x00來代表讀取凍結(jié)幀。如果主機(jī)廠想自己再定義些什么其他的幀,,或者多定義幾個凍結(jié)幀,,則可以給frame分配上其他的編號。OBD只規(guī)定了ECU需要為一個DTC存儲凍結(jié)幀,,當(dāng)ECU中同時存在多個DTC時,,就要根據(jù)優(yōu)先級來判定存儲誰的凍結(jié)幀了。模式2的作用就是為了快速方便的了解,,故障發(fā)生時刻的一個狀態(tài),,以此來分析、排查以及定位故障,,從而能夠有效的提高售后維護(hù)的效率,。Service 03 - Request Emission-Related Diagnostic Trouble Codes服務(wù)03用于讀取存儲在ECU中的與排放相關(guān)的“confirmed” DTC。Service 03命令的請求和響應(yīng)格式:Service 03的作用就是請求當(dāng)前確認(rèn)的故障(Comfirmed DTC)的故障碼,,以此就可以了解車輛發(fā)生故障時,,是哪個故障導(dǎo)致的,,進(jìn)而就可以根據(jù)該故障的機(jī)理來分析故障,維修車輛,。Service 04 - Clear/Reset Emission-Related Diagnostic InformationService 04用于清空ECU中存儲的與排放相關(guān)的DTC,。同時清除包括故障碼、凍結(jié)幀,、測試數(shù)據(jù)等等排放相關(guān)的內(nèi)存數(shù)據(jù),。該服務(wù)格式請求是一個字節(jié)的04,響應(yīng)是一個字節(jié)的44,。只有在發(fā)動機(jī)沒有運轉(zhuǎn)的時候才可以執(zhí)行這個服務(wù),否則ECU應(yīng)該給出NRC 0x22(條件不滿足)來拒絕該服務(wù),。Service 05 - Request Oxygen Sensor Monitoring Test ResultsService 05用于讀氧傳感器的狀態(tài),,監(jiān)控氧傳感器的測試結(jié)果,因為氧氣的濃度對燃燒過程有著重要的影響,,因此對排放也有著重大的影響,,因此有必要進(jìn)行測試監(jiān)控。一般支持模式6的話也可以通過模式6來代替模式5的功能(對于OBDonCAN來說不支持該服務(wù)).Service 06 - Request On-Board Monitoring Test Results for Specific Monitored Systems車上不僅僅氧傳感器的結(jié)果需要監(jiān)控,,還有其他很多的地方需要結(jié)構(gòu),,比如催化劑、蒸發(fā)系統(tǒng)等等,,那么可以通過Service 06來進(jìn)行監(jiān)控,。主機(jī)廠也可以根據(jù)需要去定義監(jiān)控各個系統(tǒng)模塊ID以及需要進(jìn)行測試的參數(shù)TID。該服務(wù)用于請求對特定被監(jiān)測系統(tǒng)的監(jiān)測結(jié)果,。OBD中定義了一個MID(Monitor ID)的表格,,來標(biāo)識被監(jiān)測系統(tǒng)。一個ECU不一定需要支持所有的MID,,獲知具體支持哪些MID的方法與01和02服務(wù)所使用的方法相同.06服務(wù)的response中,,針對某一個MID,可能有多個TID(Test ID),,因為針對一個系統(tǒng)可能有多個測試項目,。TID表格也在OBD中定義。06服務(wù)的response格式固定,,每個MID的每個TID有6部分組成,具體如下:MID,;TID;Unit And Scaling ID,,用于標(biāo)識這個TID的測試內(nèi)容是什么,,比如電壓、時間,、計數(shù)器之類的,;Test Value,,實際測量值;Min. Test Value,,這個測量值的最小值,;Max. Test Value,這個測量值的最大值,。Service 07 - Request Emission-Related Diagnostic Trouble Codes Detected During Current or Last Completed Driving CycleService 07也是獲取DTC,,但是它與03服務(wù)區(qū)別在于,它用于獲取在當(dāng)前以及上一個駕駛循環(huán)中出現(xiàn)的處于“pending”狀態(tài)的DTC,,而Service 03則是獲取的是confirmed DTC,。請求及相應(yīng)格式如下:該服務(wù)的作用:每次維修人員修理完之后,會清理故障,,為了了解這個故障是不是真正解決了,,就需要重新試一下,然后看這個故障是不是又會出現(xiàn),,如果是通過模式3去了解,,則至少需要三個操作循環(huán),而模式7則可當(dāng)前操作循環(huán)就可以知道,。Service 08 - Request Control of On-Board System, Test or ComponentSercie 08用于對系統(tǒng)進(jìn)行控制,,進(jìn)行元件測試操作。它相當(dāng)于UDS中定義的2F和31服務(wù),。它的使用方法是SID + TID,,注意這個TID與05和06服務(wù)的TID不同,在OBD中有一個專門給08服務(wù)使用的TID表格,。注:因為這個模式使用的比較少,,比如我國的所有OBD是不支持08模式的,以下對其進(jìn)行簡單的介紹,。這個模式就是通過定義測試標(biāo)識符TID以及測試數(shù)據(jù),,去操作ECU進(jìn)行測試。Service 09 - Request Vehicle InformationService 09用于讀取車輛信息,,請求格式:SID + InfoType(個數(shù)若干)InfoType在OBD標(biāo)準(zhǔn)中有定義,。并不是所有的InfoType都需要被支持,具體哪些InfoType被支持,,可以采用和01服務(wù)相同的方法相似,。以上分享是關(guān)于診斷協(xié)議OBD的內(nèi)容,在車載診斷范疇與UDS是兩個不同范疇,。并且OBD協(xié)議是針對傳統(tǒng)燃油車的規(guī)范(有法律效應(yīng)),。但現(xiàn)狀是新能源車慢慢在崛起,特別是電池組逐步解決續(xù)航行程和充電效率的問題,對于大方向(節(jié)能,、環(huán)保,、碳中和)的布局,我國都是一個極好的彎道超車機(jī)遇,。在以往傳統(tǒng)汽車強(qiáng)國:-> 日本押寶氫能源,,大方向錯誤;-> 德在新能源車的電池和軟件捉襟見肘的現(xiàn)狀,。作為一個國家工業(yè)皇冠上的一顆明珠,,汽車對于國家經(jīng)濟(jì)的反哺能力,有著極其重要的作用,??春眠@個方向,也慶幸自己在這個行業(yè),。-----------------------------------
|