
R01UH0336EJ0102 Rev.1.02
Page 1102 of 1538
Jul 17, 2014
V850E2/PG4-L
Section 20 CAN Controller (FCN)
20.7 Reception of Message
20.7.1
Message Reception
In all operating modes, the entire message buffer area is analyzed to find a
suitable buffer to store a newly received message. All message buffers
satisfying the following conditions are included in that evaluation (RX-search
process).
• Used as a message buffer
(FCNnMmSTRB.FCNnMmSSAM = 1)
• Set as a receive message buffer
(FCNnMmSTRB.FCNnMmSSMT[3:0] = 0001
B
to 1001
B
)
• Ready for reception
(FCNnMmCTL.FCNnMmRDYF = 1)
When two or more message buffers of the FCN module are able to receive a
message, the message is stored according to the priority described below. The
message is always stored in the message buffer with the highest priority, not in
a message buffer with a low priority. For example, when an unmasked receive
message buffer and a receive message buffer linked to mask 1 have the same
ID, the received message is not stored in the message buffer linked to mask 1,
even if that message buffer has not received a message and a message has
already been received in the unmasked receive message buffer. In other
words, when a condition has been set in two or more message buffers with
different priorities, the message buffer with the highest priority always stores
the message; the message is not stored in message buffers with a lower
priority. This also applies when the message buffer with the highest priority is
unable to store a message (i.e., when FCNnMmCTL.FCNnMmDTNF = 1
indicating that a message has already been received, but rewriting is disabled
because FCNnMmSTRB.FCNnMmSSOW = 0). In this case, the message is
not actually stored in the candidate message buffer with the highest priority,
but neither is it stored in a message buffer with a lower priority.
Table 20-16
MBRB Priorities
Priority
Storing Condition if Same ID is Set
1 (high)
Unmasked message buffer
FCNnMmDTNF = 0
FCNnMmDTNF = 1 and
FCNnMmSSOW = 1
2
Message buffer linked to mask 1
FCNnMmDTNF = 0
FCNnMmDTNF = 1 and
FCNnMmSSOW = 1
3
Message buffer linked to mask 2
FCNnMmDTNF = 0
FCNnMmDTNF = 1 and
FCNnMmSSOW = 1
...
...
...
9 (low)
Message buffer linked to mask 8
FCNnMmDTNF = 0
FCNnMmDTNF = 1 and
FCNnMmSSOW = 1