The FullCAN strategy is used in more expensive, high-performance CAN controllers and microcontrollers. A FullCAN controller has a set of buffers called mailboxes or message buffers. On initialization, each mailbox is assigned an ID and is set to transmit or receive. When transmitting a message, the identifier message length and data are written to the transmit mailbox with the correct identifier. When the CAN controller receives a message, it checks the mailboxes to see if there is a receive mailbox with the same identifier as the message. If it finds such a mailbox, the controller stores the message in that mailbox and notifies the host controller. Otherwise, it discards the message. With a FullCAN controller, it’s possible to filter out just those message types that are interesting to the node. Therefore, this type of controller imposes a lower load on the host microcontroller. However, it has only a limited number of mailboxes. Some FullCAN controllers allow mailboxes to be dynamically reconfigured, but that does not completely solve the problem. As a result, mixed CAN controllers are available. These hybrid design have not only mailboxes, but also BasicCAN buffers.

