Functional Description
23.3.17 Message Interface Register Sets
The interface register sets control the CPU read and write accesses to the message RAM. There are two
interface registers sets for read/write access, IF1 and IF2 and one interface register set for read access
only, IF3.
Due to the structure of the message RAM, it is not possible to change single bits or bytes of a message
object. Instead, always a complete message object in the message RAM is accessed. Therefore the data
transfer from the IF1/IF2 registers to the message RAM requires the message handler to perform a read-
modify-write cycle: First those parts of the message object that are not to be changed are read from the
message RAM into the interface register set, and after the update the whole content of the interface
register set is written into the message object.
After the partial write of a message object, those parts of the interface register set that are not selected in
the command register, will be set to the actual contents of the selected message object.
After the partial read of a message object, those parts of the interface register set that are not selected in
the command register, will be left unchanged.
By buffering the data to be transferred, the interface register sets avoid conflicts between concurrent CPU
accesses to the message RAM and CAN message reception and transmission. A complete message
object (see
) or parts of the message object may be transferred between the message
RAM and the IF1/IF2 register set (see ) in one single transfer. This transfer, performed in parallel on all
selected parts of the message object, guarantees the data consistency of the CAN message.
23.3.17.1 Message Interface Register Sets 1 and 2
The IF1 and IF2 register sets control the data transfer to and from the message object. The command
register addresses the desired message object in the message RAM and specifies whether a complete
message object or only parts should be transferred. The data transfer is initiated by writing the message
number to the bits [7:0] of the command register.
When the CPU initiates a data transfer between the IF1/IF2 registers and message RAM, the message
handler sets the busy bit in the respective command register to ‘1’. After the transfer has completed, the
busy bit is set back to ‘0’ (see
).
3915
SPRUH73H – October 2011 – Revised April 2013
Controller Area Network (CAN)
Copyright © 2011–2013, Texas Instruments Incorporated