FlexRay Communication Controller (FLEXRAY)
MPC5510 Microcontroller Family Reference Manual, Rev. 1
Freescale Semiconductor
30-111
Preliminary
presented to the application in a receive message buffer. The basic structure of a receive shadow buffer is
described in
Section 30.6.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
), the FlexRay block writes the slot status into the slot status
field of the receive shadow buffer and exchanges the content of the
Message Buffer Index Registers
with the content of the corresponding internal shadow buffer index register. In all other cases,
the FlexRay block 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
.
30.6.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 block with the
message data to be transmitted over the FlexRay Bus. The FlexRay block 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
FlexRay block to transmit the message data to the FlexRay bus. The two sides are located in adjacent
individual message buffers. The message buffer that implements the commit side has an even message
buffer number 2n. The transmit side message buffer follows the commit side message buffer and has the
message buffer number 2n+1. The basic structure and data flow of a double transmit message buffer is
given in
.
Figure 30-123. Double Transmit Buffer Structure and Data Flow
Commit Side
Transmit Side
Application
FlexRay Bus
MB# 2n
MB# 2n+1
Internal Message
Transfer
message data
message data
message data