FlexRay Module (FLEXRAYV2)
MFR4300 Data Sheet, Rev. 3
Freescale Semiconductor
167
3.4.6.3.5
Received Message Access
To access the message data received over the FlexRay bus, the application reads the message data stored
in the message buffer data field of the corresponding receive message buffer. The access to the message
buffer data field is described in
Section 3.4.3.1, “Individual Message Buffers
”.
The application can read the message buffer data field if the receive message buffer is one of the states
HDis, HDisLck, or HLck.
If the message buffer is in one of these states, the FlexRay module will not
change the content of the message buffer.
3.4.6.3.6
Receive Shadow Buffers Concept
The receive shadow buffer concept applies only to individual receive message buffers. The intention of
this concept is to ensure that only syntactically and semantically valid received non-null frames are
presented to the application in a receive message buffer. The basic structure of a receive shadow buffer is
described in
Section 3.4.3.2, “Receive Shadow Buffers
”.
The receive shadow buffers temporarily store the received frame header and message data. After the slot
boundary the slot status information is generated. If the slot status information indicates the reception of
the valid non-null frame (see
Table 3-100
), the FlexRay module writes the slot status into the slot status
field of the receive shadow buffer and exchanges the content of the
Message Buffer Index Registers
(MBIDXRn)
with the content of the corresponding internal shadow buffer index register. In all other cases,
the FlexRay module writes the slot status into the identified receive message buffer, depending on the slot
status and the FlexRay segment the message buffer is assigned to.
The shadow buffer concept, with its index exchange, results in the fact that the FRM located message
buffer associated to an individual receive message buffer changes after successful reception of a valid
frame. This means that the message buffer area in the FRM accessed by the application for reading the
received message is different from the initial setting of the message buffer. Therefore, the application must
not rely on the index information written initially into the
Message Buffer Index Registers (MBIDXRn)
.
Instead, the index of the message buffer header field must be fetched from the
Message Buffer Index
Registers (MBIDXRn)
.
3.4.6.4
Double Transmit Message Buffer
The section provides a detailed description of the functionality of the double transmit message buffers.
Double transmit message buffers are used by the application to provide the FlexRay module with the
message data to be transmitted over the FlexRay Bus. The FlexRay module uses this message buffer to
provide information to the application about the transmission process, and status information about the slot
in which message data was transmitted.
In contrast to the single transmit message buffers, the application can provide new transmission data while
the transmission of the previously provided message data is running. This scheme is called double
buffering and can be considered as a FIFO of depth 2.
Double transmit message buffers are implemented by combining two individual message buffers that form
the two sides of an double transmit message buffer. One side is called the
commit side
and will be accessed
by the application to provide the message data. The other side is called the
transmit side
and is used by the