歷史車庫

話題31225條    關(guān)注922人

+關(guān)注
話題

基于EST327芯片開發(fā)OBD讀取和清除故障碼

讀故障碼是診斷儀最常用的功能,這里只是簡單的說明一下,詳細(xì)內(nèi)容請查閱ISO15031-5文本??一般情況下可直接用MODE03讀取當(dāng)前故障碼,但這里我們先用MODE01PID01讀取現(xiàn)在有多少個故障碼存在ECU內(nèi)????????>0101??????410181076504????>????4101前面已說明是對MODE01PID01的響應(yīng)代碼,????81?代表當(dāng)前的故障碼數(shù),這個10進(jìn)制數(shù)值是129,不是代表有129個故障碼,????????81它的最高位MSB代表是否點(diǎn)亮故障指燈,低7位代表了故障碼的數(shù)量????????16進(jìn)制算法應(yīng)是0x81&0x7F=0x01所以是一個故障碼。也可是10進(jìn)制數(shù)值直接減128????????即:129-128=1;????????所以81代表了,故障燈點(diǎn)亮,有一個故障碼,81后面的數(shù)據(jù)請參考標(biāo)準(zhǔn)文本,和讀故障碼沒有關(guān)系。在這個例子中,EST327只返回了一行數(shù)據(jù),但是如果有另外的控制模塊也附合響應(yīng)條件,有可能返回多行信息。比喻常見的:發(fā)動機(jī)電腦和自動波箱控制電腦同時返回信息,就會有2行信息,要確認(rèn)是哪一個電腦返回的是哪一行信息,必須設(shè)置返回OBD消息保的三字節(jié)頭(ATH1內(nèi)部命令打開),查看消息頭字節(jié)中的第三個字節(jié)(源地址)確定是那個電腦模塊返回的消息包。這里先不討論,在另外章節(jié)來詳細(xì)討論,多消息包數(shù)據(jù)?,F(xiàn)在已經(jīng)讀了有多少個故障碼,下一步讀實際的故障碼是什么。??????用OBD2診斷模式MODE03讀?。褐灰唵蔚叵駿ST327發(fā)送03??????????????>03??????可能的返回信息數(shù)據(jù)如下:??????43013300000000????????????注:如果故障碼數(shù)量多于3或多個電腦模塊,會返回多行消息包,????????????43是對MODE03請求的響應(yīng)(03+40),另外的6個字節(jié)是故障代碼,2個字節(jié)代表一個故障碼。????這里有3個代表故障碼的數(shù)據(jù):013300000000,“0000”是ISO15031在這個模式下返回的填充數(shù)據(jù),不是實際的故障碼。0133就代表是故障碼P0133。同樣如果收到的是D016則,“D”用U1代替,則故障代碼就時U1016;如果收到是1131則代換后,故障代碼是P1131。???注:ISO15765CAN故障碼消息包和J11850、ISO9141ISO14230返回的信息有稍不同,編寫程序時要注意,ISO15765返回的信息第二個數(shù)據(jù)代表的是電腦模塊有多少個故障碼(DTCs),詳細(xì)看ISO15031-5內(nèi)定義。清除故障代碼OBD2診斷模式MODE04是復(fù)位ECU的一個功能,同時也清觸故障代碼;執(zhí)行后ECU將:1、復(fù)位故障代碼的數(shù)量為02、刪除所有的故障代碼3、刪除存儲的凍結(jié)楨數(shù)據(jù)4、刪除所有O2傳感器聽測試數(shù)據(jù)5、刪除模式MODE06和MODE07的數(shù)據(jù)信息復(fù)位后你的汽車由于復(fù)位了一些數(shù)據(jù),短時間內(nèi)可能會引起工作異常。為了防止不小心復(fù)位ECU,ISO15031-5要求所有的掃描工具(診斷儀)在發(fā)送MODE04指令前,必須加一個“確認(rèn)信息”。??EST327不監(jiān)視發(fā)送信息的內(nèi)容是否是復(fù)位指令。??????>04??????44??????>????發(fā)送04指令后,車輛ECU接收成攻,將立即復(fù)位以上內(nèi)容,????并發(fā)回一個MODE04的響應(yīng)信息44(04+40)。ISO14230ISO9141要求通訊前的初始化過程、及連接后要求有一個周期性的握手信號,這些EST327都已經(jīng)自動完成,OBD2標(biāo)準(zhǔn)的診斷程序都不用更改。怎樣更改這些參數(shù):看完這些內(nèi)容,就可開始你的OBD2開發(fā)。實際上廠商專用的診斷功能程序差不多也是這么簡單。為什么叫專用,是因為它沒有公開應(yīng)用層的協(xié)議。開發(fā)時比我們OBD2開發(fā)多少一個過程。就是怎樣用EST327從專用的設(shè)備中讀得專用的診斷指令(也就是應(yīng)用層協(xié)議)。在開發(fā)專用功能的診斷儀中討論這個問題。OBD2其他的診斷模式這里不再說明,診斷方法都是一樣的。

收藏

2014-11-26

0

你輕輕一贊
是我大大的動力

我關(guān)注的部落

登錄關(guān)注部落,才有更多簽到。請先登錄