2023年9月14日 星期四

ECU Simulator CAN Bus Data with ESP32+MCP2515

Purpose:

依據之前的文章 ESP32 + MCP2515 use CanHacker on CAN Bus systemCAN BUS 通訊研究, 重新把ECU simulator跟 ESP32 Canhacker的CAN Bus通訊結果作整理. 

Based on the previous article ESP32 + MCP2515 use CanHacker on CAN Bus system and CAN BUS communication research, the CAN Bus communication results between ECU simulator and ESP32 Canhacker are reorganized.


模擬器提供下列模式:

系統狀態、即時資料:MODE 01
故障診斷:MODE 03,07,0A
故障清除:MODE 04
凍結資料:MODE 02
氧感測器測試:MODE 05
監測結果:MODE 06
車輛資訊:MODE 09 

模擬器提供六組模擬訊號調整旋鈕。由左至右編號為1~6。
預設模擬訊號源為:空氣流量、冷卻液溫度、轉速、車速、進氣溫度、節氣門位置

詢問汽車功能的CAN匯流排節點識別碼0x7DF , 接收汽車OBD資料要將Acceptance
Filter設為0x7E8,都是依據ISO 15765-4文件所定規範。
If ( CANIsTxReady ( ) )
{ TX_Data_Buf2[0] = 0x02 ;
TX_Data_Buf2[1] = 0x01 ;
TX_Data_Buf2[2] = PID_code;
TX_Data_Buf2[3] = 0x00 ;
TX_Data_Buf2[4] = 0x00 ;
TX_Data_Buf2[5] = 0x00 ;
TX_Data_Buf2[6] = 0x00 ;
TX_Data_Buf2[7] = 0x00 ;
CANSendMessage ( 0x7DF , TX_Data_Buf2 ,
8,CAN_TX_PRIORITY_1&
CAN_TX_STD_FRAME&
CAN_TX_NO_RTR_FRAME ) ;
}

if ( CANIsRxReady ( ) )
{
CANReceiveMessage( &RX_ID1 ,
RX_Data_Buf1 , &RX_Data_Len1 ,
&RX1_Message_Flag ) ;
if (RX_ID1==0x7E8)
{ Engine RPM = ((A*256)+B)/4 ; }
}

Reference https://en.wikipedia.org/wiki/OBD-II_PIDs





Circuit:
YouTube Demo:




沒有留言:

張貼留言