Specifications
5 CAN I/O Support for FIFO
5-4
total latency may easily exceed the latency encountered when using the
Dynamic Object Buffer mode driver scheme for the same application. There is
another restriction specific to the FIFO mode concept. Using more than one
Read Receive FIFO block in a Simulink model is not recommended, because a
new event (message) read by one block instance cannot be read out again by
another block instance (the event is no longer in the FIFO).Therefore the entire
CAN receive part has to be concentrated in one Read Receive FIFO block in
your model. For the write transmit FIFO side, this restriction does not apply.
Here you can use as many instances as you want.
The Setup block for the CAN FIFO mode allows controlling the CAN
acceptance filters of the CAN controller. The acceptance filter allows defining
a range of CAN messages not to be forwarded to the receive FIFO. Filtering out
unwanted CAN messages can drastically reduce the read receive FIFO latency
time because the unwanted messages do not reach the receive FIFO.
Unfortunately, the acceptance filter process uses binary evaluation, which does
not allow filtering messages below and above a certain decimal range.
Therefore the use of the acceptance filter does only resolve the problem for a
small subset of CAN network applications. See “Acceptance Filters” on page
5-38 for more information on this.
Lets look again at our example of 12 messages to be received and 8 messages
to be transmitted. If those 20 messages with their specific identifiers are the
only messages going over the CAN network (100% usage ratio) the total latency
time is:
12*17us + 8*4us = 236us
This is a considerable smaller value than the 800us, which result when using
the Dynamic Object Buffer mode drivers.
For the next case we assume that there are 12 additional messages going
regularly over the network which have not to be processed by the target
application. Additionally, we assume that those messages cannot be filtered
out by the CAN controller acceptance filter. Then the total latency time
increases to
12*17us +20*4us = 284us
There is no impact to the final result. That’s the trade-off. Therefore the FIFO
mode drivers are best suited for either CAN network monitoring applications
or low latency CAN applications where the ratio between the number of