Functional Description of the CAN Controller
The CAN controllers perform communication according to the CAN protocol version 2.0 parts A and B.
All communication on the CAN bus is through message objects. The CAN controller stores message objects
in its internal message RAM. The host processor cannot access the message RAM directly, instead the
IF1
and
IF2
message interface register sets provide the host processor access to the messages. Messages are
passed between the message RAM and the CAN core by the message handler. The message handler is also
responsible for message level responsibilities such as acceptance filtering, interrupt generation, and
transmission request generation.
Message Object
The message RAM can store up to 128 message objects. To avoid conflicts between host processor accesses
to the message RAM and CAN message reception and transmission, the host processor does not access the
message objects directly. Accesses are handled through the
IF1
and
IF2
message interface registers.
The following table shows the structure of a message object, where the first row contains the message object
control flags, the second row contains the message object masks, and the third row is the CAN message.
Table 25-1: Message Object Structure
EoB
TxRqst
RmtEn
RxIE
TxIE
IntPnd
MsgLst
NewDat
MsgVal
MDir
MXtd
Msk
[28:0]
UMask
Data 7
[7:0]
Data 6
[7:0]
Data 5
[7:0]
Data 4
[7:0]
Data 3
[7:0]
Data 2
[7:0]
Data 1
[7:0]
Data 0
[7:0]
DLC
[3:0]
Dir
Xtd
ID
[28:0]
Message Object Control Flags
on page 25-3
on page 25-4
on page 25-4
on page 25-4
on page 25-4
on page 25-4
on page 25-4
on page 25-4
on page 25-5
Message Valid (
MsgVal
)
• 0= The message object is ignored by the message handler
• 1= The message object is configured and should be considered by the message handler
Altera Corporation
CAN Controller Introduction
25-3
Functional Description of the CAN Controller
cv_54025
2013.12.30