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. Read the full article on ECN.