Selecting a CAN ControllerBy Olaf Pfeiffer There are some 22 or so chip manufacturers producing microcontrollers with on-chip CAN interfaces. Many differ substantially from each other - what are the selction criterias we can go by? [ Introduction | Performance | Implementations | Conclusions ] |
|
|||||||
|
Summary and ConclusionsMany CAN controllers offer additional features such as extended error reporting and diagnostic functions or auto-baud detection. For the scope of this article a complete feature comparison is impossible - so we concentrated on the number one feature essential to many CAN applications: receiving messages. Before choosing a CAN interface for an application do a worst-case analysis. What is the fastest baud rate the node needs to support? How much of the network traffic does need to be worked on? How much additional network traffic is there and can it be completely eliminated by hardware filters? Which percentage of the MCU performance is needed for the CAN communication and which percentage required by the real application running on that MCU? Some on-line calculators that help with worst-case CAN traffic calculations are available for free on the web pages of the Embedded Systems Academy: www.esacademy.com/faq/calc/. When it comes to transmitting CAN messages, it should be mentioned that Full CAN style controllers are advantageous compared to CAN controllers that only feature a single transmit buffer. Having multiple, pre-configured transmit buffers simplifies transmitting re-occurring messages or sending messages from different tasks. Usually multiple transmit buffers can also be configured to support CAN's priority scheme - a higher priority message to be transmitted can "overtake" a lower priority message that was not yet transmitted. In general, CAN controllers supporting a combination of Full CAN and receive FIFOs are the most desirable, although they are not always the easiest to master. In any case, with the help of this article you should now at least be able to recognize if a particular CAN interface jeopardizes your project because it would take too much of the MCU performance away from your real application. [ Introduction | Performance | Implementations | Conclusions ] |
ESAcademy, 2002 All materials |