Year 1886 is regarded as the beginning of modern automobile era. That is when German inventor Karl Benz created his Benz Patent-Motorwagen, a first automobile designed to be powered by internal combustion engine. It took more than 20 years and work of American entrepreneur and industrialist Henry Ford to make the cars widely available. He pioneered design of and built the first high volume automobile production plant, paving the way for global use of automobiles. Following years were marked by accelerated pace of development of all technologies used in cars. Aspects such as mechanical and driving characteristic, passenger comfort and safety, economy and visual design were introduced over time and contributed to overall quality of car use.
Important advance in automobile engine design was introduction of electronically controlled fuel injection (EFI). American corporation Bendix developed first commercially available fuel injector system named Electrojector. Over the years Chrysler, DeSoto, Dodge and Plymouth adopted the technology and produced models whose options included selection of the fuel intake system. However, this didn’t prove itself to be huge market success and the patents were sold to German car component manufacturer Bosch. Their own design, D-Jetronic was the first successfully marketed fuel injector and it debuted in 1967 in Volkswagen Type 3 model range, 1600 TE/LE displacement variants.
Over the years, systems including transmission control, power steering and battery management were developed and built into cars. This trend continued with introduction of safety management and passenger comfort systems. It became clear that communication between the systems would be beneficial for all of them, so many manufacturers started developing infrastructure for such communication such as CCD Bus, EIA-485 LAN and CAN Bus. Bosch started development of the CAN Bus in 1983 and publicly released it in 1986. Proposed architecture defined massage based communication without need for a host device. First vehicle to feature CAN-based multiplexed wiring system was BMW 8 Series. Until today, standard went to multiple iterations and the latest one is defined in ISO 11898-1:2015. There are extensions to the standards such as ISO 11898-2:2016, but they are not part of Bosch CAN 2.0 specification. They can be found at ISO standards website.
Illustration 1: CAN Bus node.
CAN Bus is a network of Electronic Control Units (ECU) referred to as network nodes. Each node can be anything ranging from simple I/O sensor component to fully fledged computer system. Requirements needed to qualify the node as a communication participant on a connected Bus is to provide support in form of transceiver module complying to ISO 11898 standard physical leaver specification (parts 2 and 3), to implement CAN controller which orchestrates data receive and send actions and a central processing unit which deals with received messages and prepares ones to be transmitted by the controller. Single node can receive any of the messages on the Bus and decides whether it is addressed to it. When not receiving, it can transmit any pending messages, provided that the Bus is free at that time.
If you are interested in the basics of operation logic on the Bus, this paragraph attempts answering that. Standard specifies two logical levels, ‘dominant’ and ‘recessive’. Implementations make sure to drive high wire toward supply voltage, which is usually 5V, and low wire toward ground voltage, usually 0V, for the ‘dominant’ logical level, characterized by high differential voltage. Conversely, ‘recessive’ level is assumed when none of the wires are driven toward any of the values, creating low differential voltage. Variants of the standard define High Speed Bus and Low Speed Bus, which differ in the specifics of voltage restrictions for logical levels and some other details. Multiple nodes can start sending simultaneously, but only one will finish sending in a given cycle. Who sends now is determined by the current bit emitted to the Bus. Out of all nodes that set Bus to any of the logical values, ‘dominant’ emitting one wins. Others, by listening constantly to the Bus, realize that conflict happened and stop the transmission. They will attempt retransmission 6 bit clocks after the ‘dominant’ message has been sent. This ensures real-time prioritization mechanism, important for vehicles operation.
Illustration 2. CAN Bus operation: high speed Bus (upper), low speed Bus (lower).
CAN Bus uses surpasses the automotive industry today. There are many higher level protocols developed on top of the CAN Bus. Some notable examples are ARINC 825 used in aviation, CANopen used in industrial automation, SAE J1939 used in trucks and busses, UAVCAN used in aerospace and robotics and many others.
One of the best known applications running on top of CAN Bus infrastructure is On-board Diagnostics or OBD. To date there were multiple iterations of the system, which branched out to accommodate passenger vehicles, trucks, heavy-duty machines and other. Latest variants of the system include OBDII, EOBD and HD OBD. Application exposes fault codes, identified by parameter IDs (PIDs), enabling faster troubleshooting of the problems inside vehicle. Set of generic parameters are defined within the system itself, but most powerful aspect of the OBD is the ability to define proprietary, manufacturer or even, vehicle specific codes. However, this raises issues when it comes to process of the decoding, since diagnostic utility needs access to all relevant trouble codes to reliably determine causes of the reported malfunction.
CAN Bus standard is widely adopted, although Bosch still holds patent rights to parts of the technology specification, charging fees to the products which use this technology. However, many parts of the specification do not fall under patenting rights policies around the world anymore. Although this is a circumstance can not be favored by the Bosch, it has a potential of driving accelerated CAN Bus development and still wider adoption and use, making it more versatile, stable and reliable.