FlexRay
FlexRay is a deterministic, fault-tolerant 10 Mbit/s bus for chassis and x-by-wire. Learn time-triggered communication, communication cycles with static (TDMA) and dynamic segments, dual channels for redundancy, clock synchronisation, slot calculation and why Ethernet is replacing it.
Active suspension, brake-by-wire and steer-by-wire need messages delivered at exact times with redundancy. FlexRay, developed by BMW, Daimler and others in the 2000s, provides a global time base and fixed transmission slots on two channels.
It's used in premium chassis systems, though automotive Ethernet with TSN is now taking over new designs.
An analogy
FlexRay is like a train timetable: each ECU has reserved seats (static slots) at exact times every cycle, plus some unreserved seats (dynamic segment) for occasional travellers.
Why FlexRay?
CAN's event-driven arbitration makes latency depend on load. FlexRay's time-triggered static segment guarantees each message's timing, and 10 Mbit/s on each of two channels gives bandwidth and redundancy.
Communication cycle
Each cycle has a static segment (TDMA — fixed slots assigned to nodes), an optional dynamic segment (mini-slots, priority-based), a symbol window and network idle time used for clock correction. Up to 254 bytes payload per frame.
Synchronisation and redundancy
Nodes synchronise clocks using sync frames from designated nodes, correcting offset and rate every cycle. Dual channels (A and B) can carry the same data redundantly or different data to double bandwidth; bus guardians protect against babbling nodes.
Design complexity and successors
FlexRay requires careful system-wide configuration (cycle, slot, timing parameters) — changes are hard. Automotive Ethernet with Time-Sensitive Networking (IEEE 802.1Qbv etc.) now offers deterministic, higher-bandwidth communication and is replacing FlexRay in new architectures.
Formulas
- Static slots:
n_slots = T_static / T_slot - Cycle:
T_cycle = T_static + T_dynamic + T_symbol + T_NIT - Payload rate per slot:
rate = payload bytes × 8 / T_cycle
Worked example: Static slot count
Given: 5 ms cycle with 3 ms static segment; Slot length 50 µs
Find: Number of static slots.
- n = 3 ms/50 µs = 60 slots
Answer: 60 guaranteed slots per cycle per channel
Worked example: Data rate of one slot
Given: 32-byte payload per slot, 5 ms cycle
Find: Throughput.
- 32 × 8/0.005 = 51.2 kbit/s per slot
Answer: 51.2 kbit/s with fixed 5 ms latency
Common mistakes
- Wrong: Assuming FlexRay is 'just faster CAN'. — Right: It's time-triggered with global configuration — design is system-wide.
- Wrong: Filling every static slot at design time. — Right: Reserve slots for future functions; reconfiguration is costly.
Applications
- Chassis control: Adaptive dampers, active roll stabilisation, integrated chassis.
- Powertrain coordination: High-end engine/transmission/hybrid coordination.
- x-by-wire prototypes: Deterministic redundant communication for steering/brakes.
Key takeaways
- Time-triggered, deterministic, 10 Mbit/s × 2 channels.
- Cycle = static + dynamic + symbol + NIT.
- n_slots = T_static/T_slot.
- Being succeeded by Ethernet TSN.
Going further
- Cycle multiplexing: Slots can carry different frames on alternate cycles to use bandwidth efficiently.
- Bus guardian: Hardware blocks nodes from transmitting outside their slots.
- Fault-tolerant midpoint: Clock-sync algorithm robust against faulty nodes.