Bosch developed the Controller Area Network (CAN) in the early 1980s. In February 1986, it was officially introduced at the Society of Automotive Engineers (SAE). This marked the beginning of one of the most successful communication protocols to date. In the 1990s, CAN was standardized under ISO 11898, which not only defined the protocol itself but also the physical layer for high bit rates. Around the same time, the group CAN in Automation (CiA) was formed, playing a key role in specification development and knowledge sharing. This helped spread the protocol across many industries. Over time, CAN was enhanced with CAN FD in 2012 and CAN XL in 2018.
Today, CAN is used in many fields. Its primary domain is the automotive industry, where it connects various control units in a vehicle. It is crucial for engine management, braking systems, power steering, and even infotainment. Beyond cars, it is widely applied in industrial automation, enabling communication between sensors, actuators, and controllers in factories and robotics. In medical equipment, CAN networks are found in patient monitoring devices, imaging systems, and automated treatment machines. Building automation is another domain where CAN can manage lighting, HVAC, and security systems in smart buildings. Agriculture also benefits from CAN, especially in modern tractors and harvesters. The protocol is standard in maritime electronics for navigation and engine control, in aerospace for avionics systems, in railway applications, and even in renewable energy systems such as wind turbines and solar inverters.
Considering the rising interest in the interface in embedded applications, this wiki page aims to explain the main features of the protocol and provide you with comprehensive information on the topic. First, we cover the theory and understand the main concepts underlying the interface. Then, we will learn how to configure and utilize the CAN Interface in STM32 MCUs. We also focus on more advanced topics such as error handling, filtering, debugging, etc.
