http://www.dpfdoctor.net/content/?220.html
SAE J1850 VPW協議也是OBD II標准中的一種,通常應用於GM車系中。
VPW英文全稱是Variable Pulse Width Modulated,即可變脈寬調制。
下面從物理層特性、電平接口、幀結構、命令交互、交互時間參數、常用命令字等幾個方面來介紹這種協議。
Ø 物理層特性:
采用10.4KB/S的波特率;通訊電平通常為7.5V;每個字節采用8位二進制數形式,沒有起始位、停止位和校驗位;通訊引腳為J1850 BUS+,既為OBD-2PIN。
Ø 電平接口:
協議通訊采用10.4Kbps VPW方式,初始電平為0V,在第1幀數據前有一個163至239微秒(us)的高電平表示SOF(幀頭即數據開始標志),
接下來以不同長短的高低電平表示二進制數據0或1,其中:
高電平寬度介於34-96us表示“1”,高電平寬度介於96-163us表示“0”,
低電平寬度介於34-96us表示“0”,低電平寬度介於96-163us表示“1”,
傳輸時按字節順序,且每個字節都是高位在前,低位在后的順序,高低電平相間用於表示傳輸的數據,
字節與字節之間沒有間隔,傳送完一幀數據之后有一個寬度大於239us的低電平表示EOF(幀尾即幀結束標志)。
Ø 幀結構:
GM車型中的幀結構:
Tools: 0x6C + ECU地址 + 設備地址 + Fun_ID + (command information) + CRC
ECU: 0x6C + 設備地址 + ECU地址 + Fun_ID + (command information) + CRC
OBDII中的幀結構:
Tools: 0x68 + 0x6A + ECU地址 + Fun_ID + (command information) + CRC
ECU: 0x48 + 0x6B + 設備地址 + Fun_ID + (command information) + CRC
ECU地址為每個系統的標示號,設備地址一般為0xF1或0xF0;
而Fun_ID為不同功能的標示號,ECU響應的Fun_ID在tools命令的基礎上+0x40;
CRC(循環冗余校驗)為校驗字節。
Ø 命令交互:命令交互通常情況下為1對1,但也存在1對多或者多對1的情況。
下面是兩組命令交互舉例:
GM:
Tools: 6CH 10H F1H 20H 64H
ECU: 6CH F1H 10H 60H 72H
OBDII:
Tools: 68H 6AH F1H 01H 00H 17H
ECU: 48H 6BH 10H 41H 00H BEH 3FH B8H 10H C9H
在交互中,因為發送命令的對象不一樣,所以目標地址和源地址是進行了互換;
同時,ECU響應設備的命令字在設備命令字的基礎上+0x40
Ø 交互時間參數:
設備發出命令后到ECU應答命令的時間間隔為320微秒(us)到100毫秒(ms)。
ECU應答命令后到設備發下一條命令的時間間隔為320微秒(us)到100ms。
如果設備或ECU同時發送多幀命令時,每幀之間的時間間隔為3到5ms。
同一幀命令中的字節與字節之間無時間間隔。
Ø 常用命令字:
GM車型中的常用命令字:
系統進入:20H
數據流設置:2CH
數據流讀取:2AH
讀故障碼:19HH
清除故障碼:14H
讀版本信息:3CH
OBD II中常用命令字:
讀數據流:01H
讀故障碼:03H
清除故障碼:04H
讀版本信息:09H