Controller Area Network (CAN) data bus is a serial communications protocol that supports distributed real-time control with a high level of security.
Introduced in the 1980s by Robert Bosch GmbH, the CAN bus was first installed in Mercedes-Benz cars. To improve safety and comfort, many electronic control units (ECU), such as anti-lock braking, engine management, traction control, air conditioning control, central door locking and powered seat and mirror controls, were added in automobiles. To interconnect these ECUs and reduce large wiring looms, the CAN bus was implemented. It is capable of working reliably, even in harsh environments.
Because of its success in automobiles, CAN bus technology attracted the attention of manufacturers in other industries, including process control, textiles and medical instruments. Because of its versatility, Airbus opened the door for CAN bus in the superjumbo A380.
CAN bus operates at data rates of up to 1 Mb/sec for cable lengths less than 40 meters. If the cable length increases, the data rate typically falls to 125 Kb/sec for 500 meters (1,640 feet) in length. The data signal is normally transmitted on a twisted pair of wires (shielded or unshielded), but single wire and ground, optical fibre can also be used.
Controllers connected to the CAN bus can transmit data to the bus and receive data from the bus. Data collisions on the bus are avoided using the CSMA/AMP technique. Carrier Sense Multiple Access (CSMA) ensures that a terminal will transmit only when the bus is quiet (no carrier). If two or more terminals try to transmit at the same time, the bus arbitration logic connects the terminal with a higher-priority message (Arbitration based on Message Priority).
There is no theoretical limit to the number of terminals that can be connected to the bus, but it is normally limited to 32 to avoid data delay. Data encoding is NRZ with bit stuffing.
The bus can have one of the two logic values — dominant or recessive. During simultaneous transmission of dominant bit (logic0) and recessive bit (logic1), the resulting value will be dominant. For example, in case of a wired – AND implementation of the bus, the dominant level will be represented by a logical 0 and the recessive level would be represented by logical 1.
The CAN bus has different versions, including CAN 2.0A, CAN 2.0B and CAN Open. The International Standards Organization (ISO) has specified ISO 11898 (High speed CAN bus, up to 1Mb/sec) and ISO 11519 (Low speed CAN bus, 125Kb/sec).
CAN is a broadcast-type bus. A message transmitted by one line replaceable unit (LRU) is received by all the LRUs connected to the bus. Each LRU will have a filter to accept the message relevant to it. Data messages transmitted from any terminal on a CAN bus do not contain source address or destination address. A data message is transmitted as a frame.
In each frame, the message is labeled by an identifier that is unique throughout the network. All other LRUs on the network receive the message and each performs an acceptance test on the identifier to determine if the message and its content are relevant to that particular LRU.
As shown in Figure 1, three LRUs are connected to a CAN bus. Each one of them is capable of transmitting to the bus and can receive data from the bus. To prevent data collision, only one can transmit at any one time, but all can receive at the same time. Suppose LRU 1, a fuel quantity processor unit, is transmitting fuel quantity data (assume 11bit ID=6BC in hex) to the CAN bus. LRU 2, a water quantity summation unit, receives the data but filters it because it is not going to use this data. LRU 3, a fuel quantity indicator, receives the data transmitted by LRU 1 and uses it to display the fuel quantity.
CAN Bus Versus ARINC 429
Popular bus in the automobile industry, introduced in 1980s
ARINC 429 bus
Popular bus in the civil aircraft industry, introduced in 1980s
|Data bus cable
||Shielded or unshielded twisted pair — UTP or STP
||Shielded twisted pair (STP)
1Mb/sec — High speed
125 Kb/sec –– Low speed
100 Kb/sec — High speed
10-14 Kb/sec –– Low speed
||Data transmitted in frames consisting of message ID, data, CRC, ACK
||Data transmitted as a 32 bit word consisting of label, data, parity
||3 methods at message level, 2 methods at bit level
||Parity check only
||Bi directional bus. An LRU can transmit data to the bus and receive data from the bus.
||Uni-directional bus. An LRU can either transmit to the bus or receive data from the bus.
|Number of LRUs that can be connected to the bus
||Theoretically no limit to the number of nodes that can be connected to the bus, but normally limited to 32 in many applications. Specification does not indicate the number of nodes.
||On the bus you can have one transmitter and up to 20 receivers.
||Up to 64 bits
||Currently utilized on Airbus A380 for sending overhead panel data from flight deck to system LRUs in avionics compartment. Also used in other systems like fuel system, air conditioning system, electrical power, doors and slides control system to transmit data from one LRU to other LRUs.
||Used widely in civil aircraft for connecting radio system control panels in flight deck to radio system LRUs in avionics compartment; engine control interface to the aircraft systems.
The CAN bus data frame consists of seven different bit fields: Start of Frame; Arbitration; Control; Data; CRC; ACK; and End of Frame (see chart, page 38).
A CAN base frame message begins with the start bit called Start of Frame (SOF). It is a single "dominant" bit.
The Arbitration field, which consists of the identifier and the Remote Transmission Request (RTR) bit, is used to distinguish between the data frame and the data request frame called remote frame.
The Control field contains the Identifier Extension (IDE) bit, which is reserved bit r1 to distinguish between the CAN base frame (CAN2A); the CAN extended frame (CAN2B); and the Data Length Code (DLC), which is used to indicate the number of following data bytes in the Data field. If the message is used as a remote frame, the DLC contains the number of requested data bytes.
The Data field that follows is able to hold up to 8 data bytes. This represents the actual information content in the message.
The integrity of the frame is guaranteed by the following Cyclic Redundancy Check (CRC) sum.
The Acknowledge (ACK) field comprises the ACK slot and the ACK delimiter. In the ACK field, the transmitting station sends two recessive bits. A receiver, which has received a valid message correctly, reports this to the transmitter by sending a dominant bit during the ACK slot (it sends "ACK"). All stations having received the matching CRC sequence report this within the ACK slot by superscribing the "recessive bit" of the transmitter by a "dominant bit."
The ACK delimiter is the second bit of the ACK field and has to be a "recessive" bit. Correct messages are acknowledged by the receivers regardless of the result of the acceptance test.
The end of the message is indicated by an End of Frame (EOF) field consisting of 7 recessive bits.
The "Inter frame gap" is the minimum number of 3 bits separating consecutive messages. Unless another station starts transmitting, the bus remains idle after this. The identifier with the lowest numerical value has the highest priority. Any potential bus conflicts are resolved by bitwise arbitration in accordance with the wired AND mechanism, by which a dominant state (logic 0) overwrites a recessive state (logic 1).
Advantages of the CAN bus include:
There is no separate master bus controller. Any node, which has priority message, will be transmitting data to the bus.
Because of non-destructive bitwise arbitration, there is no need to retransmit the message; the priority message only will be on the bus.
There is no need for any node to wait for the token (like token ring network) to transmit the message.
There is no need to incorporate extensive collision detection circuits and random timers like the Ethernet because the bitwise arbitration technique makes sure that only one message is on the bus at any one time.
With only the maximum capacity of the bus as a speed-limiting factor, the CAN bus will not collapse or lock up.
As the bus length increases, the data rate falls. For all ISO11898 compliant devices running at 1Mbit/sec, the maximum possible bus length is specified as 40 meters. For longer bus lengths it is necessary to reduce the bit rate — 500 Kb/sec at 100 meters (328 feet); 250 Kb/sec at 200 meters (656 feet); and 125 Kb/sec at 500 meters (1,640 feet).
CAN Data Frame
||Bus should be quiet (no carrier) before any node can transmit
|Start of frame
||12 bits (11 bits for message identifier and 1 bit for remote transmission request RTR)-CAN2A 32 bits for CAN2B
||Indicates how long is data field shown by 6 bits (4 bits for data length code and 2 bits reserved, one of the reserved bits r1 used to identify base frame for CAN2A or extended frame for CAN2B)
||Indicates actual data, can be 0 to 8 bytes
||Cyclic Redundancy check-16 bits
||2 bits for acknowledgement
|End of frame
||7 bits indicate end of frame
|Inter frame gap
||3bits gap before next frame
In order to achieve the utmost safety of data transfer, powerful measures for detection, signaling and self-checking are implemented in every CAN node.
Error detection is done by:
Monitoring data transmitted on the bus. Every transmitter compares the bit level it transmitted with the bit level it received from the bus.
Cyclic redundancy check
Message frame check
Bit stuffing: Continuous 1s and 0s are avoided in the data that is transmitted to eliminate synchronization problems. After five consecutive equal bits, the transmitter inserts a stuff bit into the bit stream. This stuff bit has a complementary value, which is removed by the receivers.
To reduce the number of interconnecting wires from control panels in the flight deck to system computers in the avionics compartment, Airbus deployed CAN bus.
A typical overhead panel like an electrical power system control panel may have about 14 to 15 switches and system- related local indicator lights, each switch having at least six wires, totaling at least 90 wires running from the flight deck to the avionics compartment from just one control panel.
Airbus redesigned these control panels by connecting all the switches and indicators on a panel to a CAN bus controller, which is integral with the panel, and data is transmitted using only two wires. These are called integrated control panels (ICP). ICPs connect to Input/Output Modules (IOM) using CAN data buses.
From IOMs, data is transmitted to the Avionics Data Communication Network (ADCN) using the highly reliable Avionics Full Duplex Switched Ethernet bus (AFDX), and goes to system computer LRUs to perform the intended action. Many overhead panels are connected like this, excepting flight critical systems.
Data is carried by just two wires to the CAN bus, replacing 90 odd wires in older type of airplanes. This type of approach reduces the wiring, improves maintenance and reduces unnecessary aircraft weight.
Boeing followed a similar strategy to reduce wiring on the 777 in 1996, but the company did not use CAN bus. Boeing called it OPAS, for Overhead Panel ARINC 629 System. Overhead panels are connected to a controller in a card file, which converted switch data to an RS 485 bus. The bus controller converts this RS485 bus to the ARINC 629 bus. LRUs connected to 629 buses can get switch position data and also send annunciator discretes to the overhead panel.
Even though Airbus started utilizing CAN bus extensively in the A380 to reduce wiring, the popular ARINC 429 bus is still used on the superjumbo to interconnect radio system control panels (like VHF/HF) in the flight deck to LRUs in avionics compartments.
Currently, many of the radio communication and navigation system LRUs, including VHF/HF transceivers, ATC transponder, weather radar, ILS receivers, VOR receivers and ADF receivers, are manufactured with an interface to the ARINC 429 bus only. There is no radio communications and navigation system component manufactured to interface with CAN bus. Many electronic engine control units, which control powerplant systems, have ARINC 429 interfaces.
The ARINC 429 bus has a well defined data structure suitable for aircraft systems. It is easy to implement and maintain, and it has a simple transmission protocol suitable for many avionics systems.