Skip to content

CAN FD

This page teaches how CAN FD keeps CAN arbitration while changing payload length and data-phase timing evidence.

Status Examples Runtime example Source posture
final-copy synthetic/passive available standards metadata plus public/tooling cross-checks

A Concrete Artifact

# synthetic passive CAN FD frame
0x18daf110  [extended fd brs dlc=9]  10 0a 62 f1 90 12 34 56 78 9a bc de

Synthetic

Synthetic offline sample for explanation; not a real operational trace or live-system instruction.

Inspection Trap

A CAN FD frame can look like "just a bigger CAN frame." That is only partly true. The identifier still participates in CAN arbitration, but the FD flag, bit-rate switch flag, error-state indicator, and DLC coding add evidence that a Classical CAN decoder can misread or flatten.

The safer claim is frame-level: a passive observer can describe the identifier, FD metadata, DLC-derived payload length, payload bytes, and timing shape. Signal names, diagnostic service meaning, and application truth still require a DBC, diagnostic definition, profile, or other semantic authority.

Worked Decode

  1. 0x18daf110 is shown as an extended 29-bit identifier in this teaching artifact.
  2. The fd marker says the frame is CAN FD, not Classical CAN.
  3. The brs marker says the captured metadata indicates a bit-rate switch into the data phase.
  4. DLC code 9 maps to 12 payload bytes in the CAN FD DLC table; it is not a literal byte count above eight.
  5. The payload begins 10 0a 62 f1 90 ..., which looks diagnostic-shaped in this toy example, but CAN FD itself does not define that application meaning.
  6. The frame metadata supports an observer claim about CAN FD use and payload length. It does not prove which node originated the frame, whether a receiver used it, or what machine state the bytes represent.

What The Evidence Supports

The artifact supports a frame-level claim: the observer saw an extended CAN FD data frame with bit-rate switch metadata, DLC code 9, and twelve payload bytes. It also supports a bus-load and tooling question: a Classical CAN-only pipeline may truncate, reject, or mislabel this evidence.

The frame can also support a handoff into a higher-layer page. If the surrounding capture shows ISO-TP or UDS context, the payload bytes may become transport or diagnostic evidence there. That authority is not created by the CAN FD frame.

What The Evidence Does Not Support

The artifact does not prove signal meaning, diagnostic success, ECU identity, physical state, freshness beyond the observed timestamp, or application consumption. Bit-rate switch metadata is timing evidence, not permission to interact with a bus.

The payload length being larger than Classical CAN does not make a DBC, DID catalog, or vendor profile optional. Larger opaque bytes are still opaque bytes.

Field Layout / Anatomy

Element Shape Inspection meaning
ID 11 or 29 bits Arbitration identity and priority evidence.
FDF/EDL flag Distinguishes CAN FD behavior from Classical CAN frame shape.
BRS flag Indicates that the data phase may use a different bit rate.
ESI flag Captured error-state indication, not an application condition.
DLC encoded length Maps to payload sizes up to 64 bytes.
Payload 0 to 64 bytes Application bytes whose meaning is external.
CRC variant depends on payload length Frame integrity evidence, not application truth.

Visual Model

flowchart LR arb["arbitration phase<br/>CAN-style priority"] --> fd["FD control<br/>FDF / BRS / ESI"] fd --> data["data phase<br/>larger payload"] data --> crc["CRC variant"] crc --> observer["observer evidence"]
packet +1: "S" +29: "ID 0x18daf110" +8: "FD control / DLC 9" +96: "Data 10 0a 62 f1 90 12 34 56 78 9a bc de" +21: "CRC" +3: "ACK / EOF"

Timing And Authority

CAN FD separates arbitration-phase evidence from data-phase evidence. Arbitration still decides which frame wins the bus; bit-rate switching changes how long the payload occupies the bus. A bus-load calculation that ignores BRS can overstate or understate observed occupancy.

Semantic authority

CAN FD frame metadata is not semantic authority. Payload meaning comes from a DBC, transport/application protocol, vendor profile, or documented integration source.

Failure And Ambiguity

  • Classical CAN tooling can truncate or mislabel CAN FD frames.
  • Treating DLC as a byte count above eight gives the wrong payload length.
  • Ignoring BRS changes bus-load and timing interpretations.
  • A larger payload can hide transport/application boundaries that still need their own authority.
  • A valid frame-level CRC does not prove freshness, physical truth, or application consumption.

Python Model

The current package exposes a concrete CAN FD frame model for passive inspection:

"""Runnable CAN FD inspection example for the schoolbus binder."""

from schoolbus.protocols.can import CanFdFrame

frame = CanFdFrame(
    identifier=0x18DAF110,
    data=bytes.fromhex("10 0a 62 f1 90 12 34 56 78 9a bc de"),
    extended=True,
    bit_rate_switch=True,
)

print(frame.show_fields())
print(frame.explain())

The model exposes identifier width, DLC mapping, payload length, BRS/ESI metadata, and payload bytes. It does not assign signal meaning or provide bus I/O.

Simplification

The payload is synthetic. The page omits exact bit stuffing, precise inter-frame spacing, transceiver design, termination, oscillator tolerance, CRC-polynomial detail, and conformance timing.

Source Notes

Teaching claim Source role Limit
CAN FD preserves CAN arbitration while changing data phase. canonical metadata Not a reproduced timing or conformance table.
DLC values above eight require CAN FD length mapping. official public specification The page uses only high-level public teaching structure.
Public CAN tutorials can cross-check frame-shape prose. public explainer Not normative authority for edge cases.
The 0x18daf110 artifact and payload are synthetic. synthetic teaching artifact Not operational capture evidence or diagnostic truth.
Tooling may expose or hide CAN FD metadata differently. tooling reference Not a claim that every tool preserves the same metadata fields.
Field Value
Governance tier Tier 1 Core Lab
Canonical source status yes
Public explainer status yes
Open-source tool status yes
Sample-data status none listed; use synthetic teaching artifacts
Confidence high
Citation specificity document-metadata-level

References

Public Sources

Project posture is aggregated in the protocol support policy, source policy, and project charter.