Professional Documents
Culture Documents
A controller area network (CAN bus) is a vehicle bus light trucks sold in the United States since 1996, and the
standard designed to allow microcontrollers and devices EOBD standard has been mandatory for all petrol vehi-
to communicate with each other in applications without a cles sold in the European Union since 2001 and all diesel
host computer. It is a message-based protocol, designed vehicles since 2004.[5]
originally for multiplex electrical wiring within automo-
biles, but is also used in many other contexts.
Development of the CAN bus started in 1983 at Robert 1 Applications
Bosch GmbH.[1] The protocol was officially released in
1986 at the Society of Automotive Engineers (SAE) 1.1 Automotive
congress in Detroit, Michigan. The first CAN controller
chips, produced by Intel and Philips, came on the market The modern automobile may have as many as 70
in 1987. The 1988 BMW 8 Series was the first production electronic control units (ECU) for various subsystems.[6]
vehicle to feature a CAN-based multiplex wiring system. Typically the biggest processor is the engine control unit.
Bosch published several versions of the CAN specifica- Others are used for transmission, airbags, antilock brak-
tion and the latest is CAN 2.0 published in 1991. This ing/ABS, cruise control, electric power steering, audio
specification has two parts; part A is for the standard for- systems, power windows, doors, mirror adjustment, bat-
mat with an 11-bit identifier, and part B is for the ex- tery and recharging systems for hybrid/electric cars, etc.
tended format with a 29-bit identifier. A CAN device that Some of these form independent subsystems, but commu-
uses 11-bit identifiers is commonly called CAN 2.0A and nications among others are essential. A subsystem may
a CAN device that uses 29-bit identifiers is commonly need to control actuators or receive feedback from sen-
called CAN 2.0B. These standards are freely available sors. The CAN standard was devised to fill this need.
from Bosch along with other specifications and white pa-
pers.[2]
1.2 Cycling
In 1993 the International Organization for Standardiza-
tion released the CAN standard ISO 11898 which was The CAN bus protocol has been used on the Shimano Di2
later restructured into two parts; ISO 11898-1 which cov- electronic gear shift system for road bikes since 2009 and
ers the data link layer, and ISO 11898-2 which covers the is also used by the BionX system in its direct drive motor.
CAN physical layer for high-speed CAN. ISO 11898-3
was released later and covers the CAN physical layer for
low-speed, fault-tolerant CAN. The physical layer stan- 1.3 Industrial
dards ISO 11898-2 and ISO 11898-3 are not part of the
Bosch CAN 2.0 specification. These standards may be Today the CAN bus is also used as a fieldbus in general
purchased from the International Organization for Stan- automation environments, primarily due to the low cost
dardization (ISO).[3] of some CAN controllers and processors.
CAN in Automation (CiA) also published CAN stan-
dards; CAN Specification 2.0 part A and part B, but their 1.4 Entertainment
status is now obsolete (superseded by ISO 11898-1).[4]
Bosch is still active in extending the CAN standards. In Manufacturers including NISMO aim to use CAN bus
2012 Bosch released CAN FD 1.0 or CAN with Flexi- to recreate real-life racing laps in the videogame Gran
ble Data-Rate. This specification uses a different frame Turismo 6 using the game’s GPS Data Logger function,
format that allows a different data length as well as op- which would then allow players to race against real laps.[7]
tionally switching to a faster bit rate after the arbitration
is decided. CAN FD is compatible with existing CAN
2.0 networks so new CAN FD devices can coexist on the 2 Architecture
same network with existing CAN devices.
CAN bus is one of five protocols used in the on-board CAN is a multi-master serial bus standard for connecting
diagnostics (OBD)-II vehicle diagnostics standard. The Electronic Control Units [ECUs] also known as nodes.
OBD-II standard has been mandatory for all cars and Two or more nodes are required on the CAN network
1
2 2 ARCHITECTURE
A terminating bias circuit is power and ground pro- with two nodes with IDs of 15 (binary represen-
vided together with the data signaling in order to provide tation, 00000001111) and 16 (binary representation,
electrical bias and termination at each end of each bus 00000010000). If these two nodes transmit at the same
segment to suppress reflections. time, each will first transmit the start bit then transmit
the first six zeros of their ID with no arbitration decision
being made.
When the 8th bit is transmitted, the node with the ID of
3 Data transmission 16 transmits a 1 (recessive) for its ID, and the node with
the ID of 15 transmits a 0 (dominant) for its ID. When
CAN data transmission uses a lossless bit-wise arbitration this happens, the node with the ID of 16 knows it trans-
method of contention resolution. This arbitration method mitted a 1, but sees a 0 and realizes that there is a collision
requires all nodes on the CAN network to be synchro- and it lost arbitration. Node 16 stops transmitting which
nized to sample every bit on the CAN network at the same allows the node with ID of 15 to continue its transmission
time. This is why some call CAN synchronous. Unfor- without any loss of data. The node with the lowest ID will
tunately the term synchronous is imprecise since the data always win the arbitration, and therefore has the highest
is transmitted without a clock signal in an asynchronous priority.
format.
Bit rates up to 1 Mbit/s are possible at network lengths
The CAN specifications use the terms “dominant” bits below 40 m. Decreasing the bit rate allows longer net-
and “recessive” bits where dominant is a logical 0 (ac- work distances (e.g., 500 m at 125 kbit/s). The improved
tively driven to a voltage by the transmitter) and recessive CAN FD standard allows increasing the bit rate after ar-
is a logical 1 (passively returned to a voltage by a resis- bitration and can increase the speed of the data section
tor). The idle state is represented by the recessive level by a factor of up to eight of the arbitration bit rate.
(Logical 1). If one node transmits a dominant bit and
another node transmits a recessive bit then there is a col-
lision and the dominant bit “wins”. This means there is no
delay to the higher-priority message, and the node trans-
4 ID allocation
mitting the lower priority message automatically attempts
to re-transmit six bit clocks after the end of the dominant Message IDs must be unique on a single CAN bus, other-
message. This makes CAN very suitable as a real time wise two nodes would continue transmission beyond the
prioritized communications system. end of the arbitration field (ID) causing an error.
The exact voltages for a logical 0 or 1 depend on the phys- In the early 1990s, the choice of IDs for messages was
ical layer used, but the basic principle of CAN requires done simply on the basis of identifying the type of data
that each node listen to the data on the CAN network in- and the sending node; however, as the ID is also used
cluding the data that the transmitting node is transmit- as the message priority, this led to poor real-time per-
ting. If a logical 1 is transmitted by all transmitting nodes formance. In those scenarios, a low CAN bus utilization
at the same time, then a logical 1 is seen by all of the of circa 30% was commonly required to ensure that all
nodes, including both the transmitting node(s) and receiv- messages would meet their deadlines. However, if IDs
ing node(s). If a logical 0 is transmitted by all transmit- are instead determined based on the deadline of the mes-
ting node(s) at the same time, then a logical 0 is seen by all sage, the lower the numerical ID and hence the higher the
nodes. If a logical 0 is being transmitted by one or more message priority, then bus utilizations of 70 to 80% can
nodes, and a logical 1 is being transmitted by one or more typically be achieved before any message deadlines are
nodes, then a logical 0 is seen by all nodes including the missed.
node(s) transmitting the logical 1. When a node trans-
mits a logical 1 but sees a logical 0, it realizes that there
is a contention and it quits transmitting. By using this 5 Bit timing
process, any node that transmits a logical 1 when another
node transmits a logical 0 “drops out” or loses the arbi-
All nodes on the CAN network must operate at the same
tration. A node that loses arbitration re-queues its mes-
nominal bit rate, but noise, phase shifts, oscillator tol-
sage for later transmission and the CAN frame bit-stream
erance and oscillator drift mean that the nominal bit rate
continues without error until only one node is left trans-
may not be the same as the actual bit rate.[8] Since a sepa-
mitting. This means that the node that transmits the first
rate clock signal is not used, a means of synchronizing the
1 loses arbitration. Since the 11 (or 29 for CAN 2.0B)
nodes is necessary. Synchronization is important during
bit identifier is transmitted by all nodes at the start of the
arbitration since the nodes in arbitration must be able to
CAN frame, the node with the lowest identifier transmits
see both their transmitted data and the other nodes trans-
more zeros at the start of the frame, and that is the node
mitted data at the same time. Synchronization is also im-
that wins the arbitration or has the highest priority.
portant to ensure that variations in oscillator timing be-
For example, consider an 11-bit ID CAN network, tween nodes does not cause errors.
4 6 LAYERS
Synchronization starts with a hard synchronization on the layer. The transfer layer is responsible for bit timing and
first recessive to dominant transition after a period of bus synchronization, message framing, arbitration, acknowl-
idle (the start bit). Resynchronization occurs on every edgement, error detection and signalling, and fault con-
recessive to dominant transition during the frame. The finement. It performs:
CAN controller expects the transition to occur at a mul-
tiple of the nominal bit time. If the transition does not • Fault Confinement
occur at the exact time the controller expects it, the con-
troller adjusts the nominal bit time accordingly. • Error Detection
The adjustment is accomplished by dividing each bit into
• Message Validation
a number of time slices called quanta, and assigning some
number of quanta to each of the four segments within the • Acknowledgement
bit: synchronization, propagation, phase segment 1 and
phase segment 2. • Arbitration
previous bit Sync Prop Phase 1 Phase 2 next bit • Transfer Rate and Timing
Sample Point • Information Routing
Time Quanta
Physical layer
An example CAN bit timing with 10 time quanta per bit.
conditions. CAN-Hi
frame format (described in CAN 2.0 A and CAN 2.0 B), [1] It is physically possible for a value between 9–15 to be
and the extended frame format (only described by CAN transmitted in the 4-bit DLC, although the data is still lim-
2.0 B). The only difference between the two formats is ited to eight bytes. Certain controllers allow the transmis-
that the “CAN base frame” supports a length of 11 bits sion and/or reception of a DLC greater than eight, but the
for the identifier, and the “CAN extended frame” sup- actual data length is always limited to eight bytes.
ports a length of 29 bits for the identifier, made up of
the 11-bit identifier (“base identifier”) and an 18-bit ex- 7.1.2 Extended frame format
tension (“identifier extension”). The distinction between
CAN base frame format and CAN extended frame for- The frame format is as follows:
mat is made by using the IDE bit, which is transmitted as
dominant in case of an 11-bit frame, and transmitted as
[1] It is physically possible for a value between 9–15 to be
recessive in case of a 29-bit frame. CAN controllers that transmitted in the 4-bit DLC, although the data is still lim-
support extended frame format messages are also able to ited to eight bytes. Certain controllers allow the transmis-
send and receive messages in CAN base frame format. sion and/or reception of a DLC greater than eight, but the
All frames begin with a start-of-frame (SOF) bit that de- actual data length is always limited to eight bytes.
notes the start of the frame transmission.
CAN has four frame types: The two identifier fields (A & B) combine to form a 29-bit
identifier.
• Data frame: a frame containing node data for trans-
mission 7.2 Remote frame
• Remote frame: a frame requesting the transmission • Generally data transmission is performed on an au-
of a specific identifier tonomous basis with the data source node (e.g., a
sensor) sending out a Data Frame. It is also possi-
• Error frame: a frame transmitted by any node de- ble, however, for a destination node to request the
tecting an error data from the source by sending a Remote Frame.
• Overload frame: a frame to inject a delay between • There are two differences between a Data Frame and
data and/or remote frame a Remote Frame. Firstly the RTR-bit is transmitted
as a dominant bit in the Data Frame and secondly in
the Remote Frame there is no Data Field.
7.1 Data frame
i.e.,
The data frame is the only frame for actual data transmis-
sion. There are two message formats:
RTR = 0 ; DOMINANT in data frame
RTR = 1 ; RECESSIVE in remote frame
• Base frame format: with 11 identifier bits
• Extended frame format: with 29 identifier bits In the very unlikely event of a Data Frame and a Remote
Frame with the same identifier being transmitted at the
same time, the Data Frame wins arbitration due to the
The CAN standard requires the implementation must ac- dominant RTR bit following the identifier. In this way,
cept the base frame format and may accept the extended the node that transmitted the Remote Frame receives the
frame format, but must tolerate the extended frame for- desired data immediately.
mat.
11 4 8 15
CRC Delimiter
ID Ext. Bit
Reserved
CRC14
CRC13
CRC12
CRC11
CRC10
CRC9
CRC8
CRC7
CRC6
CRC5
CRC4
CRC3
CRC2
CRC1
CRC0
EOF6
EOF5
EOF4
EOF3
EOF2
EOF1
EOF0
ID10
IFS2
IFS1
IFS0
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
DL3
DL2
DL1
DL0
ID9
ID8
ID7
ID6
ID5
ID4
ID3
ID2
ID1
ID0
DATA
0000000101000000001000000010100001100000001011111111111 ROR FLAGS (6–12 dominant/recessive bits) con-
CAN
HI
CAN
tributed from different stations.
LO
The frame format is as follows: There are two types of error flags:
7
Active Error Flag six dominant bits – Transmitted by preceded by an interframe space and multiple overload
a node detecting an error on the network that is in frames are not separated by an interframe space. Inter-
error state “error active”. frame space contains the bit fields intermission and bus
idle, and suspend transmission for error passive stations,
Passive Error Flag six recessive bits – Transmitted by a which have been transmitter of the previous message.[9]
node detecting an active error frame on the network
that is in error state “error passive”.
10 Bit stuffing
7.4 Overload frame
Complete CAN Frame
Arbitration Field Control Data CRC Field End of Frame
Acknow. Delimiter
Acknow. Slot Bit
11 4 8 15
Requ. Remote
Start of Frame
CRC Delimiter
ID Ext. Bit
Reserved
CRC14
CRC13
CRC12
CRC11
CRC10
Flag and Overload Delimiter. There are two kinds of
CRC9
CRC8
CRC7
CRC6
CRC5
CRC4
CRC3
CRC2
CRC1
CRC0
EOF6
EOF5
EOF4
EOF3
EOF2
EOF1
EOF0
ID10
IFS2
IFS1
IFS0
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
DL3
DL2
DL1
DL0
ID9
ID8
ID7
ID6
ID5
ID4
ID3
ID2
ID1
ID0
DATA
0000000101000000001000000010100001100000001011111111111
overload conditions that can lead to the transmission of CAN
HI
Acknow. Delimiter
Acknow. Slot Bit
11 4 8 15
Requ. Remote
Start of Frame
CRC Delimiter
ID Ext. Bit
Reserved
CRC14
CRC13
CRC12
CRC11
CRC10
CRC9
CRC8
CRC7
CRC6
CRC5
CRC4
CRC3
CRC2
CRC1
CRC0
1. The internal conditions of a receiver, which requires
EOF6
EOF5
EOF4
EOF3
EOF2
EOF1
EOF0
ID10
IFS2
IFS1
IFS0
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
DL3
DL2
DL1
DL0
ID9
ID8
ID7
ID6
ID5
ID4
ID3
ID2
ID1
ID0
DATA
00000100101000001000100000100101000011000001001011111111111
a delay of the next data frame or remote frame. CAN
HI
CAN
LO
DLL with detailed specification of the logical link con- flow control and handling of messages larger than
trol (LLC) sublayer and medium access control (MAC) eight bytes.
sublayer.
• SAE J1939−11: 250 kbit/s, Shielded Twisted Pair
ISO 11898-2:2003 specifies the high-speed (transmis- (STP)
sion rates of up to 1 Mbit/s) medium access unit (MAU),
and some medium dependent interface (MDI) features • SAE J1939-15: 250 kbit/s, Unshielded Twisted Pair
(according to ISO 8802-3), which comprise the physical (UTP) (reduced layer)
layer of the controller area network. ISO 11898-2 uses a
two-wire balanced signalling scheme. It is the most used The SAE J1939 standard uses a
physical layer in car powertrain applications and indus- two-wire twisted pair, −11 has a
trial control networks. shield around the pair while −15
ISO 11898-3:2006 specifies low-speed, fault-tolerant, does not. SAE 1939 defines also
medium-dependent interface for setting up an inter- application data and is widely used
change of digital information between electronic control in heavy-duty (truck) and autobus
units of road vehicles equipped with the CAN at trans- industry as well as in agricultural &
mission rates above 40 kBit/s up to 125 kBit/s. construction equipment.
[7] http://www.gtplanet.net/
nismo-increases-gt6-gps-data-logger-functionality-and-track-count/
15 Licensing
[8] Understanding Microchip’s CAN Module Bit Timing
Bosch holds patents on the technology, and manufactur-
ers of CAN-compatible microprocessors pay license fees [9] “CAN BUS MESSAGE FRAMES – Overload Frame, In-
terframe Space”.
to Bosch, which are normally passed on to the customer in
the price of the chip. Manufacturers of products with cus- [10] “Controller Area Network (CAN)". Vector Group. Re-
tom ASICs or FPGAs containing CAN-compatible mod- trieved 25 Sep 2013.
ules need to pay a fee for the CAN Protocol License.[13]
[11] ISO 11898-1:2003 abtract
18 External links
• Wiki on CAN technology and products
19.2 Images
• File:9_pin_d-sub_connector_male_closeup.jpg Source: https://upload.wikimedia.org/wikipedia/commons/7/78/9_pin_d-sub_
connector_male_closeup.jpg License: Public domain Contributors: Photo taken by Mike1024. Original artist: User Mike1024
• File:CAN-Bus-frame_in_base_format_without_stuffbits.svg Source: https://upload.wikimedia.org/wikipedia/commons/5/5e/
CAN-Bus-frame_in_base_format_without_stuffbits.svg License: CC BY-SA 3.0 Contributors: ? Original artist: ?
• File:CAN-Bus_Elektrische_Zweidrahtleitung.svg Source: https://upload.wikimedia.org/wikipedia/commons/9/9e/CAN-Bus_
Elektrische_Zweidrahtleitung.svg License: CC-BY-SA-3.0 Contributors: Own work Original artist: Stefan-Xp
• File:CAN-Frame_mit_Pegeln_mit_Stuffbits.svg Source: https://upload.wikimedia.org/wikipedia/commons/9/97/CAN-Frame_mit_
Pegeln_mit_Stuffbits.svg License: CC BY-SA 3.0 Contributors: ? Original artist: ?
• File:CAN_Bit_Timing2.svg Source: https://upload.wikimedia.org/wikipedia/commons/8/8a/CAN_Bit_Timing2.svg License: Public do-
main Contributors: en:Image:CAN Bit Timing2.png Original artist: en:User:Rocketmagnet, traced by User:Stannered
• File:CAN_ISO11898-2_Network.png Source: https://upload.wikimedia.org/wikipedia/commons/b/bc/CAN_ISO11898-2_Network.
png License: CC BY-SA 4.0 Contributors: Own work Original artist: EE JRW
• File:CAN_ISO11898-3_Network.png Source: https://upload.wikimedia.org/wikipedia/commons/0/07/CAN_ISO11898-3_Network.
png License: CC BY-SA 4.0 Contributors: Own work Original artist: EE JRW
• File:CAN_Node.png Source: https://upload.wikimedia.org/wikipedia/commons/c/c0/CAN_Node.png License: CC BY-SA 4.0 Contrib-
utors: Own work Original artist: EE JRW
• File:Folder_Hexagonal_Icon.svg Source: https://upload.wikimedia.org/wikipedia/en/4/48/Folder_Hexagonal_Icon.svg License: Cc-by-
sa-3.0 Contributors: ? Original artist: ?