This chapter describes the Layered Standard Bus Protocol for FlexRay.
This specification refers primary to the data link layer specification of FlexRay communications systems defined by ISO 17458-2:2013(en). Furthermore, essential elements from previous FlexRay specifications are covered so that they can also be realized using this layered standard.
To simulate FlexRay communication between Networked FMUs, FlexRay-specific operations are specified based on the Layered Standard Bus Protocol. Overall, the following operations and groups of operations exists:
-
Transmit, Cancel and Confirm: These operations are used to simulate a FlexRay frame transmission.
-
Bus- and Format Error: This group of operations is used for protocol format errors and to simulate bus failures.
-
Configuration: This operation enables the controller to publish bus-specific parameters and options that are required to simulate the bus behavior properly. For example, it allows the specification of a macrotick duration or the length of static/dynamic slots.
-
Start Communication: This operation is used by Networked FMUs or Bus Simulations to start the FlexRay communication.
-
Symbol: Represents a set of operations that are used for transmission of FlexRay-specific symbols, like for wake-up, startup or media testing.
The following table gives a detailed overview of the available operations. It shows all operations and the arguments they contain.
Operation Name |
Operation Content |
|||||||||
---|---|---|---|---|---|---|---|---|---|---|
OP Code |
Length |
Specific Content |
||||||||
Format Error |
0x01 |
:= 10 + n |
DL |
Data |
||||||
Transmit |
0x10 |
:= 17 + DL |
Cycle ID |
Slot ID |
Channel |
… |
DL |
Data |
||
Cancel |
0x11 |
:= 12 |
Cycle ID |
Slot ID |
Channel |
|||||
Confirm |
0x12 |
:= 12 |
Cycle ID |
Slot ID |
Channel |
|||||
Bus Error |
0x20 |
:= 13 |
Error Flags |
Cycle ID |
Segment Indicator |
Channel |
||||
Configuration |
0x30 |
<Length> |
Kind |
Dynamic Part |
||||||
Start Communication |
0x40 |
:= 16 |
Start Time |
|||||||
Symbol |
0x50 |
:= 11 |
Cycle ID |
Channel |
Type |
The following basic types are defined for the FlexRay section and are used within the operation definitions as operation arguments.
This section defines the specified operations for FlexRay. The following tables provide an overview of all operations and specify the position and length of the corresponding arguments. Also a detailed description of the operations is provided.
The Transmit
operation is used to simulate the transmission of FlexRay frames.
Name |
Transmit |
||
---|---|---|---|
Description |
Initiates the transmission of FlexRay frames. |
||
OP Code [hex] |
0x10 |
||
Content |
Argument |
Length |
Description |
OP Code |
4 bytes |
Contains the OP Code (0x10) of the operation. |
|
Length |
4 bytes |
Defines the cumulative length of all arguments in bytes.
The following applies for this operation: |
|
Cycle ID |
1 byte |
The specified Cycle ID of the FlexRay message. |
|
Slot ID |
2 bytes |
Specifies the FlexRay Slot ID of the given frame. |
|
Channel |
1 byte |
The specified channel type value, based on Overview of the available channel type values., whereby the combination of more than one channel is allowed. |
|
Startup Frame Indicator |
1 byte |
Specifies whether the given frame represents a startup frame.
The boolean values |
|
Sync Frame Indicator |
1 byte |
Specifies whether the given frame represents a sync frame.
The boolean values |
|
Null Frame Indicator |
1 byte |
Specifies whether the payload contains valid data (= |
|
Payload Preamble Indicator |
1 byte |
Indicates whether the payload contains a network management vector (= |
|
Data Length |
1 byte |
Specifies the length of the Data argument in bytes. |
|
Data |
n bytes |
Stores the given frame data to transfer, whereby the valid length of the data depends on the FlexRay Format. |
|
Behavior |
The |
The Cancel
operation is used for cancellation of a FlexRay frame transmission.
Name |
Cancel |
||
---|---|---|---|
Description |
Initiates the cancellation transmission of FlexRay frames within a Bus Simulation. |
||
OP Code [hex] |
0x11 |
||
Content |
Argument |
Length |
Description |
OP Code |
4 bytes |
Contains the OP Code (0x11) of the operation. |
|
Length |
4 bytes |
Defines the cumulative length of all arguments in bytes.
The following applies for this operation: |
|
Cycle ID |
1 byte |
The specified Cycle ID of the |
|
Slot ID |
2 bytes |
Specifies the FlexRay Slot ID of the |
|
Channel |
1 byte |
The specified channel type value, based on Overview of the available channel type values. of the |
|
Behavior |
The |
Name |
Confirm |
||
---|---|---|---|
Description |
Signals a successful transmitted FlexRay frame. |
||
OP Code [hex] |
0x12 |
||
Content |
Argument |
Length |
Description |
OP Code |
4 bytes |
Contains the OP Code (0x12) of the operation. |
|
Length |
4 bytes |
Defines the cumulative length of all arguments in bytes.
The following applies for this operation: |
|
Cycle ID |
1 byte |
The specified Cycle ID of the |
|
Slot ID |
2 bytes |
Specifies the FlexRay Slot ID of the |
|
Channel |
1 byte |
The specified channel type value, based on Overview of the available channel type values., whereby the combination of more than one channel is allowed. |
|
Behavior |
The specified operation shall be produced by the Bus Simulation and consumed by Network FMUs.
The Bus Simulation provides the |
A format error indicates a syntax or content error in response to a received operation.
See Format Error
for definition.
The Bus Error
operation represents feedback of a Bus Simulation for a specified Transmit
operation in case of an unsuccessful transmission.
The following information is included within this operation:
Name |
Bus Error |
||
---|---|---|---|
Description |
Represents an operation for simulated bus errors. |
||
OP Code [hex] |
0x20 |
||
Content |
Argument |
Length |
Description |
OP Code |
4 bytes |
Contains the OP Code (0x20) of the operation. |
|
Length |
4 bytes |
Defines the cumulative length of all arguments in bytes.
The following applies for this operation: |
|
Error Flags |
1 byte |
The specified error flag(s), based on the table below. The allowed combinations are defined by the FlexRay specification itself. |
|
Cycle ID |
1 byte |
The specified FlexRay Cycle ID. |
|
Segment Indicator |
2 bytes |
Identifies the specified FlexRay segment, where the |
|
Channel |
1 byte |
The specified channel type value, based on Overview of the available channel type values.. |
|
Behavior |
The specified operation shall be produced by the Bus Simulation and consumed by Network FMUs.
It represents a direct feedback corresponding to a specified |
The following Error Flags can be used:
[Flag] Kind |
Value |
Description |
---|---|---|
VALID_FRAME |
0x01 |
Indicates a valid |
SYNTAX_ERROR |
0x02 |
Indicates a syntactic error in a time slot of a |
CONTENT_ERROR |
0x04 |
Indicates a content error of a receiving |
BOUNDARY_VIOLATION |
0x08 |
Indicates that a boundary violation occurred at a boundary of the corresponding slot.
This type of |
TX_CONFLICT |
0x16 |
Indicates that a reception from another Network FMU is already ongoing while the specified Network FMU starts a transmission via a |
The following segment types can be used:
Kind |
Value |
Description |
---|---|---|
SYMBOL_WINDOW |
0xFFFE |
Indicates the FlexRay Symbol Window segment. |
NIT |
0xFFFF |
Indicates the FlexRay Network Idle Time (NIT) segment. |
The Configuration
operation allows Network FMUs the configuration of the Bus Simulation with parameters like the length of a slot or the duration of a macrotick and further options.
The following information are included within this operation:
Name |
Configuration |
||||
---|---|---|---|---|---|
Description |
Represents an operation for the configuration of a Bus Simulation. It contains necessary parameters for timing calculations of transmissions and for node compatibility checks across the whole FlexRay network. Also the configuration of further options is supported by this operation. |
||||
OP Code [hex] |
0x30 |
||||
Content |
Argument |
Length |
Description |
||
OP Code |
4 bytes |
Contains the OP Code (0x30) of the operation. |
|||
Length |
4 bytes |
Defines the cumulative length of all arguments in bytes.
The following applies for this operation: |
|||
Parameter Type |
1 byte |
Defines the current configuration parameter.
Note that only one parameter can be set per |
|||
Parameters |
|||||
FLEXRAY_CONFIG |
Macrotick Duration |
4 bytes |
Specifies the duration of one macrotick in nanoseconds.
See |
||
Macroticks per Cycle |
2 bytes |
Defines the length of a cycle in macroticks.
See |
|||
Cycle Count Max |
1 byte |
Defines the maximum cycle counter value in a given FlexRay cluster.
See |
|||
ActionPoint Offset |
1 byte |
Defines the action point offset of a static slot in macroticks.
See |
|||
Static Slot Length |
2 bytes |
Defines the length of a static slot within the static segment in macroticks.
See |
|||
Number of Static Slots |
2 bytes |
Specifies the number of static slots within one FlexRay cycle.
See |
|||
Static Payload Length |
1 byte |
Specifies the length of static slot payload in bytes.
See |
|||
Minislot ActionPoint Offset |
1 byte |
Defines the action point offset of a minislot in macroticks.
See |
|||
Number of Minislots |
2 bytes |
Specifies the number of minislots within one FlexRay cycle.
See |
|||
Minislot Length |
1 byte |
Defines the length of a minislot within a dynamic segment in macroticks.
See |
|||
Maximum Dynamic Payload Length |
1 byte |
Specifies the maximum length of a dynamic slot payload in bytes.
See |
|||
Symbol ActionPoint Offset |
1 byte |
Defines the action point offset within the symbol window in macroticks.
See |
|||
Symbol Window Length |
1 byte |
Specifies the length of symbol window in macroticks, whereby a zero value is allowed.
See |
|||
NIT Length |
2 bytes |
Specifies the length of the Network Idle Time in macroticks.
See |
|||
NM Vector Length |
1 byte |
Specifies the length of the Network Management Vector.
See |
|||
Dynamic Slot Idle Time |
4 bytes |
Defines the length of dynamic slot idle time within a dynamic segment in macroticks, whereby zero defines that is not used. |
|||
Coldstart Node |
1 byte |
Specifies if the given FlexRay node represents a coldstart node or not, by using Overview of the available coldstart node types.. If a specified node has coldstart capabilities, additionally the type of coldstart shall be defined. |
|||
Behavior |
The specified operation shall be produced by a Network FMU.
In case of directly connected Network FMUs (see [common-concepts-direct-communication]), Network FMUs also receive |
The following configuration parameters are defined:
Parameter |
Value |
Description |
---|---|---|
FLEXRAY_CONFIG |
0x01 |
Indicates global FlexRay parameters used by the Network FMU. |
The following coldstart node types are defined:
Coldstart Node Type |
Value |
Description |
---|---|---|
None |
0x01 |
Describes that the current node has no coldstart capabilities. |
TT-D coldstart node |
0x02 |
Indicates a TT-D coldstart node. |
TT-E coldstart node |
0x03 |
Indicates a TT-E coldstart node. |
TT-L coldstart node |
0x04 |
Indicates a TT-L coldstart node. |
By using the Start Communication
operation, a Network FMU or Bus Simulation communicates the start of the first communication cycle.
The following information is included within this operation:
Name |
Start Communication |
||
---|---|---|---|
Description |
Starts the FlexRay communication. |
||
OP Code [hex] |
0x40 |
||
Content |
Argument |
Length |
Description |
OP Code |
4 bytes |
Contains the OP Code (0x40) of the operation. |
|
Length |
4 bytes |
Defines the cumulative length of all arguments in bytes.
The following applies for this operation: |
|
8 bytes |
Defines the absolute simulation time in nanoseconds when the first FlexRay cycle has started. |
||
Behavior |
The specified operation shall be produced by a Network FMU and distributed to all participants, except the |
The Symbol
operation is used for transmission of FlexRay-specific symbols, e.g. for wake-up, startup or media testing in the symbol window.
Name |
Symbol |
||
---|---|---|---|
Description |
Operation representing a symbol transmitted in the FlexRay symbol window. |
||
OP Code [hex] |
0x50 |
||
Content |
Argument |
Length |
Description |
OP Code |
4 bytes |
Contains the OP Code (0x50) of the operation. |
|
Length |
4 bytes |
Defines the cumulative length of all arguments in bytes.
The following applies for this operation: |
|
Cycle ID |
1 byte |
The specified FlexRay Cycle ID. If a FlexRay cycle is not yet running (for example when initiating a startup through a collision avoidance symbol), the value 0 should be used. |
|
Channel |
1 byte |
The specified channel type value, based on Overview of the available channel type values.. |
|
Type |
1 byte |
The specified symbol type, based on the table below. |
|
Behavior |
The specified operation shall be produced by a Network FMU and distributed to all participants, except the |
The following symbol type values can be used:
Kind |
Value |
Description |
---|---|---|
COLLISION_AVOIDANCE_SYMBOL |
0x01 |
The collision avoidance symbol is used to indicate the start of the first communication cycle. |
MEDIA_TEST_SYMBOL |
0x02 |
The media test symbol is used for testing of a bus guardian. |
WAKEUP_SYMBOL |
0x03 |
The wake-up symbol is used for waking up other FlexRay nodes of the specified network. |
This chapter defines parameters that Network FMU might provide to configure FlexRay-specific behavior.
For a detailed simulation, a Network FMU needs information about whether the message sent has arrived or whether a bus error has occurred.
A Bus Simulation can simulate these effects by sending bus notifications in terms of Confirm-
and Bus Error
operations to the Network FMUs.
However, in scenarios where Network FMUs are connected directly to each other, or where the Bus Simulation does not simulate such effects, it must be possible to configure the Network FMU such that it does not wait for any response after a Transmit
operation.
Therefore, a parameter with memberName = "BusNotifications"
can be added within the FlexRay-specific Configuration Terminal.
If a Network FMU supports bus notifications, the BusNotifications
parameter shall be exposed.
The default value of this parameter shall be false
.
[The default value false
allows a simple integration of Network FMUs to simulation scenarios where Confirm-
or Bus Error
operations are not used.]
Only Network FMUs with the corresponding optionally exposed BusNotifications
parameter set to fmi3True
might wait for Confirm-
and Bus Error
operations and respond accordingly; otherwise Network FMUs must not wait ("fire-and-forget").
Even if the Network FMU does not expect bus notifications, i.e. BusNotifications
variable was not set to fmi3True
, but receives them, it shall ignore them, i.e. it shall not report warnings or errors.
[Note that the bus notification parameter just informs the Network FMU if it can expect to receive notification operations or not. The parameter doesn’t define in any way on how to react upon receiving notification operations.]
memberName: BusNotifications type: Boolean causality: parameter variability: fixed start: false
A Bus Simulation FMU shall indicate via a variable with memberName = "BusNotifications"
within the FlexRay-specific Configuration Terminal whether it provides bus notifications or not.
If the provision of bus notifications can be configured (e.g., via a structural parameter), the attributes of the BusNotifications
variable shall contain causality = "calculatedParameter"
and variability = "fixed"
; or causality = "output"
and variability = "constant"
otherwise.
memberName: BusNotifications type: Boolean causality: calculatedParameter/output variability: fixed/constant
In order to minimize the number of Bus Communication Points of an entire simulation system, it can make sense that the Bus Simulation always delivers Transmit
operations on a concrete slot boundary.
Under the condition that participating Network FMUs also provide their Transmit
operations on a slot boundary, the behavior means that the Transmit
operation to be received, the next Transmit
operation to be sent and a Confirm
or Bus Error
operation are provided and exchanged at exactly one Bus Communication Point.
Therefore, a parameter with memberName = "DeliveryOnBoundary"
can be added within the FlexRay-specific Configuration Terminal to switch the behavior in the Bus Simulation.
If the value of the parameter is set to fmi3True
, the Bus Simulation provides Transmit
operations and also resulting Confirm-
and Bus Error
operations at a concrete slot boundary.
If the value of the parameter is set to fmi3False
, the Bus Simulation provides the respective operations after the calculated transfer time.
See Static Segment and Dynamic Segment for details.
The default value shall be true
.
If a Network FMU is supporting the delivery on slot boundaries only, the parameter shall be omitted.
memberName: DeliveryOnBoundary type: Boolean causality: parameter variability: fixed start: true
A Bus Simulation FMU shall indicate via a variable with memberName = "DeliveryOnBoundary"
within the FlexRay-specific Configuration Terminal whether it provides operations on a concrete slot boundary or not.
If the delivery on slot boundaries can be configured (e.g., via a structural parameter), the attributes of the DeliveryOnBoundary
variable shall contain causality = "calculatedParameter"
and variability = "fixed"
; or causality = "output"
and variability = "constant"
otherwise.
memberName: DeliveryOnBoundary type: Boolean causality: calculatedParameter/output variability: fixed/constant
The timing behavior of FlexRay communication is typically defined globally in a design phase of the FlexRay network.
At runtime, the globally defined communication parameters must be used by all network nodes to communicate successfully.
To ensure that all Network FMUs use compatible parameters and to tell Bus Simulations how to simulate the FlexRay communication, Network FMUs shall send the Configuration
operation.
Configuration parameters which are mandatory to provide when first entering the Event Mode
immediately after leaving the Initialization Mode
are of type FLEXRAY_CONFIG
.
Network FMUs receiving Configuration
operations of type FLEXRAY_CONFIG
shall check its compatibility.
Bus Simulations are also allowed to perform compatibility checks of FLEXRAY_CONFIG
parameters.
In this case, a Bus Simulations must not forward Configuration
operations to Network FMUs.
In cases of detected incompatibilities, the simulation shall be refused accordingly.
This standard supports wake up and sleep functionality for the FlexRay bus. However, the realization of local virtual ECU wake-up and sleeping processes, i.e., the transition to the sleep state as well as the virtual ECU local wake-up process, is considered internal to the FMU implementation. Therefore, only the bus-related aspects are defined in this document.
Before frames can be transferred, the communication must be started.
The startup process follows a defined sequence in which FlexRay nodes synchronizes step by step (for a detailed description refer to [ISO-17458-2]).
FlexRay nodes, that are allowed to start the FlexRay communication, are referred to as coldstart nodes.
The coldstart ability of a Network FMU must be communicated by the Coldstart Node
parameter of the Configuration
operation.
For starting the FlexRay communication, a coldstart Network FMU shall send a Symbol
operation whereby the Type
argument is set to COLLISION_AVOIDANCE_SYMBOL
to announce the start of the first FlexRay communication cycle.
A Bus Simulation must forward the Symbol
operation immediately to the other Network FMUs.
Network FMUs receiving a COLLISION_AVOIDANCE_SYMBOL
are not allowed to send the Symbol
operation likewise from this point onwards.
The first communication cycle is then started by sending the Start Communication
operation.
Network FMUs must synchronize their internal FlexRay clock based on the received Start Time
.
The start time of the first communication cycle is defined as \$T_{Start}\$ in this specification.
After the Start Communication
operation has been sent, the Network FMU starts sending Transmit
operations, whereby the Startup Frame Indicator
argument is set to TRUE
.
Normally, the startup process requires at least two coldstart nodes.
For simulation systems coldstart Network FMUs are missing (because only a subset of nodes is to be simulated), a Bus Simulation is allowed to start the FlexRay communication by emulating the behavior of missing coldstart nodes.
For this purpose, structural parameters e.g. for defining the startup time (\$T_{Start}\$) or the Slot ID
for startup frames can be provided by the Bus Simulation.
Because those parameters are Bus Simulation specific, they are not further defined in the specification.
The exact time or permitted range for sending a message is essential for FlexRay, as this is a scheduled bus protocol. Within this section the data flow is first described in more detail. After this temporal aspects for data transmission are explained.
Similar to the other buses, the Transmit
operation represents the core of a bus transmission.
It contains all relevant frame data and is provided by a Network FMU in the role of a sender, potentially via a Bus Simulation, to one or more Network FMUs in the role of a receiver.
A Confirmation-
and Bus Error
operation represents feedback from a Bus Simulation for a previously carried out Transmit
operation.
Depending on the BusNotifications
parameter, a successful transmission of a Transmit
operation results for a Network FMU in a Confirmation
operation, an unsuccessful Transmit
operation in a Bus Error
operation.
If BusNotifications
is false
(default), then Network FMUs must not rely on receiving Confirm
operations.
If a specified Network FMU is depending on Confirm
operations and BusNotifications
is false
, the self confirmation shall be realized internally within the respective Network FMU.
If a Bus Simulation is involved, the following applies: A Network FMU can update a Transmit
operation in a Bus Simulation as long as the same value is used for the Slot ID
argument.
The last Transmit
operation is always valid (last-is-best semantics).
A Transmit
operation can be updated as long as the Bus Simulation has not yet started to simulate the transmission of the representing FlexRay frame.
The Cancel
operation allows the cancellation of such buffered Transmit
operations within a Bus Simulation.
General transmission mechanism for FlexRay. illustrates the sequence of the operations mentioned.
First, FMU 1 provides a Transmit
operation for the Bus Simulation.
Within the next two steps, FMU 1 updates the specified Transmit
again.
In the next step, the last Transmit
operation, provided by FMU 1, is transferred to FMU 2 by the Bus Simulation.
Also the Bus Simulation provides a Confirm
operation for FMU 1.
Cancellation of a transmission for FlexRay via Cancel operation. illustrates a sequence with focus to the Cancel
operation.
First, FMU 1 provides a Transmit
operation for the Bus Simulation.
Within the next step, FMU 1 updates the specified Transmit
again.
In the next step, the transmission ist canceled via Cancel
operation.
By using the Cancel
operation, the Transmit
operation will not be forwarded to other Network FMUs by the Bus Simulation.
No transmission takes place within the simulation system.
At bus level, the macrotick represents the smallest time unit on a FlexRay bus. A total of four protocol parts are logically mapped onto this: The static and the dynamic segment, the so-called symbol window and the Network Idle Time (NIT). The static and dynamic segment is in turn divided into different sections, so-called FlexRay slots. These segments repeat themselves in certain FlexRay cycles. Segmentation of a FlexRay cycle. visualizes the segmentation of a cycle.
Within a real FlexRay bus, every macrotick represents a potential temporal synchronization point for the respective segments and frames to be transmitted.
During a simulation, however, this type of synchronization would be unnecessarily inefficient.
For simulation scenarios it is highly recommended that Transmit
operations always be provided at the beginning of a slot.
This minimizes the Bus Communication Points of the overall simulation system and usually increases the performance of the whole simulation.
This behavior is defined more specifically and slightly differently depending on whether it is a static or dynamic segment.
What both segments have in common is that the Network FMU itself must know the appropriate time of a Transmit
operation basing on the FlexRay cycle and slot principle.
In concrete terms, this means that a Network FMU itself must provide the expected Transmit
operation at the appropriate time via Tx Clock Variables.
The start time of the first FlexRay cycle is defined by the Start Time
argument value of the Start Communication
operation.
That concrete means that the point in time for the start of FlexRay cycle in nanoseconds can be computed within a Network FMU as
, where:
-
\$T_{\mathrm{Start}}\$ represents the start time of the first FlexRay cycle (see
Start Time
argument within theStart Communication
operation) in nanoseconds. -
\$L_{\mathrm{Cycle}}\$ defines length of FlexRay cycle in nanoseconds (see
Macrotick Duration
andMacroticks per Cycle
arguments within theConfiguration
operation). -
\$N_{\mathrm{Cycle}}\$ specifies the number of cycles per iteration (see
Cycle Count Max
argument within theConfiguration
operation, whereas \$N_{\mathrm{Cycle}} = \mathrm{gCycleCountMax} + 1\$). -
\$i_{\mathrm{Iteration}}\$ represents the desired iteration of complete FlexRay cycles.
-
\$i_{\mathrm{Cycle}}\$ represents the cycle within the given iteration with \$i_{Cycle} \lt N_{Cycle}\$.
The point in time for the start of FlexRay cycle of the current iteration with focus to the simulation time can be computed within a Network FMU as
, where:
-
\$t\$ represents the current simulation time in nanoseconds with \$t \geq T_{\mathrm{Start}}.\$
For a static segment, a Network FMU shall provide the respective Transmit
operation in an interval starting at the beginning of a slot and ending at the action point (see ActionPoint Offset
argument within the Configuration
operation) of a slot.
Within this time window, the Network FMU must provide the respective Transmit
operation for a specific slot.
The point in time at which a Bus Simulation shall provide Transmit
operations and also resulting Confirm-
or Bus Error
operations depends on the DeliveryOnBoundary
configuration parameter.
If the parameter is set to fmi3False
, the Bus Simulation provides the respective operations directly after the calculated transmission time (see orange arrow in Bus Communication Points within static segment.).
If the parameter is true
(default), the corresponding operations are only provided at the slot boundary (green arrow in Bus Communication Points within static segment.).
The starting point of the slot can be calculated at runtime based on the FLEXRAY_CONFIG
configuration parameters as
, where:
-
\$i_{\mathrm{Slot}}\$ represents the index of the static slot for transmission (see
Slot ID
argument of theTransmit
operation). -
\$L_{\mathrm{StaticSlot}}\$ defines the length of a static slot within the static segment in nanoseconds (see
Macrotick Duration
andStatic Slot Length
argument within theConfiguration
operation).
This results in an interval in which a Network FMU shall provide a specified Transmit
of
, where:
-
\$T_{\mathrm{ActionPoint}_{\mathrm{Static}}}\$ represents the action point offset of a static and symbol slot in nanoseconds (see
Macrotick Duration
andActionPoint Offset
argument within theConfiguration
operation).
In a sequence of operations to the respective actors and focus to the FlexRay slot counter, communication is presented as shown in Transmission sequence within a static FlexRay segment with an involved Bus Simulation..
At the beginning of slot 6, FMU 1 provides a frame to be sent in the form of a Transmit
operation for the Bus Simulation.
After simulation of the specified transmission time, the Bus Simulation provisions the Transmit
operation to FMU 2 and a Confirm
operation to FMU 1.
When using the dynamic segment, the use is analogous to the use of Transmit
operations in the static segment.
Network FMUs need to provide a Transmit
operation within a well-defined time window and with respect to the designated minislot.
Since the dynamic FlexRay segment works more event-based, it can happen that a transmission is already ongoing at the current time.
For this reason, the slot counter within Network FMUs are important, especially in the dynamic segment.
Within the dynamic segment, Slot ID = n + m represents the first valid point in time when a Network FMU is allowed to provide the respective Transmit
operation, whereby n indicates the number of Transmit
operations provided within the ahead static segment and m the number of past minislots within the current dynamic segment.
As in the static segment, a permitted interval is defined between the concrete start of the minislot and the Minislot ActionPoint Offset
(see Configuration
operation).
The point in time at which a Bus Simulation shall provide operations, analogous to the static segment, depends on the DeliveryOnBoundary
configuration parameter.
If the configuration parameter is set to fmi3False
, the Bus Simulation provides the respective operation directly after the calculated transmission time (see orange arrow in Bus Communication Points within dynamic segment.).
If the parameter is set to fmi3True
, the corresponding operations are only provided at the slot boundary (green arrow in Bus Communication Points within dynamic segment.).
In sequence Provision and delivery of Transmit operations with an involved Bus Simulation. multiple transmissions of FlexRay frames within the dynamic segment are shown.
At the beginning the internal slot counters of FMU 1 and FMU 2 are equal to 8.
Within the first and the second minislot, neither FMU 1 nor FMU 2 wants to transmit a frame.
After the second elapsed minislot the internal slot counter values of FMU 1 and FMU 2 are equal to 10.
Subsequently this FMU 1 provides a Transmit
operation to the Bus Simulation for a transmission that uses the dynamic segment and Slot ID = 10
.
After this the Bus Simulation provides the Transmit
operation to FMU 2 and in the same step a Confirm
operation for FMU 1.
All in all the transmission will take two minislots.
Minislot 5 expires without a Network FMU wanting to make a transmission again and the internal slot counters are set to 11.
In minislot 6 FMU 2 initiates a transmission via Transmit
operation for Slot ID = 12
.
Afterward, the Bus Simulation provides the Transmit
operation to FMU 1 and in the same step a Confirm
operation for FMU 2.
This transmission will take three minislots.
If no Bus Simulation is involved, the transmission always applies: The length of a dynamic slot is exactly one minislot, since the transmission duration is not taken into account.
Within a Network FMU the first valid point in time when a specified Transmit
operation, with respect to the specified Slot ID
shall be provided can be computed as
, where:
-
\$N_{\mathrm{StaticSlot}}\$ represents the number of static slots within one FlexRay cycle (see
Number of Static Slots
argument within theConfiguration
operation). -
\$i_{\mathrm{Slot}}\$ represents the specified Slot ID for transmission within the dynamic segment (see
Slot ID
argument of theTransmit
operation). -
\$L_{\mathrm{Minislot}}\$ represents the length of a minislot within a dynamic segment in macrotick (see
Minislot Length
argument within theConfiguration
operation).
Within a Network FMU the latest valid point in time when a specified Transmit
operation, with respect to the specified Slot ID
shall be provided can be computed as
, where:
-
\$N_{\mathrm{StaticSlot}}\$ represents the number of static slots within one FlexRay cycle (see
Number of Static Slots
argument within theConfiguration
operation). -
\$i_{\mathrm{Slot}}\$ represents the specified Slot ID for transmission within the dynamic segment (see
Slot ID
argument of theTransmit
operation). -
\$L_{\mathrm{DynamicSlot}_j}\$ represents the number of used minislots for transmission of dynamic slot j, where also idled minislots are considered.
-
\$L_{\mathrm{Minislot}}\$ represents the length of a minislot within a dynamic segment in macrotick (see
Minislot Length
argument within theConfiguration
operation).
[It should be noted that \$T_{\mathrm{Start}}\$ is already taken into account in \$T_{\mathrm{Tx}_{\mathrm{Static}}}(...)\$ and doesn’t need to be considered a second time.]
This results in an interval in which a Network FMU shall provide a specified Transmit
operation of
, where:
-
\$T_{\mathrm{ActionPoint}_{\mathrm{Dynamic}}}\$ represents the minislot action point offset of a dynamic slot in macroticks (see
Minislot ActionPoint Offset
argument within theConfiguration
operation).
FlexRay provides extensive options for detecting bus errors.
Overall, the respective bus errors affect the internal controller status within the Network FMUs.
To maintain the internal controller status, Bus Error
operations shall be provided to all relevant Network FMUs by the Bus Simulation.
Depending on the type of Bus Error
, either only the Transmit
producing or all Network FMUs must be notified via Bus Error
operation (see Overview of the available error flag values. for details).