
DocID13284 Rev 2
449/564
UM0404
CAN modules
The Arbitration Registers (
ID(28:0)
and
Xtd
bit) are given by the application. They define the
identifier and type of accepted received messages. If an 11-bit Identifier (“Standard Frame”)
is used, it is programmed to
ID(28
:
18)
, while
ID(17
:
0)
can then be disregarded. When a
Data Frame with an 11-bit Identifier is received,
ID(17
:
0)
will be reset to ‘0’.
If the
RxIE
bit is set, the
IntPnd
bit will be set when a received Data Frame is accepted and
stored in the Message Object.
The Data Length Code (
DLC(3:0)
) is given by the application. When the Message Handler
stores a Data Frame in the Message Object, it will store the received Data Length Code and
eight data bytes. If the Data Length Code is less than 8, the remaining bytes of the Message
Object will be overwritten by
non specified values
.
The Mask Registers (
Msk(28:0)
,
UMask
,
MXtd
and
MDir
bits) may be used (
UMask
= ‘1’)
to allow groups of Data Frames with similar identifiers to be accepted. For details see
Reception of data frame on page 447
. The
Dir
bit should not be masked in typical
applications.
21.9.6
Handling of received messages
The CPU may read a received message any time via the IFx Interface registers, the data
consistency is guaranteed by the Message Handler state machine.
Typically the CPU will write first 0x007Fh to the Command Mask Register and then the
number of the Message Object to the Command Request Register. That combination will
transfer the whole received message from the Message RAM into the Message Buffer
Register. Additionally, the bits
NewDat
and
IntPnd
are cleared in the Message RAM (not in
the Message Buffer).
If the Message Object uses masks for acceptance filtering, the arbitration bits show which of
the matching messages has been received.
The actual value of
NewDat
shows whether a new message has been received since last
time this Message Object was read. The actual value of
MsgLst
shows whether more than
one message has been received since last time this Message Object was read.
MsgLst
will
not be automatically reset.
By means of a Remote Frame, the CPU may request another CAN node to provide new
data for a receive object. Setting the
TxRqst
bit of a receive object will cause the
transmission of a Remote Frame with the receive object’s identifier. This Remote Frame
triggers the other CAN node to start the transmission of the matching Data Frame. If the
matching Data Frame is received before the Remote Frame could be transmitted, the
TxRqst
bit is automatically reset.
21.9.7
Configuration of a FIFO buffer
With the exception of the
EoB
bit, the configuration of Receive Objects belonging to a FIFO
Buffer is the same as the configuration of a (single) Receive Object, see
.
To concatenate two or more Message Objects into a FIFO Buffer, the identifiers and masks
(if used) of these Message Objects have to be programmed to matching values. Due to the
MsgVal Arb Data Mask EoB Dir NewDat MsgLst RxIE TxIE IntPnd RmtEn TxRqst
1
appl appl
appl
1
0
0
0
appl
0
0
0
0