2025年7月31日 星期四

PeakCAN 與 ECU Simulator 通訊 擷取 VIN Data

在這篇文章 ECU Simulator CAN Bus Data with ESP32+MCP2515
當要去讀取 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


沒有留言:

張貼留言