ISO-TP Frame Type PCI Byte Layout
Single Frame (SF): PCI[7:4]=0, PCI[3:0]=DL (data length 1-7)
┌──────┬────────────────────────────────────────────────┐
│ PCI │ Data (1-7 bytes) │
└──────┴────────────────────────────────────────────────┘
First Frame (FF): PCI[7:4]=1, PCI[3:0]+Byte1 = DL (8-4095)
┌──────┬──────┬────────────────────────────────────────┐
│ PCI │ DL │ Data (6 bytes) │
└──────┴──────┴────────────────────────────────────────┘
Consecutive Frame (CF): PCI[7:4]=2, PCI[3:0]=SN (0-15, wraps)
┌──────┬────────────────────────────────────────────────┐
│ PCI │ Data (7 bytes) │
└──────┴────────────────────────────────────────────────┘
Flow Control (FC): PCI[7:4]=3, PCI[3:0]=FS (0=CTS,1=Wait,2=Overflow)
┌──────┬──────┬────────────────────────────────────────┐
│ PCI │ BS │ STmin │
└──────┴──────┴────────────────────────────────────────┘
| Frame Type | PCI Nibble | Max Data | Used For |
|---|
| Single Frame (SF) | 0x0N | 7 bytes (CAN 2.0) | Short UDS requests/responses (ReadByIdentifier) |
| First Frame (FF) | 0x1N | 4095 bytes | First segment of multi-frame message |
| Consecutive Frame (CF) | 0x2N | 7 bytes per CF | Subsequent segments (SN 1–15, then wraps to 0) |
| Flow Control (FC) | 0x3N | — | Receiver controls sender rate: CTS / Wait / Overflow |