715
CAN Controller (CAN)
Chapter 19
Preliminary User’s Manual U17566EE1V2UM00
19.10.2
Receive history list function
The receive history list (RHL) function records in the receive history list the
number of the receive message buffer in which each data frame or remote
frame was received and stored. The RHL consists of storage elements
equivalent to up to 23 messages, the last in-message pointer (LIPT) with the
corresponding CnLIPT register and the receive history list get pointer (RGPT)
with the corresponding CnRGPT register.
The RHL is undefined immediately after the transition of the CAN module from
the initialization mode to one of the operation modes.
The CnLIPT register holds the contents of the RHL element indicated by the
value of the LIPT pointer minus 1. By reading the CnLIPT register, therefore,
the number of the message buffer that received and stored a data frame or
remote frame first can be checked. The LIPT pointer is utilized as a write
pointer that indicates to what part of the RHL a message buffer number is
recorded. Any time a data frame or remote frame is received and stored, the
corresponding message buffer number is recorded to the RHL element
indicated by the LIPT pointer. Each time recording to the RHL has been
completed, the LIPT pointer is automatically incremented. In this way, the
number of the message buffer that has received and stored a frame will be
recorded chronologically.
The RGPT pointer is utilized as a read pointer that reads a recorded message
buffer number from the RHL. This pointer indicates the first RHL element that
the CPU has not read yet. By reading the CnRGPT register by software, the
number of a message buffer that has received and stored a data frame or
remote frame can be read. Each time a message buffer number is read from
the CnRGPT register, the RGPT pointer is automatically incremented.
If the value of the RGPT pointer matches the value of the LIPT pointer, the
CnRGPT.RHPM bit (receive history list pointer match) is set to 1. This
indicates that no message buffer number that has not been read remains in the
RHL. If a new message buffer number is recorded, the LIPT pointer is
incremented and because its value no longer matches the value of the RGPT
pointer, the RHPM bit is cleared. In other words, the numbers of the unread
message buffers exist in the RHL.
If the LIPT pointer is incremented and matches the value of the RGPT pointer
minus 1, the CnRGPT.ROVF bit (receive history list overflow) is set to 1. This
indicates that the RHL is full of numbers of message buffers that have not been
read. When further message reception and storing occur, the last recorded
message buffer number is overwritten by the number of the message buffer
that received and stored the new message. After the ROVF bit has been set
(1), therefore, the recorded message buffer numbers in the RHL do not
completely reflect the chronological order.
electronic components distributor