0.簡介
http://en.wikipedia.org/wiki/On_Board_Diagnostics
http://www.obddiagnostics.com/obdinfo/info.html
OBD-II (On-Board Diagnoistics II) 定義了與ECU(行車電腦)溝通的方式.
包括Hardware Connector的形式,腳位.電子訊號的protocol與溝通代碼等.
這裡我所關心的是protocol與溝通代碼的部份.目前已有IC廠商開發出解譯Chip.
最廣為使用的是ELM327這顆.它提供一個RS232 Terminal的介面與ECU溝通.
http://www.elmelectronics.com/DSheets/ELM327DS.pdf
連線的Baud rate 有兩種選擇 9600 8N1 及 38400 8N1.
正確連接之後將可於terminal上見到連線提示.
ELM327 v1.3a
>
以下皆以ELM327作為平台.
1.OBD-II Commands
OBD Command 是實際與ECU溝通的資料組成方式.實際傳送時ELM327會自動加上3 bytes header及資料尾端1 byte CRC checksum.
大部分的OBD Command都只有1~2 byte的長度,最大的長度為7 bytes.
OBD Command的第一個byte代表 mode.依據SAE standard J1979定義mode 十六進位值所代表的意義如下.
01 - show current data
02 - show freeze frame data
03 - show diagnostic trouble codes
04 - clear trouble codes and stored values
05 - test results, oxygen sensors
06 - test results, non-continuously monitored
07 - show ‘pending’ trouble codes
08 - special control mode
09 - request vehicle information
ISO 15765-4 (CAN) standard定義
0A-Used for permanent trouble code
注意 : OBD standard 並未要求ECU必須支援所有mode.
OBD Command的第二個byte代表PID (P-Codes),之後的 bytes 為資料
http://en.wikipedia.org/wiki/OBD-II_PIDs
沒有留言:
張貼留言