# item.guide
Side-by-Side Comparison Diagnostics & Protocols

CAN Bus vs. UDS Protocol

Comparing 2 standards across 13 specifications. 13 key differences identified.

Comparing:
CAN Bus
UDS Protocol

Controller Area Network (CAN Bus, invented by Robert Bosch GmbH in 1986 and standardized under ISO 11898) is the multi-master, message-broadcast serial bus governing electronic control units (ECUs). Operating at 500 kbps (High-Speed CAN) over a twisted pair with 120-ohm termination resistors, utilizing differential voltage signaling (CAN_H / CAN_L) and non-destructive bitwise arbitration.

View full CAN Bus spec sheet →

Unified Diagnostic Services (UDS, standardized under ISO 14229) is the international application-layer diagnostic communication protocol used across nearly all modern automotive electronic control units (ECUs). Defining standardized diagnostic request/response service IDs (SIDs) for reading Diagnostic Trouble Codes (DTCs), reading real-time live sensor parameters, running actuator self-tests, and cryptographic ECU security access.

View full UDS Protocol spec sheet →

Specification Comparison Table

13 Parameters
Parameter / Spec
Standardization
ISO 11898-2 (High-Speed physical medium) / SAE J2284 ISO 14229-1 (UDS Application Layer) / ISO 14229-2 (Session Management)
Transmission Speed
500 kbps standard for powertrain (Engine, Transmission, ABS, Airbag); 125-250 kbps for body electronics —
Differential Voltage Levels
Recessive state (Logic 1): CAN_H = 2.5V, CAN_L = 2.5V (Diff = 0V) | Dominant state (Logic 0): CAN_H = 3.5V, CAN_L = 1.5V (Diff = 2.0V) —
Bus Termination
Exactly two 120 Ω terminating resistors at opposite physical ends of the bus (total measured resistance between CAN_H & CAN_L = 60.0 Ω) —
Frame Format (CAN 2.0B)
11-bit standard identifier or 29-bit extended identifier with up to 8 data payload bytes —
Bitwise Arbitration
Dominant zero bits overwrite recessive one bits; the lowest numerical CAN ID has the highest priority and never loses arbitration —
Fault Confinement
Hardware error counters automatically transition faulty nodes from Error-Active -> Error-Passive -> Bus-Off isolation —
Diagnostic Session Control (SID 0x10)
— 0x01: Default Session | 0x02: Programming Session (Flashing) | 0x03: Extended Diagnostic Session
Security Access (SID 0x27)
— Challenge-response seed & key cryptographic authentication unlocking protected ECU coding and calibration memory
Read Data By Identifier (SID 0x22)
— Queries 2-byte Data Identifiers (DIDs, e.g. coolant temp, fuel pressure, engine RPM, battery state-of-charge)
Read DTC Information (SID 0x19)
— Reads stored, pending, and permanent 3-byte Diagnostic Trouble Codes with freeze-frame environmental data
Clear Diagnostic Info (SID 0x14)
— Erases stored DTCs, freeze frames, and resets emissions monitor readiness flags
Negative Response Code (NRC 0x7F)
— Standardized error code returned when service is rejected (e.g. 0x33 Security Denied, 0x31 Request Out Of Range)