Controller–area network (CAN or CAN-bus) is a balanced (differential) interface bus where complementary signals are sent over two wires, and the voltage difference between the two wires defines the logical state of the bus. The differential CAN receiver monitors this voltage difference and outputs the bus state with a single-ended output signal. The Bit Encoding used is: Non Return to Zero (NRZ) encoding (with bit-stuffing) for data communication on a differential two wire bus. The use of NRZ encoding ensures compact messages with a minimum number of transitions and high resilience to external disturbance. Development of the CAN-bus started originally in 1983 at Robert Bosch GmbH. The protocol was officially released in 1986 at the Society of Automotive Engineers (SAE) congress in Detroit, Michigan. The first CAN controller chips, produced by Intel and Philips, came on the market in 1987. Bosch published the CAN 2.0 specification in 1991.
The CAN Bus for Space Applications
CAN bus in its original form was a link layer protocol specification that made reference to the physical layer only in abstract terms. (IE as a medium that supported multiple access at the individual bit level by providing dominant and recessive states). In recent times the ISO11898-2 standard went some distance towards providing a candidate concrete class definition for the electrical part of the physical layer and is now widely adopted as a standard solution. The ISO11898 Part 1 standard specifies the Data Link Layer and Physical Signalling for CAN. Parts 2 and 3 (draft) of ISO11898 specify ‘high-speed’ and ‘low-speed’ Medium Access Units for CAN respectively. The protocol specifications describe the data-link layer and physical layer requirements for CAN. The remaining higher layer implementations have up until now been left to the designers’ discretion and as illustrated a number of commercial specifications have evolved at the application level.
To complement the existing ISO CAN standard a new ECSS CAN standard was developed and published in May 2015, namely the "ECSS-E-ST-50-15 - CANbus extension protocol". The points missing from the ISO CAN specification, as listed above, were described in the new ECSS standard, and in particular:
- The CAN bus physical layer specification for spacecraft applications,
- A generic higher layer protocol (CANopen) for use over CAN bus in spacecraft applications,
- Techniques for synchronous data transfers over CAN bus for real time control applications based on the (optional) CANopen protocol,
- Time distribution over CAN bus for spacecraft applications based on the CANopen protocol,
- CAN bus frame identifier assignments,
- CAN bus redundancy management.