PROTOCOL · TRANSPORT LAYER · 2008-present
CAN-OBD protocol
CAN-OBD (ISO 15765-4).
What is CAN-OBD?
CAN-OBD (ISO 15765-4) is the transport-layer specification that adapts UDS or KWP2000 application-layer requests to fit over a standard CAN bus. Mandates the use of 11-bit or 29-bit identifiers, 500 kbit/s or 250 kbit/s speeds, and ISO-TP segmentation for messages larger than 7 bytes.
Key characteristics
- Required for OBD-II compliance on all new vehicles sold in the US since 2008 and EU since 2014.
- Uses CAN frames at 500 kbit/s (high-speed CAN) or 250 kbit/s (medium-speed).
- Tester sends to ECU at 0x7DF (broadcast) or 0x7E0-0x7E7 (specific ECU).
- ECU responds at request_ID + 8 (0x7E8-0x7EF).
- ISO-TP single-frame / first-frame / consecutive-frame / flow-control structure.
CAN-OBD service IDs / frame structure
| ID / Code | Name | Purpose |
|---|---|---|
0x7DF | OBD broadcast | Tester→all OBD ECUs request |
0x7E0-0x7E7 | ECU-specific | Tester→specific ECU request |
0x7E8-0x7EF | ECU response | ECU→tester response |
0x18DA-0x18DB | 29-bit physical | Extended addressing |
0x18DB33F1 | 29-bit functional | Functional broadcast |
SF | Single Frame | Up to 7 data bytes in one CAN frame |
FF | First Frame | First chunk of multi-frame message |
CF | Consecutive Frame | Subsequent multi-frame chunks |
FC | Flow Control | Tester→ECU pacing for multi-frame |