Flexray Slots
“The FlexRay Communications System is a robust, scalable, deterministic, and fault-tolerant digital serial bus system designed for use in automotive applications.” (www.flexray.com)
Message transmission is followed by the channel idle delimiter, which consists of eleven bits — as in the static slot. It should be noted that per FlexRay specification a dynamic message must end precisely with the next possible action point. Of FlexRay messages given timing characteristic (periodicity, jitters, deadlines) of the messages and the mapping of the mes-sages onto the different FlexRay slots along with the message priorities. The authors of 6 provide an analysis of Flexible FTDMA (FTDMA) that finds the maximum frame identifier for messages so that the delays are reduced. The interface to FlexRay memory, which stores the message buffer header, payload, and status, is AMBA 2 AHB and can be adapted to other system memory interfaces upon request. A rich ecosystem, including support from leading FlexRay software providers and a starter kit available for evaluation and prototyping, enables rapid software development.
In the following article you’ll find a possible solution for managing the communication between several nodes in a vehicle, using FlexRay. This solution has been provided for the System Architecture and Engineering course held at the Technikum Wien University of Applied Sciences.
Let’s start with a short description of our available hardware. The picture below shows an illustration of the system.
There are five nodes in our system, running parallel and communicating with each other using FlexRay frames. Our job is to design the FlexRay cluster, and build error handling scenarios.System specification:
- Pedal node: each of the pedal nodes has to send the current pedal position to the calculation node.
- Calculation node: it has to calculate the motor speed that is to be set from the read in pedal positions. It is a must-have that both pedals have an impact on the motor speed.
- Motor node: this node reads in the motor speed from the calculation node and controls the motor.
- Control node: this node has to monitor the other four nodes and has to send a warning message to all nodes if one or more nodes are not functional. The warning message has to be handled on each node.
- Specifying the FlexRay configuration: e.g. length of one communication cycle, number of slots in one cycle.
- Specifying the FlexRay frames: e.g. data messages that the nodes exchange, synchronization frames
- Specifying application tasks: e.g. estimate WCET for every task, define offsets
FlexRay configuration
Number of FlexRay channels: 1.
In safety critical systems usually both FlexRay channels are used, as redundant channels. In this example, I’ve decided to only “use” one channel, for more simplitciy.
Cycle length: 5000 us
Number of static slots: 21
Static slot length: 200 us
Payload length of static slots: 4 byte
Dynamic segment – Minislot length: 6 us (the dynamic segment in this example is not used)
Network Idle Time: 200 us
FlexRay frames
On the following figure you can find the used FlexRay frames, together with slot numbers, frame producer node and frame consumer nodes.
Application Tasks
“A simple dispatcher runs on every node which provides an environment for the application. This dispatcher is synchronized with the FlexRay cycle and starts the different tasks at their pre-defined time. It cannot stop a task on its own so the developer has to assure that each task can finish its process before the next task should be started.” (DI Andreas Puhm)
Below you can find the WCET (worst-case execution time) estimation, which helps in the decision for different activation times of the tasks on one node and should prevent the case that one task misses its activation time because the previous task is still running (this has to be avoided at all costs).
Each node needs one SystemTask (WCET 500 us) and one or more application tasks.
The WCET for each task has been calculated using following algorithm: 100 us is needed to read or write one FlexRay slot. So the total time needed for one task is: (Nr. of frames) * 100 us + 100 us margin.
In this configuration, there is no separate task for sending the synchronization frames, so in our case Nr. of frames = Nr. of Data Frames + 1 SyncFrame. (If both FlexRay channels are used, the WCET time should be calculated with the formula: 2*Nr. of Frames + Margin)
In order to set the offsets for each task, it is easier to create a timeline first. After the timeline is created, the offset values can be easily read from the graphic.
Handling errors
Conclusions – Lessons learned
- design your system so that your well written, tested applications task could be used in as many cases as possible (reuse)
- an application task must be always scheduled to start only after all messages needed by the task are available
- avoid one servant – multiple masters configuration between application tasks. Slave tasks will not work as intended if they receive commands from multiple master processes
Note: the FlexRay cluster design provided in this article is not an optimized version!
The FlexRay protocol is a unique time-triggered protocol that provides options for deterministic data that arrives in a predictable time frame.FlexRay is a serial communication technology that is used in particular for data communication in very safety-critical use areas in the automobile.
Flexray Slot Id
Differential signaling on each pair of wires reduces the effects of external noise on the network without expensive shielding. FlexRay nodes typically also have power and ground wires available to power transceivers and microprocessors. FlexRay manages multiple nodes with a Time Division Multiple Access scheme. Every FlexRay node is synchronized to the same clock, and each nodes waits for its turn to write on the bus. Because the timing is consistent in a TDMA scheme, FlexRay is able to guarantee determinism or the consistency of data deliver to nodes on the network. This provides many advantages for systems that depend on up-to-date data between nodes.
Flexray Slot
- Static Segment
Reserved slots for deterministic data that arrives at a fixed period. - Dynamic Segment
The dynamic segment behaves in a fashion similar to CAN and is used for a wider variety of event-based data that does not require determinism.
Disadvantages of Flexray:
The bus has certain disadvantages like lower operating voltage levels and asymmetry of the edges, which leads to problems in extending the network length.
Ethernet may replace FlexRay for bandwidth intensive, non-safety critical applications.