當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]1、因TL718已經(jīng)為你建立了物理層、數(shù)據(jù)鏈層和部分應(yīng)用層的協(xié)議,所以只要OBD2標(biāo)準(zhǔn)應(yīng)用層協(xié)議文本,ISO15031-5 或 SAE J1979(這兩個(gè)協(xié)議是相同的內(nèi)容)。 2、TL718診斷接口 1 套或用TL718芯片自建電路。 3、家

1、因TL718已經(jīng)為你建立了物理層、數(shù)據(jù)鏈層和部分應(yīng)用層的協(xié)議,所以只要OBD2標(biāo)準(zhǔn)應(yīng)用層協(xié)議文本,ISO15031-5 或 SAE J1979(這兩個(gè)協(xié)議是相同的內(nèi)容)。    
2、TL718診斷接口 1 套或用TL718芯片自建電路。
3、家用PC機(jī)電腦一臺(tái)。
4、安裝軟件:Accessport調(diào)試軟件及VC++(或VB、BC++等)你喜歡的開發(fā)軟件。
5、符號(hào)OBD2標(biāo)準(zhǔn)的汽車發(fā)動(dòng)機(jī)電腦一塊(或汽車一臺(tái))

準(zhǔn)備好以上這些,你就可以開始你的OBD2標(biāo)準(zhǔn)程序開發(fā)了!?。?br />



TL718基本信息

    TL718通過一個(gè)UART串口與單片機(jī)、PDA或PC RS232通訊,在有的新的PC機(jī)上已沒有裝備RS232串口,可以通過虛擬串口實(shí)現(xiàn)與TL718通訊,例USB TO RS232、以太網(wǎng)TO RS232、或藍(lán)牙 TO RS232等等。


        -------     RS232     ------    OBD2電纜    ----------
       |   PC  |<----------->| TL718|<------------>|汽車診斷口|
        -------               ------                ----------


   不管使用怎樣的物理連接,你可以使用超級(jí)終端或串口調(diào)試工具,直接通過鍵盤發(fā)送和接收字符。在使用串口調(diào)試軟件前,首先必須設(shè)置正確的COM端口號(hào)和正確的波特率。一般為9600波特率(PIN6=0V),或38400波特率(PIN6=VCC,PP OC設(shè)置默認(rèn)值)。串口設(shè)置為:8個(gè)數(shù)據(jù)位,校驗(yàn)位:0, 停止位 1位。如果設(shè)置錯(cuò)誤,將不能和TL718正常通訊。所有從TL718的響應(yīng)以一個(gè)回車符(0X0D)及一個(gè)可選的換行符(0X0A)結(jié)束。正確連接,打開電源后。TL718將驅(qū)動(dòng)測(cè)試LED燈,(閃亮3次)后,發(fā)送:


      TL718 starting

      〉

    如果正確收到以上信息代表串口及連接設(shè)置正確。第二行“〉”符號(hào)代表TL718為空閑狀態(tài),可以立即從RS232接收數(shù)據(jù)。如果沒有收到“〉”符號(hào)就向TL718發(fā)送數(shù)據(jù),可能引起數(shù)據(jù)丟失。而發(fā)生不正確的響應(yīng)。PC從串口向TL718發(fā)送的指令格式:

      TL718有2種格式的命令
                       1、OBD連接命令,與車輛發(fā)生通訊。
                       2、內(nèi)部命令,全部以AT開頭,不與輛發(fā)生通訊。





 


l發(fā)送必須以0x0d(回車符)結(jié)束的ASCII碼字符,回車符后面的字符被TL718丟棄。
lTL718內(nèi)部命令以“AT”開頭,后面跟可見字符。不可見字附及空格被忽視。
lOBD命令只能包含16進(jìn)制的ASCII碼(0-9,a-f,A-F),空格被忽略。
l如果發(fā)送的指令,不能被TL718有效解釋,TL718將返回一個(gè)“?”表明,發(fā)送指令無效。
l當(dāng)TL718處理OBD命令時(shí),TL718連續(xù)監(jiān)視RTS引腳及RS232輸入,其中任何一個(gè)情況發(fā)生,TL718將中斷當(dāng)前的OBD命令,使它快速返回提示符“〉”,等待接收新的命令。
l大小寫字符都能被TL718接收,空格被忽略。比喻命令“ATZ”、“atz”、“at z”都是一樣的。

比喻我們向TL718發(fā)送一個(gè)復(fù)位指令只要向RS232串口發(fā)送ASCII字符“ATZ”+0x0d(回車符);

TL718 Starting
>ATZ
ELM327 v1.2
>
 
注:ATZ指令返回 ELM327 V1.2是為了使用現(xiàn)成的國(guó)外OBD觀軟件,所以用了這個(gè)返回信息。
返回本芯片信息用“ATI”指令。

>ATI
TL718 v1.0
>
 
返回芯片編號(hào)用 "AT@S"指令(這個(gè)編號(hào)升級(jí)硬件和提供保修服務(wù)時(shí)需要)
>AT@S
CodeNumb:98764323
>
[!--empirenews.page--]TL718的OBD命令
  
          如果你向TL718發(fā)送的指令以16進(jìn)制數(shù)的ASCII開頭,則TL718認(rèn)為是OBD命令,TL718接收后,把成對(duì)的ASCII碼16進(jìn)制數(shù)轉(zhuǎn)換成單個(gè)字節(jié)的16進(jìn)制數(shù)據(jù)發(fā)送到車輛電腦數(shù)據(jù)總線。OBD命令實(shí)際是被嵌入到數(shù)據(jù)消息包內(nèi)后發(fā)送到數(shù)據(jù)總線上的,大多數(shù)標(biāo)準(zhǔn)要求:在每個(gè)數(shù)據(jù)消息包內(nèi)包含三字節(jié)的頭及最后一個(gè)數(shù)據(jù)校驗(yàn)字節(jié)。TL718自動(dòng)添加了這些附加的字節(jié),這些默認(rèn)的值對(duì)OBD2診斷模式請(qǐng)求指令都不需要更改,但如果你想要更改這些頭字節(jié)值,可以用內(nèi)部命令“ATSH XXXXXX”更改。

       大部分OBD指令長(zhǎng)度只有一個(gè)字節(jié)或2個(gè)字節(jié),TL718充許發(fā)送的最長(zhǎng)度是對(duì)應(yīng)標(biāo)準(zhǔn)規(guī)定的字節(jié),超出部分將被丟棄。發(fā)出的OBD指令,不能出現(xiàn)單個(gè)的數(shù)字,16進(jìn)制數(shù)必須成對(duì)發(fā)送,比喻0不可能發(fā)送單個(gè)的“0”,必須發(fā)送“00”,如果出現(xiàn)單個(gè)數(shù)字,TL718認(rèn)為指令格式錯(cuò)誤,將返回一個(gè)“?”。由于OBD(汽車診斷標(biāo)準(zhǔn))都使用16進(jìn)制,所以TL718接收發(fā)送的數(shù)據(jù)也是16進(jìn)制的。例15的代表的十進(jìn)制值是21;

       當(dāng)發(fā)送完OBD2命令后,TL718等待從總線接收OBD消息,如果接收到地址的消息并且地址匹配,則TL718就把數(shù)據(jù)從RS232發(fā)送給PC,如果TL718接收到的消息和發(fā)送的地址不匹配,則忽略該消息。但也可以通過ATBD內(nèi)部命令查看該接收到的消息包。如果直到等待時(shí)間(P2MAX ATST命令的設(shè)置值,默認(rèn)值100ms)結(jié)束,沒有接收到匹配地址的數(shù)據(jù),則TL718返回“NO DATA”,如果接收到數(shù)據(jù)并且地址匹配則復(fù)位計(jì)時(shí)間,繼續(xù)等待,直到等待時(shí)間溢出。
        

OBD2標(biāo)準(zhǔn)診斷模式

 





開發(fā)OBD2診斷程序,必須掌握ISO 15031-5( SAE J1979)定義的九種診斷模式,對(duì)于英文不是很好的朋友,本站有個(gè)中文的說明:
可以參考:

          
OBD系統(tǒng)輸出信息的模式/服務(wù)
  • Mode 1: 請(qǐng)求動(dòng)力系當(dāng)前數(shù)據(jù)
  • Mode 2: 請(qǐng)求凍結(jié)禎數(shù)據(jù)
  • Mode 3: 請(qǐng)求排放相關(guān)的動(dòng)力系診斷故障碼
  • Mode 4: 清除/復(fù)位排放相關(guān)的診斷信息
  • Mode 5: 請(qǐng)求氧傳感器監(jiān)測(cè)測(cè)試結(jié)果
  • Mode 6: 請(qǐng)求非連續(xù)監(jiān)測(cè)系統(tǒng)OBD測(cè)試結(jié)果
  • Mode 7: 請(qǐng)求連續(xù)監(jiān)測(cè)系統(tǒng)OBD測(cè)試結(jié)果
  • Mode 8: 請(qǐng)求控制車載系統(tǒng),測(cè)試或者部件
  • Mode 9: 讀車輛和標(biāo)定識(shí)別號(hào)
每個(gè)模式后面緊跟一個(gè)參數(shù)標(biāo)識(shí)(PID)表示后面是什么參數(shù),每個(gè)模式的PID 00 是ISO15031定義專用的參數(shù),每個(gè)符合標(biāo)準(zhǔn)的電腦必須支持這個(gè)參數(shù)標(biāo)識(shí)。代表該模式對(duì)其他PID是否支持。


   與車輛數(shù)據(jù)通訊

OBD2命令的格式

1、
   


      上圖是OBD2的診斷指令的消息包的完整格式(極大部分廠商專用的功能也是這種格式),TL718能自動(dòng)設(shè)定了Header/ID/PCI/CHECKSUM這部分?jǐn)?shù)據(jù),對(duì)于標(biāo)準(zhǔn)的OBD2診斷程序你都幾乎不用關(guān)心修改它。想了解有關(guān)內(nèi)容,它們分別定義在ISO14230-2、J1850 、IS9141-2 和ISO15765-2數(shù)據(jù)鏈層定義的文本內(nèi)。

       TL718自動(dòng)檢測(cè)數(shù)據(jù)總線的物理連接,能在協(xié)議1-9間自動(dòng)搜尋當(dāng)前車輛的協(xié)議,搜尋到后自動(dòng)返回?cái)?shù)據(jù)。當(dāng)然也可手工設(shè)定到某個(gè)特定的協(xié)議。TL718不搜尋A-F協(xié)議,因?yàn)锳-F協(xié)議它們沒有象OBD2一樣有一個(gè)統(tǒng)一的ISO15031應(yīng)用層協(xié)議,那樣的話自動(dòng)搜索變得毫無意義。

2、ISO15031(SAE J1979)是應(yīng)用層的協(xié)議,同樣它也不用關(guān)心使用什么樣的物理層協(xié)議(TL718自動(dòng)連接),你編程時(shí)只要發(fā)送數(shù)據(jù),和接收及處理接收回來的數(shù)據(jù)(計(jì)算或顯示)。所以這么多種物理連接,以統(tǒng)一標(biāo)準(zhǔn)規(guī)定的數(shù)據(jù)包來發(fā)送接收,我們編程處理變得相對(duì)簡(jiǎn)單。下面我們來討論OBD2指令。

3、這里我們只要關(guān)心數(shù)據(jù)消息包的7字節(jié)數(shù)據(jù)(data byte)部分就可以了

      ISO15031-5定義:

             字節(jié)               意義
              1         MODE    代表請(qǐng)求數(shù)據(jù)的類型
              2          PID    參數(shù)標(biāo)識(shí)
              3-7               根據(jù)不同的MODE及PID ISO15031-5有詳細(xì)的定義





          
         如上圖所示,連接好線路及打開車匙到ON,不要起動(dòng)車輛。不用做任何設(shè)定,只要你向TL718發(fā)送指令,TL718自動(dòng)返回車輛響應(yīng)的數(shù)據(jù)。


例 1:  圖所示:“0100”代表ISO15031-5定義MODE 01 PID 00 指令。

          >01 00
          41 00 BF 9F B9 90
         第1個(gè)字節(jié) 41  代表 Mode 01  (01+40,標(biāo)準(zhǔn)定義)   
         第2個(gè)字節(jié) 00  代表  PID 00
         3-6字節(jié)是車輛發(fā)送回來關(guān)于 MODE 01 PID 00 請(qǐng)求返回來的數(shù)據(jù)
          表示模式00 所支持其他(PID01---PID32)標(biāo)識(shí)的按位定義的數(shù)據(jù) 1代表支持 0代表不支持。  

例 2:請(qǐng)求(讀?。┌l(fā)動(dòng)機(jī)水溫 MODE 01 PID 05

         我們只要簡(jiǎn)單的向車輛發(fā)送0105指令
          >0105
           41 05 7B
        
          41代表MODE 01 
          05代表 PID 05
          7B是水溫值 10進(jìn)制數(shù)值是(7*16+11)123 水溫是123-40=80度
          
例 3:讀取發(fā)動(dòng)機(jī)轉(zhuǎn)速rpm  MODE 01 PID 0C

      同樣只要向TL718發(fā)送:010C

          >01 0C
          41 0C 1A F8
       1AF8是2字節(jié)的16進(jìn)制值,轉(zhuǎn)換為10進(jìn)制數(shù)是6904,每格1/4 rpm
       轉(zhuǎn)速是6904/4=1726 rpm

      注:以上數(shù)據(jù)的轉(zhuǎn)換,及格式在ISO15031-5內(nèi)有詳細(xì)定義
 

[!--empirenews.page--]讀OBD2故障碼(DTCs Diagnostic Trouble Codes)

    讀故障碼是診斷儀最常用的功能,這里只是簡(jiǎn)單的說明一下,詳細(xì)內(nèi)容請(qǐng)查閱ISO15031-5文本
   一般情況下可直接用MODE 03讀取當(dāng)前故障碼,但這里我們

先用MODE 01 PID 01讀取現(xiàn)在有多少個(gè)故障碼存在ECU內(nèi)
      
       >01 01
        41 01 81 07 65 04
       >

      41 01 前面已說明是對(duì)MODE 01 PID 01的響應(yīng)代碼,
      81   代表當(dāng)前的故障碼數(shù),這個(gè)10進(jìn)制數(shù)值是129,不是代表有129個(gè)故障碼,
            81它的最高位MSB 代表是否點(diǎn)亮故障指燈,低7位代表了故障碼的數(shù)量
           16進(jìn)制算法應(yīng)是 0x81 & 0x7F = 0x01 所以是一個(gè)故障碼。也可是10進(jìn)制數(shù)值直接減128
            即:129-128=1;
      
       所以81代表了,故障燈點(diǎn)亮,有一個(gè)故障碼,81后面的數(shù)據(jù)請(qǐng)參考標(biāo)準(zhǔn)文本,和讀故障碼沒有關(guān)系。

 




 

在這個(gè)例子中,TL718只返回了一行數(shù)據(jù),但是如果有另外的控制模塊也附合響應(yīng)條件,有可能返回多行信息。
比喻常見的:發(fā)動(dòng)機(jī)電腦和自動(dòng)波箱控制電腦同時(shí)返回信息,就會(huì)有2行信息,要確認(rèn)是哪一個(gè)電腦返回的是哪一行
信息,必須設(shè)置返回OBD消息保的三字節(jié)頭(AT H1內(nèi)部命令打開),查看消息頭字節(jié)中的第三個(gè)字節(jié)(源地址)確定
是那個(gè)電腦模塊返回的消息包。這里先不討論,在另外章節(jié)來詳細(xì)討論,多消息包數(shù)據(jù)。



 

現(xiàn)在已經(jīng)讀了有多少個(gè)故障碼,下一步讀實(shí)際的故障碼是什么。

          用OBD2診斷模式MODE 03讀?。褐灰?jiǎn)單地向TL718發(fā)送03
           
        >03

         可能的返回信息數(shù)據(jù)如下:
         43 01 33 00 00 00 00
         
        注:如果故障碼數(shù)量多于3或多個(gè)電腦模塊,會(huì)返回多行消息包,
           
     43是對(duì)MODE 03 請(qǐng)求的響應(yīng)(03+40),另外的6個(gè)字節(jié)是故障代碼,2個(gè)字節(jié)代表一個(gè)故障碼。
     這里有3個(gè)代表故障碼的數(shù)據(jù):0133 0000 0000,“0000”是ISO15031在這個(gè)模式下返回的填充數(shù)據(jù)
     不是實(shí)際的故障碼。
     
    故障碼含義:ISO定義:二字節(jié)故障碼(例0133)的第一個(gè)數(shù)如下表所示  現(xiàn)在來分析上面的故障碼 0133:




 



 

     第一個(gè)數(shù)字“0”按上表用“P0”代替。0133就代表是故障碼P0133。
同樣如果收到的是D016則,“D”用U1代替,則故障代碼就時(shí)U1016;
如果收到是1131則代換后,故障代碼是P1131。

   注:ISO15765 CAN故障碼消息包和J11850、ISO9141 ISO14230返回的信息有稍不同,
       編寫程序時(shí)要注意,ISO 15765 返回的信息第二個(gè)數(shù)據(jù)代表的是電腦模塊有多少個(gè)故障碼(DTCs),
       詳細(xì)看ISO15031-5內(nèi)定義。



清除故障代碼

    OBD2診斷模式MODE04 是復(fù)位ECU的一個(gè)功能,同時(shí)也清觸故障代碼;執(zhí)行后ECU將:

           1、復(fù)位故障代碼的數(shù)量為0
           2、刪除所有的故障代碼
           3、刪除存儲(chǔ)的凍結(jié)楨數(shù)據(jù)
           4、刪除所有O2傳感器聽測(cè)試數(shù)據(jù)
           5、刪除模式MODE06 和 MODE 07的數(shù)據(jù)信息

     復(fù)位后你的汽車由于復(fù)位了一些數(shù)據(jù),短時(shí)間內(nèi)可能會(huì)引起工作異常。為了防止不小心復(fù)位ECU,
    ISO15031-5要求所有的掃描工具(診斷儀)在發(fā)送MODE 04指令前,必須加一個(gè)“確認(rèn)信息”。
    TL718不監(jiān)視發(fā)送信息的內(nèi)容是否是復(fù)位指令。

        >04
         44
        >
     發(fā)送04指令后,車輛ECU接收成攻,將立即復(fù)位以上內(nèi)容,
     并發(fā)回一個(gè)MODE 04的響應(yīng)信息44(04+40)。

一般的流程:


 



 

結(jié)束語




 

    • ISO14230 ISO9141要求通訊前的初始化過程、及連接后要求有一個(gè)周期性的握手信號(hào),這些TL718都已經(jīng)自動(dòng)完成,OBD2標(biāo)準(zhǔn)的診斷程序都不用更改。怎樣更改這些參數(shù):
    • 看完這些內(nèi)容,就可開始你的OBD2開發(fā)。實(shí)際上廠商專用的診斷功能程序差不多也是這么簡(jiǎn)單。為什么叫專用,是因?yàn)樗鼪]有公開應(yīng)用層的協(xié)議。開發(fā)時(shí)比我們OBD2開發(fā)多少一個(gè)過程。就是怎樣用TL718從專用的設(shè)備中讀得專用的診斷指令(也就是應(yīng)用層協(xié)議)。在開發(fā)專用功能的診斷儀中討論這個(gè)問題。
    • OBD2其他的診斷模式這里不再說明,診斷方法都是一樣的。詳細(xì)內(nèi)容查看ISO15031-5或SAE J1979。
    • 多試多做你會(huì)發(fā)現(xiàn)開發(fā)診斷程序原來如此簡(jiǎn)單。
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉