Since CAN was introduced in the 80’s, it has seen a tremendous evolution in terms of specifications and requirements. Its extended capabilities have led to its wide adoption across applications, from automotive, to industrial machine and factory automation. With this growth, complexity of implementation has also increased on two levels:
– CAN controller design has gone from a basic controller to a full CAN controller and, in some cases, an extended full CAN controller.
– CAN software stacks vary, from an automotive communication stack, to CANOpen, and DeviceNet.
Given that CAN is only a Node MCU single component within the automotive system, developers need to be able to implement it with as few challenges as possible so they can focus on system-level functionality rather than struggle with peripheral configuration.
This article will explore the CAN interface and discuss different ways of implementing, configuring, and tuning interfaces to facilitate simplified design. The Controller Area Network (CAN) was first introduced by Robert Bosch to address the growing complexity of vehicle functions and networks. In the early days of embedded systems development, modules contained a single MCU, performing a single or multiple simple functions such as reading a sensor level via an ADC and controlling a DC motor. As these functions became more complex, designers adopted distributed module architecture, implementing functions in 2 or more MCUs on the same PCB, and using I2C or SPI protocols to communicate between these functions. Using the same example above, a complex module would have the main MCU performing all system functions, diagnostics, and failsafe, while another MCU handles a BLDC motor control function. This was made possible with the wide availability of general purpose MCUs at a low cost.
In today’s vehicles, as functions become distributed within a vehicle rather than a module, the need for a high fault tolerance, inter module communication protocol led to the design and introduction of CAN in the automotive market.By the mid-nineties, CAN had seen wider adoption beyond automotive, with industrial controls with the introduction of DeviceNet and CANOpen protocols.