# 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)