Data rate is not a single number—real limits are set by the sampling window, loop-delay symmetry, and clock error.
This page turns those terms into measurable budgets and pass/fail criteria for Classic CAN, CAN FD/XL, and FlexRay.
H2-1 · What “Data Rate & Timing” Really Means (Scope + Quick Map)
The only equation that matters
Maximum practical data rate is not set by “Mbps” alone. It is set by the remaining
sample-point window
after subtracting
loop delay
and
clock error
under worst-case harness and temperature corners.
Goal = maintain Window Margin ≥ X (placeholder)
Window Margin = Bit Time − Worst-case(Propagation + Loop + Symmetry + Clock Error)
Common problems vs. timing differences (no protocol deep-dive)
What every in-vehicle bus must satisfy
Budget objects stay consistent: Bit Time, Propagation Delay, Loop Delay, Sample-Point Window, Clock Error, Symmetry Error.
Worst-case wins: harness variants + node loading + temperature corners compress the usable window.
Measurement must match the budget: timing anchors (TxD/Bus/RxD) must be consistent across labs and suppliers.
Vocabulary rules (one budget language across suppliers)
Bit Time is the timing envelope. For CAN FD, treat Nominal and Data phases as two envelopes (two rows in every budget).
Propagation Delay is the one-way time from driver launch to receiver recognition (harness + transceiver internals).
Loop Delay is the end-to-end closed path used by the system (TxD → bus → RxD). It is the term that consumes sampling margin.
Sample-Point Window is not a spec; it is the leftover margin after subtracting worst-case delays and errors.
Symmetry Error is a time skew term (Δt) that shifts effective sampling and must be reserved as a margin consumer.
Budget objects (what goes into which bucket)
Layer A · Timing envelope
Bit Time (and optional Nominal/Data envelopes) is the total budget. Every delay and error term must fit inside it with a defined reserve.
Layer B · One-way propagation
Propagation Delay = harness flight time + transceiver internal propagation. It has spread across voltage/temperature and harness variants and must be budgeted as worst-case.
Layer C · Closed-loop path
Loop Delay aligns the transmitter’s intent with the receiver’s sampling opportunity. For high rates, loop-delay spread is often the first limiter of usable window.
Layer D · Residual window
Sample-Point Window is the residual margin used to tolerate delay drift and measurement uncertainty. Treat it as a deliverable with a pass criterion, not as a guess.
Layer E · Symmetry as a margin consumer
Symmetry Error (Δt) is a skew term (path or edge-dependent) that shifts effective sampling. It must be reserved explicitly; otherwise, “works in lab” timing breaks on real harness distributions.
Figure 2 · Delay Bucket Diagram (TxD → Bus → RxD)
Measurement anchors:
– TxD: digital intent point (ECU output)
– Bus: physical waveform point (harness)
– RxD: digital recognition point (ECU input)
Rule: keep anchor pairs consistent across all “delay” claims.
Engineering output: Budget field dictionary (fill values later)
BitTime (Nominal/Data)
Timing envelope (two envelopes for FD). Budget role: total available.
Tip: keep every later chapter consistent with these fields. If a paragraph cannot reference at least one field, it likely belongs to a sibling page.
H2-3 · Target Data Rates & Practical Ceilings (Rate Ladder)
Engineering targets (numbers are goals, margins are deliverables)
Typical rate targets are used as engineering goals only:
Classic ~1 Mbps,
CAN FD ~2–8 Mbps,
CAN XL ~10 Mbps,
FlexRay 10 Mbps.
A rate is considered “practical” only when a measurable
Window Margin is defined and passes an explicit gate.
Practical ceiling = highest rate that still satisfies:
Window Margin ≥ X (placeholder), across harness variants + temperature corners.
What actually sets the ceiling (timing-only)
Window shrink: higher rates reduce bit time, leaving less room for delay spread and drift.
Asymmetry and skew: symmetry error (Δt) consumes sampling margin and shifts effective sampling.
Error amplification: clock tolerance (ppm) converts into time error inside the bit window and must be reserved.
First three checks as rate increases (priority order)
Window Margin defined with a gate (≥ X placeholder), not a qualitative claim.
Worst-case Loop Delay computed with declared stacking method (max/max or RSS).
Clock Error included (ppm → ns) for temperature corners and supplier spread.
Assumptions that must be declared (placeholders)
Harness length range
Min / Typ / Max length (placeholder), converted into propagation time range.
Node population
Node count range (placeholder) that drives delay spread and correlation risk.
Corner coverage
Temperature/voltage corners (placeholder) used for worst-case delay and clock error.
Without declared assumptions, a “rate target” cannot be validated or compared across platforms.
Figure 3 · Rate Ladder vs. Dominant Constraint
Use the ladder as a planning tool: raise rate only after the dominant budget category has an explicit pass gate.
Implementation note: avoid wide tables on mobile; represent each component row as a consistent “budget card” with Min/Typ/Max and anchor pairs.
H2-5 · Loop-Delay Symmetry (Δt as a Budget Item)
Two common symmetry definitions (timing-only)
Path symmetry (Tx/Rx path)
Compares the effective delay of two paths under the same anchor definition. Any difference shifts the
effective sampling point and consumes window margin.
Edge symmetry (dominant/recessive edges)
Compares edge-timing differences (e.g., two transitions reaching the same threshold at different times).
The resulting Δt behaves like an extra delay spread term.
Why higher data rates amplify asymmetry
Bit time shrinks: a fixed Δt becomes a larger fraction of the bit window.
Sampling window narrows: less margin remains after reserving worst-case propagation, clock error, and jitter.
Effective sampling shifts: asymmetry pushes the “usable” window toward one side, increasing sensitivity to corners.
Budget item:
Δt_sym = | t_A − t_B | (A/B = path or edge definition)
Gate:
PASS if Δt_sym ≤ X (placeholder threshold)
Controllable vs non-controllable (scope guard)
Controllable levers
Transceiver family and operating modes (timing characteristics).
Anchor definition consistency (same threshold and reference points).
Budget allocation: reserve Δt_sym before claiming a rate ceiling.
Non-controllable distributions
Harness variants (length and topology distributions).
Supplier and lot variations (corner spread).
System population changes (node count and add-on delay spread).
Symmetry is handled as a measurable timing budget item. Waveform, EMI, termination networks, and protection parasitics are kept outside this page.
Figure 5 · Symmetry Error Visualization (Δt only)
The figure shows a single idea: a measurable Δt between two crossing times. Keep all thresholds and anchors explicit before using Δt in a window budget.
H2-6 · Sample-Point & Propagation-Segment Windows (Decision Flow)
Window sources (budget items that consume BitTime)
Worst propagation
Reserve time for worst-case delay spread across harness variants and corners.
Loop delay (worst-case)
Derived from the loop-delay budget (components + stacking policy).
Symmetry Δt
Treat asymmetry as a deterministic margin consumer: reserve Δt_sym before selecting the SP range.
Clock error (ppm → time)
Convert tolerance and drift into time error within the bit window, then reserve it explicitly.
Measurement uncertainty
Reserve a small uncertainty bucket (placeholder) to keep cross-lab results consistent.
What matters in a network is the relative tolerance between nodes (Δppm), not a single-node number.
Δppm converts into a time error inside the bit window, and must be reserved before declaring a ceiling.
Wider temperature corners and supplier spread increase the worst-case Δppm and reduce usable margin.
Budget format:
Total ppm = stack(Initial + TempDrift + Aging + Jitter_equiv)
ClockError_time = ppm_to_time(Total ppm) (convert to ns/bit-window)
Gate:
PASS if Window ≥ X after reserving ClockError_time (placeholder)
Worst-case corners and validation (clock isolation)
Corner rule (-40 → 125°C)
Use worst-case drift over the full temperature range, not a single-point reading. Record corners as explicit
budget rows (placeholder: -40 / 25 / 85 / 125°C).
Isolation tests (timing-only)
Temperature sweep with fixed harness and fixed IC configuration.
Swap the clock source/reference while keeping the physical link unchanged.
Check time-correlation: drift/aging trends differ from random burst errors.
Keep validation variable-isolated: identify the clock contribution before attributing margin loss to other budgets.
This checklist turns timing theory into an executable SOP: each gate freezes inputs, measurement anchors, and pass/fail criteria so the same bus timing margin can be reproduced from prototype to production.
Timing-only
Design Gate
Freeze budget objects, corners, and acceptance thresholds before layout and harness bring-up.
BudgetMeasurement PlanCriteria
Budget fields complete: Propagation, LoopDelay, Δtsym, ClockError, WindowMargin (values may stay “X” until measured).
Output of this chapter: a repeatable gate process that keeps timing margin measurable, attributable (Window / Symmetry / Clock / LoopDelay), and stable across lifecycle.
H2-12 · Applications + IC Selection Logic (Timing Only)
This section gives timing-driven application patterns and a selection flow to choose the right bus class and prioritize the timing specs to verify.
It includes example MPNs as non-exhaustive references (always validate grade/package/OEM requirements).
Timing-only
Pattern A · Powertrain / HV Domain (Conservative Timing Margin)
Driving factors (timing-only): many nodes increase relative clock error contribution and tighten effective sampling windows.
Selection intent: keep a simple, repeatable sample-point strategy and verify margin distribution across node count and harness samples.
Example MPNs (references):
Classic HS CAN (≤1 Mbit/s): NXP TJA1042;
CAN FD (≤5 Mbit/s): TI TCAN1042H (device variants differ by supported FD rate), Microchip MCP2562FD;
LIN nodes (≤20 kBd): NXP TJA1021, LIN mini-SBC: NXP TJA1128.
Pattern C · Gateway / Diagnostics Hub (End-to-End Delay Accounting)
Driving factors (timing-only): consistent anchor definitions and repeatable delay distributions matter as much as raw rate.
Selection intent: prioritize transceiver families with well-defined timing specs and measurable symmetry; enforce correlation logging in bring-up.
Example MPNs (references):
CAN FD SIC (≤8 Mbit/s): NXP TJA1462/TJA1463, Infineon TLE9371SJ;
FlexRay (≤10 Mbit/s): NXP TJA1080A;
CAN XL ecosystem example: Bosch NT156 (CAN SIC XL transceiver) used with a CAN XL controller.
Example MPNs by Bus Class (Timing-Focused, Non-Exhaustive)
Classic HS CAN (≤1 Mbit/s): NXP TJA1042.
CAN FD (typ. ≤5 Mbit/s): TI TCAN1042H (variants differ by FD rate), Microchip MCP2562FD, Infineon TLE9255W, NXP TJA1145A.
CAN FD + SIC (≤8 Mbit/s, tighter symmetry): NXP TJA1462/TJA1463, Infineon TLE9371SJ.
FlexRay (≤10 Mbit/s): NXP TJA1080A.
LIN (≤20 kBd): NXP TJA1021; LIN mini-SBC: NXP TJA1128.
CAN XL ecosystem example: Bosch NT156 (CAN SIC XL transceiver) used with a CAN XL controller.
Guardrail: the list above is not a product catalog. Use it as a reference set to learn which timing specs are commonly published/measurable for each bus class, then verify on harness using the gates in H2-11.
Figure 12 · Selection Flow (Timing Only)
Best practice: feed the outputs above directly into H2-11 gates to make the selection measurable and defensible on real harness across corners.
These FAQs close long-tail timing questions without expanding into EMC, protection, or register-level details. Each answer follows a fixed, measurable 4-line structure and uses placeholder thresholds (X/Y) that can be filled with project-specific criteria.
Answer format: Likely cause → Quick check → Fix → Pass criteria (placeholders like X ns, X% BitTime, Y minutes).
Data-structured
Same nominal bitrate, but only long frames fail at high rate—first check window margin or symmetry?
Likely cause: Window margin collapses over long data-phase exposure; symmetry (Δtsym) is the secondary suspect if window looks adequate.
Quick check: Bin errors by payload length/data-phase duration and record a consistent window proxy; then measure Δtsym with the same crossing rule.
Fix: Adjust sample-point range in small steps and re-run the same long-frame pattern; if improvement saturates, investigate Δtsym and loop-delay tails.
Pass criteria: Long-frame case keeps Margin ≥ X% BitTime and Δtsym ≤ X ns across Y minutes at target load.
Works on bench, fails on real harness—first quantify loop delay or clock drift?
Likely cause: Harness increases propagation/loop delay and its distribution (tails), shrinking the usable sampling window; clock drift is secondary unless temperature/time dependence is obvious.
Quick check: Measure loop delay distribution (P50/P99) using the same anchors (TxD→BUS→RxD) on bench cable vs real harness, same rate and same thresholds.
Fix: If loop delay shifts/tails grow, reduce data rate one step or move sample point later within safe bounds; then validate on multiple harness samples.
Pass criteria: Real harness achieves LoopDelay P99 ≤ X ns and Margin ≥ X% BitTime for Y minutes across the declared harness set.
Dropping from 8 Mbps to 5 Mbps fixes errors—what budget term usually dominates first?
Likely cause: The first dominant term is usually Window margin (bit time shrinks) or Δtsym (symmetry sensitivity rises) depending on harness and transceiver family.
Quick check: Compare (8 vs 5) the same window proxy and Δtsym under identical anchors/thresholds; check whether loop delay tails scale into the window at 8 Mbps.
Fix: If window dominates, tune sample point and tighten timing configuration; if symmetry dominates, prioritize a transceiver mode/family with better specified symmetry and re-verify Δtsym.
Pass criteria: At 8 Mbps, meet Margin ≥ X% BitTime and Δtsym ≤ X ns across temperature corners and harness samples.
Only fails at cold start—clock ppm drift or propagation delay shift?
Likely cause: Cold start often exposes clock error during warm-up (ppm vs temperature) before the system reaches steady state; propagation shift is secondary unless harness changes mechanically/thermally.
Quick check: Time-stamp errors from boot and correlate to a clock-error proxy (or measured ppm) over the first Y minutes; repeat at room temp for contrast.
Fix: Freeze a known-stable clock source or tighten warm-up/initial calibration policy; validate with the same traffic pattern during the cold-start window.
Pass criteria: During the cold-start interval, Total clock time error ≤ X ns (or drift ≤ X ppm) and bus errors remain ≤ X per Y minutes.
Two ECUs from different vendors link at 2 Mbps but not 5 Mbps—first compare what timing spec mapping?
Likely cause: Vendor specs are mapped differently (propagation/loop delay vs “typical” numbers), so the combined worst-case exceeds the data-phase window at 5 Mbps.
Quick check: Map both datasheets into the same budget fields: Propagation(max), LoopDelay(max), Δtsym, ClockError with the same corner definitions.
Fix: Align assumptions (corners, max vs typ, measurement anchors); then choose a timing configuration that restores window margin, or select a transceiver pair with compatible delay/symmetry limits.
Pass criteria: Combined budget meets Margin ≥ X% BitTime at 5 Mbps and interop tests show ≤ X errors per Y minutes across corners.
CRC spikes only when bus load increases—timing window shrink or resync stress?
Likely cause: Under heavy load, effective margin can shrink due to tighter recovery/re-synchronization stress; timing issues manifest as window sensitivity rather than “clean edges.”
Quick check: Sweep bus load in steps and log (a) CRC/error counters and (b) the same window proxy/loop-delay distribution at each load level.
Fix: Keep configuration fixed and adjust one variable (sample point or rate step) to see if the CRC-vs-load curve shifts; then freeze the improved setting.
Pass criteria: At the maximum declared load, Margin ≥ X% BitTime and CRC/errors remain ≤ X per Y minutes across harness samples.
Changing sample point helps but doesn’t fully fix—what’s the next timing metric to measure?
Likely cause: Sample-point tuning improved window alignment, but residual failures are driven by loop-delay tails or symmetry error rather than nominal window placement.
Quick check: Measure LoopDelay distribution (P99) and Δtsym using one crossing rule and the same anchor set; compare failing vs passing conditions.
Fix: If P99 dominates, reduce rate or tighten harness/node envelope; if Δtsym dominates, prioritize a more symmetric transceiver family/mode and re-verify.
Pass criteria: Both LoopDelay P99 ≤ X ns and Δtsym ≤ X ns while maintaining Margin ≥ X% BitTime.
One harness variant fails, another passes—first convert length difference into ns budget delta?
Likely cause: The failing harness increases propagation and loop delay enough to consume the remaining sampling window at the chosen rate.
Quick check: Convert Δlength into Δt (ns) using your project’s propagation model, then add it to the loop/propagation budget and compare against available bit-time window.
Fix: Choose a more conservative rate step or sample-point range that restores margin under the worst harness; verify across multiple harness samples.
Pass criteria: Worst harness meets Margin ≥ X% BitTime and LoopDelay P99 ≤ X ns for Y minutes under target load.
Symptom looks random but repeats every X minutes—clock calibration interval or drift accumulation?
Likely cause: Periodic failures usually align with a clock-calibration/synchronization interval or accumulated drift crossing a timing threshold.
Quick check: Overlay error timestamps with calibration/sync events (same time base) and check whether a clock-error proxy ramps and resets every X minutes.
Fix: Change only the calibration interval (or freeze to a known reference) and re-run; if periodicity shifts with the interval, the clock term is dominant.
Pass criteria: Over ≥ Y intervals, clock time error ≤ X ns (or drift ≤ X ppm) and periodic error bursts disappear.
Analyzer shows “OK” edges, but errors persist—what measurement point is usually misleading for timing?
Likely cause: A “good-looking” bus waveform can hide timing issues if the measurement anchor/crossing definition differs from where the receiver actually timestamps the bit.
Quick check: Re-measure using a consistent anchor set: compare TxD and RxD timing (not only BUS) with a single crossing rule and fixed trigger conditions.
Fix: Freeze the measurement anchor + threshold definition in the bring-up checklist; recompute LoopDelay/Δtsym using only the frozen definition.
Pass criteria: With frozen anchors, LoopDelay P99 ≤ X ns and correlation holds: timing margin improves as errors drop (same time window).
FD nominal phase stable, data phase unstable—first compare which delay components?
Likely cause: Data phase has shorter bit time, so the same propagation/loop delays consume a larger fraction of the window; symmetry also becomes more critical.
Quick check: Compare nominal vs data-phase budgets: LoopDelay (max/percentile), Δtsym, and window proxy under the same anchors and thresholds.
Fix: Tune data-phase sample point/rate step while holding nominal phase fixed; then validate the data-phase margin on real harness across corners.
Pass criteria: Data phase maintains Margin ≥ X% BitTime with LoopDelay P99 ≤ X ns and Δtsym ≤ X ns.
Likely cause: Intermittent errors at the top rate are typically driven by clock tolerance over corners or an asymmetry term that erodes the remaining window.
Quick check: Do a two-metric triage: (1) convert clock tolerance (ppm) into time error over the relevant interval, and (2) measure Δtsym with a single crossing rule.
Fix: If clock dominates, lock a tighter clock strategy and re-test; if Δtsym dominates, tighten path symmetry assumptions and re-validate on harness.
Pass criteria: Across corners, clock time error ≤ X ns and Δtsym ≤ X ns with intermittent errors ≤ X per Y minutes.