99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

您好,歡迎來電子發(fā)燒友網! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網>電子百科>汽車電子>基礎知識>

TL718的OBD命令 - 汽車OBD2診斷程序開發(fā)

2011年06月28日 11:49 未知 作者:葉子 用戶評論(0
TL718的OBD命令
??
? ?? ?? ??如果你向TL718發(fā)送的指令以16進制數的ASCII開頭,則TL718認為是OBD命令,TL718接收后,把成對的ASCII碼16進制數轉換成單個字節(jié)的16進制數據發(fā)送到車輛電腦數據總線。OBD命令實際是被嵌入到數據消息包內后發(fā)送到數據總線上的,大多數標準要求:在每個數據消息包內包含三字節(jié)的頭及最后一個數據校驗字節(jié)。TL718自動添加了這些附加的字節(jié),這些默認的值對OBD2診斷模式請求指令都不需要更改,但如果你想要更改這些頭字節(jié)值,可以用內部命令“ATSH XXXXXX”更改。

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

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

OBD2標準診斷模式





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

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


???與車輛數據通訊

OBD2命令的格式

1、
? ?


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

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

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

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

? ?? ?ISO15031-5定義:

? ?? ?? ?? ? 字節(jié)? ?? ?? ?? ?? ?意義
? ?? ?? ?? ???1? ?? ?? ?MODE? ? 代表請求數據的類型
? ?? ?? ?? ???2? ?? ?? ? PID? ? 參數標識
? ?? ?? ?? ???3-7? ?? ?? ?? ?? ?根據不同的MODE及PID ISO15031-5有詳細的定義





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


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

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

例 2:請求(讀取)發(fā)動機水溫 MODE 01 PID 05

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

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

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

? ?? ?注:以上數據的轉換,及格式在ISO15031-5內有詳細定義



? ? ?

非常好我支持^.^

(89) 50%

不好我反對

(89) 50%

( 發(fā)表人:zhangjin )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關規(guī)定!

      ?