Knowing basically how CAN operates, it’s instructive at this point to examine what it takes to build a CAN-based multiprocessor embedded system. Implementing a CAN solution requires application firmware, a CAN controller (CAN 2.0A or 2.0B), CAN transceivers to drive the bus signal, and, of course, the bus line. Many microcontrollers include an on-chip CAN controller. One course in this series describes the Application Programming Interface (API). Two key system-design issues are the distance the network must span and the required bit rate. CAN imposes a tradeoff between maximum bus length and bit rate because it requires that the wave front of the bit signal must have sufficient time to travel to the most remote network node and back again before the bit is sampled. This means that if the bus length is near the maximum for the bit rate used, the sampling point must be chosen with utmost care. However, this is always a good engineering approach. High-speed CAN 2.0B designs provide bidirectional serial communication at up to 1 Mbps at distances up to 40 meters. Low-speed CAN 2.0A designs offer communication at up to 135kbps at distances of up to 500 meters. The table shows different bus lengths and the corresponding maximum bit rate for CAN 2.0B systems.

