MCF548x Reference Manual, Rev. 3
21-24 Freescale Semiconductor
Once the arbitration process is complete and there is a “winner” MB for transmission, the frame is
transferred to the serial message buffer (SMB) for transmission (move out).
While transmitting, the FlexCAN transmits up to 8 data bytes, even if the DLC is bigger in value.
At the end of the successful transmission, the value of the free-running timer (which was captured at the
beginning of the ID field on the CAN bus), is written into the TIMESTAMP field in the MB, the CODE
field in the control/status word of the MB is updated, and a status flag is set in the IFLAG register. An
interrupt is generated if allowed by the corresponding interrupt mask register bit.

21.4.4 Arbitration Process

The arbitration process is an algorithm executed by the message buffer management (MBM) that scans the
whole MB memory looking for the highest priority message to be transmitted. All MBs programmed as
transmit buffers will be scanned to find the lowest ID or the lowest MB number, depending on the LBUF
bit on the control register.
NOTE
If LBUF is cleared, the arbitration considers not only the ID, but also the
RTR and IDE bits placed inside the ID at the same positions they are
transmitted in the CAN frame.
The arbitration process is triggered in the following events:
During the CRC field of the CAN frame
During the error delimiter field of the CAN frame
During intermission, if the winner MB defined in a previous arbitration was deactivated, or if there
was no MB to transmit, but the CPU wrote to the C/S word of any MB after the previous arbitration
finished
When MBM is in idle or bus off state and the CPU writes to the C/S word of any MB
Upon leaving freeze mode
Once the highest priority MB is selected, it is transferred to a temporary storage space called serial
message buffer (SMB), which has the same structure as a normal MB but is not user accessible. This
operation is called “move-out.” At the first opportunity window on the CAN bus, the message on the SMB
is transmitted according to the CAN protocol rules. FlexCAN transmits up to 8 data bytes, even if the DLC
(data length code) value is bigger. Refer to Section 21.4.6.1, “Serial Message Buffers (SMBs)” for more
information on serial message buffers.

21.4.5 Receive Process

The CPU prepares or changes an MB for frame reception by executing the following steps:
Writing the control/status word to hold Rx MB inactive (CODE = 0000).
Writing the ID word.
Writing the control/status word to mark the Rx MB as active and empty.
NOTE
The first and last steps are mandatory!
Starting from the last step, this MB is an active receive buffer and will participate in the internal matching
process, which takes place every time the receiver receives an error-free frame. In this process, all active
receive buffers compare their ID value to the newly received one, and if a match occurs, the frame is
transferred (move in) to the first (lowest entry) matching MB. The value of the free-running timer (which