Byte-Level Reference

Automotive protocols — request & response, byte by byte

A single-page engineering reference for CAN, CAN-FD, LIN, FlexRay, Automotive Ethernet, TCP/IP, MOST and SAE J1939. Field-by-field tables, example hex frames and UDS examples ready for CANoe / CAPL / Python (Scapy) / DoIP stacks.

CAN (Classical)

ISO 11898-1 / -2

Differential 2-wire bus, max 1 Mbit/s, 0–8 byte payload. Broadcast — request/response is implemented by higher protocols (UDS, J1939).

Frame format
[SOF:1b][ID:11b][RTR:1b][IDE:1b][r0:1b][DLC:4b][Data:0–8B][CRC:15b][CRC-Del:1b][ACK:1b][ACK-Del:1b][EOF:7b][IFS:3b]
Request structure
OffFieldSizeValueDescription
0SOF1 bit0Start of frame (dominant).
1ID (Std)11 bits0x7E0Arbitration ID, lower = higher priority.
12RTR1 bit00 = data, 1 = remote.
13IDE1 bit00 = standard, 1 = extended (29-bit ID).
14r01 bit0Reserved.
15DLC4 bits0x8Data length 0–8.
19Data0–8 B02 22 F1 90 CC CC CC CCApplication payload.
CRC15 bitsautoCRC over SOF…Data.
ACK Slot1 bit0Recessive by sender, dominant by receivers.
EOF7 bits1111111End of frame (recessive).
Response structure
OffFieldSizeValueDescription
1ID (Std)11 bits0x7E8Reply ID per app protocol (e.g. UDS 0x7E8).
15DLC4 bits0x8Data length.
19Data0–8 B06 62 F1 90 57 30 4C 00Reply payload.
Example request frames
UDS RDBI VIN — request
07E00222F190CCCCCCCC

ID=0x7E0, DLC=8, ISO-TP SF len=2, SID=0x22, DID=0xF190

Example response frames
UDS RDBI VIN — positive (FF)
07E8101462F19057304C

ID=0x7E8, ISO-TP First-Frame, total len=20, SID=0x62, DID=0xF190, VIN start 'W0L'

UDS example — ReadDataByIdentifier (0x22)
RDBI 0x22 (VIN)
0222F190

PCI=02, SID=22, DID=F190

Positive 0x62
1462F19057304C303030313233343536373839

FF len=0x14, VIN 'W0L00012345 6789'

Negative 0x7F 22 31
037F2231

NRC 0x31 = requestOutOfRange

  • Standard frame = 11-bit ID, extended = 29-bit ID (IDE=1).
  • ISO-TP (ISO 15765-2) splits >7 byte UDS payloads into SF / FF / CF / FC frames.
  • Functional broadcast for OBD-II = 0x7DF, ECU replies 0x7E8…0x7EF.

CAN-FD

ISO 11898-1:2015

Same arbitration as CAN; data phase up to ~5 Mbit/s, payload up to 64 bytes, CRC 17/21-bit.

Frame format
[SOF][ID:11/29b][FDF:1b][res][BRS:1b][ESI:1b][DLC:4b][Data:0–64B][CRC:17/21b][CRC-Del][ACK][EOF]
Request structure
OffFieldSizeValueDescription
1ID11/29 bits0x18DA F1 01Arbitration ID.
FDF1 bit11 = CAN-FD frame.
BRS1 bit11 = switch to fast bit rate during data phase.
ESI1 bit0Error state indicator (0=active, 1=passive).
DLC4 bits0xF (=64)0..8 = bytes; 9..15 ⇒ 12,16,20,24,32,48,64.
Data0–64 B10 14 62 F1 90 57 30 4C 30 30 …Payload.
Stuff cnt4 bitsautoRequired for 17/21-bit CRC.
CRC17 / 21 bauto17 b for ≤16 B payload, 21 b for >16 B.
Response structure
OffFieldSizeValueDescription
1ID11/29 bits0x18DA 01 F1Reply ID (e.g. 0x18DAF101 → 0x18DA01F1).
DLC4 bits0xA (=24)Encoded payload size.
Data0–64 B62 F1 90 …Reply payload.
Example request frames
UDS RDBI VIN over CAN-FD (29-bit)
18DAF101|0222F190

Phys addr tester→ECU, SF UDS 22 F1 90

Example response frames
Positive RDBI VIN
18DA01F1|1462F19057304C303030313233343536373839

Single 24-byte CAN-FD frame, no segmentation needed.

LIN

ISO 17987 (LIN 2.x)

Single-wire master/slave bus, ≤19.2 kbit/s, deterministic schedule table. One master, ≤15 slaves.

Frame format
[Break ≥13b][Sync 0x55][PID 1B] | [Data 1–8B][Checksum 1B]
Request structure
OffFieldSizeValueDescription
Break≥13 bit0x00Dominant break to start frame.
0Sync1 B0x55Fixed 0x55, used by slaves for clock recovery.
1PID1 B0xC1 (ID=0x01)6-bit ID + 2-bit parity.
Response structure
OffFieldSizeValueDescription
0..N-1Data1–8 B12 34 56 78Slave-supplied data (length set by frame ID).
NChecksum1 B0x77Classic = sum of data; Enhanced = sum(PID+data).
Example request frames
Header for ID 0x01
0055C1

Break, Sync, PID(0x01)+parity

Example response frames
Slave reply 4 B + cs
1234567877

Data 12 34 56 78, classic CS 0x77

  • Wakeup = ≥250 µs dominant pulse, sleep command = master sends ID 0x3C with data 0x00 first byte.

FlexRay

ISO 17458 / ISO 10681

Time-triggered + event-triggered, dual-channel, 10 Mbit/s per channel. Static + dynamic segment per cycle.

Frame format
[Header 5B][Payload 0–254B][Trailer CRC 3B]
Request structure
OffFieldSizeValueDescription
0Status bits5 bits0b00010Reserved, payload preamble, null, sync, startup.
0Frame ID11 bits0x005Slot identifier (1..2047).
1Payload length7 bits0x08 (16 B)Words (16-bit) of payload, 0..127.
2Header CRC11 bitsautoCRC over Frame ID + length + sync/startup.
3Cycle count6 bits0x0C0..63 communication cycle.
5Payload0–254 BAA BB CC DD …Application data, big-endian.
tailFrame CRC24 bitsautoCRC over header + payload.
Response structure
OffFieldSizeValueDescription
0–4Header5 BFrameID=0x006Different scheduled slot for the reply.
5…Payloadvar01 OK …Reply payload (deterministic timing per cycle).
tailCRC3 BautoTrailer CRC.
Example request frames
Slot 5, 8 B payload
02808Axx0CAABBCCDDEEFF0011yyyyyy
Example response frames
Slot 6, 8 B reply
02808Cxx0C0102030405060708yyyyyy
  • No on-demand request — static slots scheduled in the FIBEX/AUTOSAR schedule.

Automotive Ethernet (SOME/IP + DoIP)

IEEE 802.3bw / 802.3bp + ISO 13400 + AUTOSAR SOME/IP

100/1000BASE-T1 single-pair Ethernet. Diagnostics on TCP/UDP 13400 (DoIP); service-oriented comm via SOME/IP on UDP 30490.

Frame format
[Preamble 7B][SFD 1B][DstMAC 6B][SrcMAC 6B][802.1Q? 4B][EtherType 2B][IPv4 20B][TCP 20B / UDP 8B][SOME/IP 16B + payload | DoIP 8B + payload][FCS 4B]
Request structure
OffFieldSizeValueDescription
0–6Preamble7 B55 55 55 55 55 55 550x55 × 7 sync.
7SFD1 B0xD5Start-of-frame.
8–13DstMAC6 B00 11 22 33 44 55ECU MAC.
14–19SrcMAC6 BAA BB CC DD EE FFTester MAC.
20–21EtherType2 B08 000x0800 IPv4.
22–41IPv4 header20 BProto=6 (TCP)Src/Dst IP, Proto=6/17.
42–61TCP header20 BDstPort=0x3458DstPort=13400 for DoIP TCP_DATA.
62–69DoIP header8 B02 FD 80 01 00 00 00 07Ver|~Ver|PayloadType|Length.
70–71Source addr2 B0E 80Tester logical address.
72–73Target addr2 B10 01ECU logical address.
74…UDS payloadvar22 F1 90ISO 14229 bytes.
Response structure
OffFieldSizeValueDescription
62–69DoIP header8 B02 FD 80 01 00 00 00 17Same Ver, PayloadType=0x8001 (DiagMsg) or 0x8002 (Ack).
70–71Source2 B10 01ECU.
72–73Target2 B0E 80Tester.
74…UDS replyvar62 F1 90 57 30 4C …0x62 + DID + data.
Example request frames
DoIP RDBI VIN — request
02FD8001000000070E80100122F190

PayloadType 0x8001, len=7, src=0x0E80, tgt=0x1001, UDS 22 F1 90

Example response frames
DoIP RDBI VIN — positive
02FD80010000001710010E8062F19057304C303030313233343536373839

PayloadType 0x8001, src=0x1001 (ECU), tgt=0x0E80 (tester), 0x62 + DID + 17-byte VIN

UDS example — ReadDataByIdentifier (0x22)
RDBI VIN
22F190
Positive 0x62
62F19057304C303030313233343536373839
Negative
7F2213

NRC 0x13 = incorrectMessageLengthOrInvalidFormat

  • DoIP discovery (UDP 13400): Vehicle Identification Request 0x0001, Announcement 0x0004.
  • Routing Activation (TCP) = 0x0005 / 0x0006 BEFORE diagnostic messages.

Ethernet + TCP/IP

IEEE 802.3 + RFC 791 / RFC 793

Layer-2 Ethernet II frames carrying IPv4 + TCP/UDP for any application protocol (HTTP, SOME/IP, DoIP, MQTT).

Frame format
[Eth 14B][IPv4 20B][TCP 20B | UDP 8B][App payload]
Request structure
OffFieldSizeValueDescription
0–13Ethernet hdr14 B… 08 00DstMAC + SrcMAC + EtherType.
14IP Ver+IHL1 B0x450x45 = IPv4 + 5×4=20 B header.
15DSCP/ECN1 B0x00QoS / congestion bits.
16–17Total Length2 B0x002CIP header + payload bytes.
18–19Identification2 B0x1C46Used for fragmentation.
20–21Flags+FragOff2 B0x4000DF/MF + 13-bit offset.
22TTL1 B0x40Time-to-live.
23Protocol1 B0x066 = TCP, 17 = UDP, 1 = ICMP.
24–25Header CSum2 Bauto1's complement IP header checksum.
26–29Src IP4 BC0 A8 01 0AIPv4 source.
30–33Dst IP4 BC0 A8 01 14IPv4 destination.
34–35Src Port2 B0xC000 (49152)TCP/UDP source port.
36–37Dst Port2 B0x3458 (13400)TCP/UDP dest port.
38–41Seq #4 B0x00000001TCP only — sequence number.
42–45Ack #4 B0x00000000TCP only — acknowledgement.
46Data Off+Flags2 B0x5018Header length (4b) + flags (SYN/ACK).
48–49Window2 B0xFAF0TCP receive window.
50–51Checksum2 BautoTCP/UDP checksum (incl. pseudo-hdr).
54…App payloadvar02 FD 80 01 …DoIP / SOME/IP / HTTP …
Response structure
OffFieldSizeValueDescription
26–29Src IP4 BC0 A8 01 14Server IP (swapped).
30–33Dst IP4 BC0 A8 01 0AClient IP (swapped).
34–35Src Port2 B0x3458Server port (e.g. 13400).
36–37Dst Port2 B0xC000Client ephemeral.
46Flags2 B0x5012TCP SYN-ACK / ACK / PSH-ACK.
54…App replyvar02 FD 80 01 00 00 00 17 …Application response bytes.
Example request frames
TCP SYN to DoIP server (ports only)
C000345800000001000000005002FAF000000000

SrcPort 49152, DstPort 13400, SYN, win=64240

Example response frames
TCP SYN-ACK
3458C00000000064000000025012FAF000000000

SrcPort 13400, DstPort 49152, SYN+ACK, ack=2

MOST

ISO 21806 (MOST25/50/150)

Optical/electrical ring for infotainment. Frame divides into Sync (audio/video), Async (packet), Control (function blocks).

Frame format
[Preamble 1B][Boundary 1B][Sync data ≤60B][Async data ≤127B][Control 4B]
Request structure
OffFieldSizeValueDescription
0Preamble1 B0x00Frame sync byte.
1Boundary1 B0x40Sync/Async area boundary descriptor.
2Sync area≤60 BIsochronous PCM/video samples.
62Async area≤127 BFBlockID=0x22 InstID=0x01 FktID=0x100 OpType=0x02 DataPacket-switched data (FBlock SetGet).
tailControl4 B01 22 01 00 02DeviceID + FBlockID + FktID + OpType.
Response structure
OffFieldSizeValueDescription
tailControl4 B01 22 01 00 0CACK / Status with same FktID, OpType=Status (0x0C).
62Async areavarOptional status block reply.
Example request frames
Set volume (Audio FBlock 0x22, Fkt 0x100, Set=0x02)
01220101000250

Set value 0x50

Example response frames
Status reply
01220101000C50

Status confirms 0x50

SAE J1939

SAE J1939 (over 29-bit CAN)

Heavy-duty vehicle protocol over 29-bit CAN. Identifier carries Priority + PGN + Source Address; payload is fixed by the PGN/SPN catalogue.

Frame format
29-bit CAN ID = [Priority:3b][R:1b][DP:1b][PF:8b][PS:8b][SA:8b] + [Data:0–8B]
Request structure
OffFieldSizeValueDescription
0Priority3 bits0b1100=highest..7=lowest, normally 6.
Reserved1 bit0Reserved (0).
DP1 bit0Data page selector.
PF8 bits0xEA (Request PGN 59904)<240 PDU1 (peer-to-peer); ≥240 PDU2 (broadcast).
PS8 bits0x00 (engine)PF<240 → destination addr, ≥240 → group ext.
SA8 bits0xF9 (offboard tester)Source address.
0–2Requested PGN3 B00 EE 00 (Address Claim)Little-endian PGN to be requested.
3–7Reserved (FF)5 BFF FF FF FF FFPad with 0xFF.
Response structure
OffFieldSizeValueDescription
Priority3 bits0b110Same priority.
PF8 bits0xEE0xEE = Address Claim PGN 60928.
PS8 bits0xFF0xFF = global broadcast.
SA8 bits0x00Replying ECU.
0–7Data (NAME)8 B00 00 40 7D 00 00 00 0064-bit NAME (Identity, Mfr code, ECU instance, ...).
Example request frames
Request Address Claim
ID=18EA00F9|00EE00FFFFFFFFFF

Tester 0xF9 → engine 0x00, request PGN 0x00EE00

Example response frames
Address Claim response
ID=18EEFF00|0000407D00000000

Engine 0x00 broadcasts NAME

  • Multi-packet >8 B payloads use Transport Protocol: TP.CM (PGN 60416) + TP.DT (PGN 60160).
  • DM1 (active DTCs) = PGN 65226 / 0xFECA.

Cross-protocol comparison

Quick reference — payload size, speed, latency and determinism class for every bus on this page.

ProtocolPayloadSpeedLatencyDeterminismTopologyTypical use
CAN0–8 B≤ 1 Mbit/s100 µs–1 msPriority arbitrationMulti-drop busPowertrain, body, UDS
CAN-FD0–64 B≤ 5 Mbit/s<200 µsSame arbitration as CANMulti-drop busReflash, large UDS
LIN1–8 B≤ 19.2 kbit/s5–50 msMaster schedule tableSingle master/multi-slaveSwitches, mirrors, seats
FlexRay0–254 B10 Mbit/s × 2Cycle-bound (≤5 ms)Time-triggered TDMADual channel star/busX-by-wire, chassis
Automotive Ethernet≤ 1500 B (jumbo 9 kB)100 Mbit/s – 10 Gbit/s<100 µs (TSN)TSN / AVB or best-effortSwitched starADAS, infotainment, DoIP
TCP/IP (any media)≤ 1460 B / segmentMedia-dependentVariableBest-effortRoutedDoIP, OTA, telemetry
MOST≤ 60 B sync + ≤127 B async25/50/150 Mbit/sFrame-aligned (≈22 µs)Synchronous ringOptical ringLegacy infotainment audio/video
J19390–8 B (TP up to 1785 B)250 / 500 kbit/s1–10 msPriority + PGN scheduleMulti-drop busTrucks, off-highway, agriculture
Need an interactive simulator? Try the UDS / DoIP / OBD-II / KWP2000 playground or open a protocol page for full background.