Module Operation
1249
SPNU563A – March 2018
Copyright © 2018, Texas Instruments Incorporated
FlexRay Module
26.2.10.3 Null Frame Reception
The payload segment of a received null frame is not copied into the matching dedicated receive buffer. If a
null frame has been received, only the message buffer status MBS of the matching message buffer is
updated from the received null frame. All bits in header 2 and 3 of the matching message buffer remain
unchanged. They are updated from received data frames only.
26.2.11 FIFO Function
26.2.11.1 Description
A group of the message buffers can be configured as a cyclic First-In-First-Out (FIFO) buffer. The group of
message buffers belonging to the FIFO is contiguous in the register map starting with the message buffer
referenced by MRC.FFB(7-0) and ending with the message buffer referenced by MRC.LCB(7-0) in the
message RAM configuration register. Up to 128 message buffers can be assigned to the FIFO.
Every valid incoming message not matching with any dedicated receive buffer but passing the
programmable FIFO filter is stored into the FIFO. In this case frame ID, payload length, receive cycle
count, and the message buffer status MBS of the addressed FIFO message buffer are overwritten with
frame ID, payload length, receive cycle count, and the status from the received frame. Bit SIR.RFNE in the
status interrupt register shows that the FIFO is not empty, bit SIR.RFCL is set when the receive FIFO fill
level FSR.RFFL(7-0) is equal or greater than the critical level as configured by FCL.CL(7-0), bit EIR.RFO
shows that a FIFO overrun has been detected. If enabled, interrupts are generated.
If null frames are not rejected by the FIFO rejection filter, the null frames will be treated like data frames
when they are stored into the FIFO.
There are two index registers associated with the FIFO. The PUT Index register (PIDX) is an index to the
next available location in the FIFO. When a new message has been received it is written into the message
buffer addressed by the PIDX register. The PIDX register is then incremented and addresses the next
available message buffer. If the PIDX register is incremented past the highest numbered message buffer
of the FIFO, the PIDX register is loaded with the number of the first (lowest numbered) message buffer in
the FIFO chain. The GET Index register (GIDX) is used to address the next message buffer of the FIFO to
be read. The GIDX register is incremented after transfer of the contents of a message buffer belonging to
the FIFO to the output buffer. The PUT Index register and the GET Index register are not memory mapped
and are not accessible by the host CPU.
The FIFO is completely filled when the PUT index (PIDX) reaches the value of the GET index (GIDX).
When the next message is written to the FIFO before the oldest message has been read, both PUT index
and GET index are incremented and the new message overwrites the oldest message in the FIFO. This
will set FIFO overrun flag EIR.RFO in the error interrupt register.
A FIFO not empty status is detected when the PUT index (PIDX) differs from the GET index (GIDX). In
this case flag SIR.RFNE is set. This indicates that there is at least one received message in the FIFO. The
FIFO empty, FIFO not empty, and the FIFO overrun states are explained in
for a three
message buffer FIFO.
The programmable FIFO Rejection Filter register (FRF) defines a filter pattern for messages to be
rejected. The FIFO rejection filter consists of channel filter, frame ID filter, and cycle counter filter. If bit
FRF.RSS is set to 1 (default), all messages received in the static segment are rejected by the FIFO. If bit
FRF.RNF is set to 1 (default), received null frames are not stored in the FIFO.
The FIFO Rejection Filter mask register (FRFM) specifies which bits of the frame ID filter in the FIFO
Rejection Filter register are marked don’t care for rejection filtering.