Overview
The Controller Area Network (CAN) is a robust vehicle bus standard designed to allow microcontrollers and devices to communicate with each other without a host computer. Originally developed by Bosch in the 1980s for automotive applications, CAN has become the de facto standard for in-vehicle communications.CAN Frame Structure
A CAN frame consists of several critical components:Arbitration ID
The Arbitration ID (Arb ID) is a unique identifier for each message on the CAN bus. It serves two purposes:- Message Identification: Identifies the type and source of data being transmitted
- Bus Arbitration: Lower numerical IDs have higher priority during bus contention
- Standard Format: 11-bit identifier (0-0x7FF)
- Extended Format: 29-bit identifier (0-0x1FFFFFFF)
Most passenger vehicles use standard 11-bit Arb IDs for cost and simplicity reasons.
Data Length Code (DLC)
The DLC specifies the number of data bytes in the payload, ranging from 0 to 8 bytes.Payload Data
The payload consists of 0-8 bytes (b0-b7) containing the actual information being transmitted. Each byte can hold values from 0x00 to 0xFF.Bit-Level Representation
Each byte in the payload can be converted to a binary matrix for analysis:J1979 Standard (SAE)
The SAE J1979 standard defines a set of diagnostic services for accessing vehicle data:Standard Request/Response Pattern
- Request ID: 0x7DF (broadcast) or 0x7E0-0x7E7 (specific ECU)
- Response ID: 0x7E8-0x7EF (typically request ID + 0x8)
Common PIDs (Parameter IDs)
| PID | Description | Data Bytes | Formula |
|---|---|---|---|
| 0x0C | Engine RPM | 2 | (256*A + B) / 4 |
| 0x0D | Vehicle Speed | 1 | A km/h |
| 0x11 | Throttle Position | 1 | A * 100/255 % |
| 0x61 | Demand Torque % | 1 | A - 125 |
J1979 data is publicly documented and does not require reverse engineering. The pipeline automatically detects and extracts J1979 signals for use as ground truth.
Why Reverse Engineering is Needed
While J1979 provides standardized diagnostic data, the majority of CAN traffic in modern vehicles uses proprietary protocols:Challenges
- No Public Documentation: OEMs keep their signal definitions secret
- Packed Signals: Multiple signals share the same payload bytes
- Variable Encodings: Signals may use different bit positions, byte orders, and scaling factors
- Mixed Endianness: Both big-endian and little-endian signals coexist
Example: Proprietary Signal
Transmission Patterns
CAN messages exhibit different transmission behaviors:Synchronous Transmission
Messages sent at regular, predictable intervals (e.g., every 10ms, 100ms).Asynchronous/Event-Driven
Messages sent only when data changes or events occur (e.g., button press, door open).The pipeline uses a 90% confidence interval analysis to classify Arb IDs as synchronous or asynchronous based on the consistency of their transmission timing.
Next Steps
- Learn about the Pipeline Architecture for processing CAN data
- Explore Reverse Engineering Techniques used to extract signals