當要去讀取 VIN (Vehicle Identification Number) Mode $09 - Vehicle Information
始終都是只有得到
CAN ID: 0x7E8
DATA: 10 14 49 02 01 31 46 54
│ │
│ └─ 0x14 = 20 bytes 要回傳(包含 service, pid, vin 等)
└─ 0x10 = First Frame(多幀傳輸)
找了許多資料知道有些ECU 需要 Flow Control Frame
所以送出以下 Flow Control(FC)封包,才會收到後面的連續幀:
CAN ID: 0x7E0(ECU 接收 ID)
DATA: 30 00 00 00 00 00 00 00
│
└─ 0x30 = Flow Control (CTS: Continue To Send)
利用之前寫的PeakCAN Tool送出command frame:
終於得到完整的datas
第一幀
10 14 49 02 01 31 46 54
│ │
│ └─ 0x14 = 20 bytes 資料總長
└──── 0x10 = First Frame
49 02 = 回應 Mode 0x09 + PID 0x02(VIN)
01 = 回傳資料塊 ID = 第 1 組 VIN 塊
31 46 54 = '1FT'(ASCII)
第二幀
21 4C 52 34 46 45 58 42
│ └────────────── 'LR4FEXB'
└─ 0x21 = Consecutive Frame index 1
第三幀
22 50 41 39 38 39 39 34
│ └────────────── 'PA98994'
└─ 0x22 = Consecutive Frame index 2
完整 VIN 字串共 17 個字元,已完全符合 OBD-II 規範
VIN: 1FTLR4FEXBPA98994
沒有留言:
張貼留言