What is CAN bus?
What is CAN bus?
Controller Area Network (CAN) is a serial communication protocol that lets microcontrollers and devices talk to each other without a central host computer. Developed by Bosch in the 1980s, it is now the standard in automotive and heavy vehicle electronics.
Why buses use it
In a MAN Lion's City, dozens of ECUs (Electronic Control Units) share data in real time: the engine tells the instrument cluster the RPM, the EBS reports brake air pressure, the tachograph transmits vehicle speed — all over two wires (CAN_H and CAN_L).
The J1939 standard
Heavy vehicles (buses, trucks) use SAE J1939, an application layer built on top of CAN. It defines:
| Element | Description |
|---|---|
| 29-bit ID | Extended identifier (vs 11-bit basic CAN) |
| PGN | Parameter Group Number — identifies the data type |
| SA | Source Address — address of the sending ECU (0x00–0xFE) |
| SPN | Suspect Parameter Number — each signal within a PGN |
Implementation parameters
| Parameter | Value |
|---|---|
| Bus speed | 250 kbps |
| ID type | Extended (29-bit) |
| Send cycle | 20 ms (50 Hz) |
| Transceiver | MCP2515 + TJA1050 |
| MCP2515 oscillator | 8 MHz |
Note
0xFF bytes in unused positions are the J1939 default for "parameter not available" (SNA — Specific Not Available).