Hi everyone,
I don't know why but I'm having a tough time decoding CAN Bus data frames, even after looking at many sources showing bit field diagrams of how the data is supposed to be structured.
Background on project/goal
My main goal is to connect directly to an electronic turbo actuator from a diesel engine on a bench without the need of the ECU (engine control module) to simulate the data the actuator requires from the ECU in order to control the motor inside of the actuator. Ultimately, I'd like to be able to identify each of the messages in order to determine what type of information the actuator is requesting from the ECU in order to function. I'm using an Arduino with a CAN Bus shield that utilized an MCP2515 CAN controller and a TJA1050 CAN transceiver. I've found and tried about a handful of MCP2515/CAN Bus libraries and have found one that seems to work the best. I'm successfully been able to read the Hex ID and data from a few of the actuators that I have.
Issues
I can't seem to understand exactly how to decode the bits contained in the Hex ID and data messages based on the CAN Bus 2.0B standards. Since this is a diesel engine module I'm sure it falls under the extended CAN format with a 29-bit identifier. I don't have any educational background or training in how bit fields are supposed to be arranged. I've written out the hex values in binary format and have tried multiple times to try to match up the bits with the CAN Bus bit field structures but I'm not sure if I'm doing it correctly.
Can anybody help guide me in how I'm supposed to identify each bit of information according to the bit field structures? I'll leave some of the data below for reference as well as how the bit fields are structured. Thanks in advance!
Extended ID: 0x18FFDC00 DLC: 8 Data: 0x10 0xFF 0xFF 0xFF 0x01 0x9F 0xFF 0xFF
Extended ID: 0x0CFFC600 DLC: 8 Data: 0x32 0x00 0x01 0xFF 0xFF 0xFF 0xFF 0xFF
Extended ID: 0x18FFC502 DLC: 8 Data: 0xFF 0xFF 0xFF 0x51 0x00 0xFF 0xFF 0x00
Extended ID: 0x18FF0A02 DLC: 8 Data: 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
Extended ID: 0x18EAFFFE DLC: 3 Data: 0x00 0xEE 0x00
References on CAN Bus Messages:
https://www.rpi.edu/dept/ecse/mps/sloa101.pdf
http://www.simmasoftware.com/j1939-presentation.pdf
https://www.mi.fu-berlin.de/inf/gro...catterWeb/moduleComponents/CanBus_canover.pdf
https://www.ti.com/lit/an/sloa101b/...09578&ref_url=https%3A%2F%2Fwww.google.com%2F
I don't know why but I'm having a tough time decoding CAN Bus data frames, even after looking at many sources showing bit field diagrams of how the data is supposed to be structured.
Background on project/goal
My main goal is to connect directly to an electronic turbo actuator from a diesel engine on a bench without the need of the ECU (engine control module) to simulate the data the actuator requires from the ECU in order to control the motor inside of the actuator. Ultimately, I'd like to be able to identify each of the messages in order to determine what type of information the actuator is requesting from the ECU in order to function. I'm using an Arduino with a CAN Bus shield that utilized an MCP2515 CAN controller and a TJA1050 CAN transceiver. I've found and tried about a handful of MCP2515/CAN Bus libraries and have found one that seems to work the best. I'm successfully been able to read the Hex ID and data from a few of the actuators that I have.
Issues
I can't seem to understand exactly how to decode the bits contained in the Hex ID and data messages based on the CAN Bus 2.0B standards. Since this is a diesel engine module I'm sure it falls under the extended CAN format with a 29-bit identifier. I don't have any educational background or training in how bit fields are supposed to be arranged. I've written out the hex values in binary format and have tried multiple times to try to match up the bits with the CAN Bus bit field structures but I'm not sure if I'm doing it correctly.
Can anybody help guide me in how I'm supposed to identify each bit of information according to the bit field structures? I'll leave some of the data below for reference as well as how the bit fields are structured. Thanks in advance!
Extended ID: 0x18FFDC00 DLC: 8 Data: 0x10 0xFF 0xFF 0xFF 0x01 0x9F 0xFF 0xFF
Extended ID: 0x0CFFC600 DLC: 8 Data: 0x32 0x00 0x01 0xFF 0xFF 0xFF 0xFF 0xFF
Extended ID: 0x18FFC502 DLC: 8 Data: 0xFF 0xFF 0xFF 0x51 0x00 0xFF 0xFF 0x00
Extended ID: 0x18FF0A02 DLC: 8 Data: 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
Extended ID: 0x18EAFFFE DLC: 3 Data: 0x00 0xEE 0x00
References on CAN Bus Messages:
https://www.rpi.edu/dept/ecse/mps/sloa101.pdf
http://www.simmasoftware.com/j1939-presentation.pdf
https://www.mi.fu-berlin.de/inf/gro...catterWeb/moduleComponents/CanBus_canover.pdf
https://www.ti.com/lit/an/sloa101b/...09578&ref_url=https%3A%2F%2Fwww.google.com%2F