Professional Documents
Culture Documents
light trucks sold in the United States since 1996, and the
EOBD standard has been mandatory for all petrol vehicles sold in the European Union since 2001 and all diesel
vehicles since 2004.[5]
1 Applications
1.1 Automotive
The modern automobile may have as many as 70
electronic control units (ECU) for various subsystems.[6]
Typically the biggest processor is the engine control unit.
Others are used for transmission, airbags, antilock braking/ABS, cruise control, electric power steering, audio
systems, power windows, doors, mirror adjustment, battery and recharging systems for hybrid/electric cars, etc.
Some of these form independent subsystems, but communications among others are essential. A subsystem may
need to control actuators or receive feedback from sensors. The CAN standard was devised to ll this need.
Bosch published several versions of the CAN specication and the latest is CAN 2.0 published in 1991. This
specication has two parts; part A is for the standard format with an 11-bit identier, and part B is for the extended format with a 29-bit identier. A CAN device that
uses 11-bit identiers is commonly called CAN 2.0A and
a CAN device that uses 29-bit identiers is commonly
called CAN 2.0B. These standards are freely available
from Bosch along with other specications and white papers.[2]
1.2 Cycling
In 1993 the International Organization for Standardization released the CAN standard ISO 11898 which was
later restructured into two parts; ISO 11898-1 which covers the data link layer, and ISO 11898-2 which covers the
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 standards ISO 11898-2 and ISO 11898-3 are not part of the
Bosch CAN 2.0 specication. These standards may be
purchased from the International Organization for Standardization (ISO).[3]
1.3 Industrial
Today the CAN bus is also used as a eldbus in general
automation environments, primarily due to the low cost
of some CAN controllers and processors.
CAN in Automation (CiA) also published CAN standards; CAN Specication 2.0 part A and part B, but their
status is now obsolete (superseded by ISO 11898-1).[4]
1.4 Entertainment
Bosch is still active in extending the CAN standards. In
2012 Bosch released CAN FD 1.0 or CAN with Flexi- Manufacturers including NISMO aim to use CAN bus
ble Data-Rate. This specication uses a dierent frame to recreate real-life racing laps in the videogame Gran
format that allows a dierent data length as well as op- Turismo 6 using the games GPS Data Logger function,
tionally switching to a faster bit rate after the arbitration which would then allow players to race against real laps.[7]
is decided. CAN FD is compatible with existing CAN
2.0 networks so new CAN FD devices can coexist on the
same network with existing CAN devices.
2 Architecture
CAN bus is one of ve protocols used in the on-board
diagnostics (OBD)-II vehicle diagnostics standard. The CAN is a multi-master serial bus standard for connecting
OBD-II standard has been mandatory for all cars and Electronic Control Units [ECUs] also known as nodes.
1
2 ARCHITECTURE
CANbus Node
High speed CAN is usually used in automotive and in Transmitting: it converts the data stream from
dustrial applications where the bus runs from one end of
the CAN controller to CANbus levels.
the environment to the other. Fault tolerant CAN is often used where groups of nodes need to be connected to- Each node is able to send and receive messages, but not
gether.
simultaneously. A message or Frame consists primarily
The ISO specications require the bus be kept within a of the ID (identier), which represents the priority of the
minimum and maximum common mode bus voltage, but message, and up to eight data bytes. A CRC, acknowledge slot [ACK] and other overhead are also part of the
do not dene how to keep the bus within this range.
message. The improved CAN FD extends the length of
Each node requires a:
the data section to up to 64 bytes per frame. The message
is transmitted serially onto the bus using a non-return-to Central processing unit, microprocessor, or host zero (NRZ) format and may be received by all nodes.
processor
The devices that are connected by a CAN network are
The host processor decides what the received typically sensors, actuators, and other control devices.
3
These devices are connected to the bus through a host that wins the arbitration or has the highest priority.
processor, a CAN controller, and a CAN transceiver.
For example, consider an 11-bit ID CAN network,
A terminating bias circuit is power and ground provided with two nodes with IDs of 15 (binary representogether with the data signaling in 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 reections.
time, each will rst transmit the start bit then transmit
the rst six zeros of their ID with no arbitration decision
being made.
Data transmission
4 ID allocation
Message IDs must be unique on a single CAN bus, otherwise two nodes would continue transmission beyond the
end of the arbitration eld (ID) causing an error.
In the early 1990s, the choice of IDs for messages was
done simply on the basis of identifying the type of data
and the sending node; however, as the ID is also used
as the message priority, this led to poor real-time performance. In those scenarios, a low CAN bus utilization
of circa 30% was commonly required to ensure that all
messages would meet their deadlines. However, if IDs
are instead determined based on the deadline of the message, the lower the numerical ID and hence the higher the
message priority, then bus utilizations of 70 to 80% can
typically be achieved before any message deadlines are
missed.
5 Bit timing
All nodes on the CAN network must operate at the same
nominal bit rate, but noise, phase shifts, oscillator tolerance and oscillator drift mean that the nominal bit rate
may not be the same as the actual bit rate.[8] Since a separate clock signal is not used, a means of synchronizing the
nodes is necessary. Synchronization is important during
arbitration since the nodes in arbitration must be able to
see both their transmitted data and the other nodes transmitted data at the same time. Synchronization is also im-
LAYERS
portant to ensure that variations in oscillator timing be- Most of the CAN standard applies to the transfer layer.
tween nodes does not cause errors.
The transfer layer receives messages from the physiSynchronization starts with a hard synchronization on the cal layer and transmits those messages to the object
rst recessive to dominant transition after a period of bus layer. The transfer layer is responsible for bit timing and
idle (the start bit). Resynchronization occurs on every synchronization, message framing, arbitration, acknowlrecessive to dominant transition during the frame. The edgement, error detection and signalling, and fault conCAN controller expects the transition to occur at a mul- nement. It performs:
tiple of the nominal bit time. If the transition does not
occur at the exact time the controller expects it, the controller adjusts the nominal bit time accordingly.
The adjustment is accomplished by dividing each bit into
a number of time slices called quanta, and assigning some
number of quanta to each of the four segments within the
bit: synchronization, propagation, phase segment 1 and
phase segment 2.
Sync
Prop
Phase 1
Error Detection
Message Validation
Acknowledgement
Arbitration
Message Framing
Fault Connement
Phase 2
next bit
Sample Point
Time Quanta
Physical layer
An example CAN bit timing with 10 time quanta per bit.
SG
1
SG
2
SG
n
CAN-Hi
CAN-Low
facto mechanical conguration mentioned above, a supply rail is included to distribute power to each of the
transceiver nodes. The design provides a common supply
for all the transceivers. The actual voltage to be applied
by the bus and which nodes apply to it are applicationspecic and not formally specied. Common practice
node design provides each node with transceivers which
are optically isolated from their node host and derive a
5 V linearly regulated supply voltage for the transceivers
from the universal supply rail provided by the bus. This
usually allows operating margin on the supply rail sucient to allow interoperability across many node types.
Typical values of supply voltage on such networks are 7
to 30 V. However, the lack of a formal standard means
that system designers are responsible for supply rail compatibility.
ISO 118982 describes the electrical implementation
formed from a multi-dropped single-ended balanced line
conguration with resistor termination at each end of the
bus. In this conguration a dominant state is asserted by
one or more transmitters switching the CAN- to supply
0 V and (simultaneously) switching CAN+ to the +5 V
bus voltage thereby forming a current path through the
resistors that terminate the bus. As such the terminating
resistors form an essential component of the signalling
system and are included not just to limit wave reection
at high frequency.
During a recessive state the signal lines and resistor(s) remain in a high impedances state with respect to both rails.
Voltages on both CAN+ and CAN- tend (weakly) towards
rail voltage. A recessive state is only present on the bus
when none of the transmitters on the bus is asserting a
dominant state.
During a dominant state the signal lines and resistor(s)
move to a low impedance state with respect to the rails
so that current ows through the resistor. CAN+ voltage
tends to +5 V and CAN- tends to 0 V.
7 FRAMES
Frames
A CAN network can be congured to work with two different message (or frame) formats: the standard or base
frame format (described in CAN 2.0 A and CAN 2.0 B),
and the extended frame format (only described by CAN
2.0 B). The only dierence between the two formats is
that the CAN base frame supports a length of 11 bits
for the identier, and the CAN extended frame supports a length of 29 bits for the identier, made up of
the 11-bit identier (base identier) and an 18-bit extension (identier extension). The distinction between
CAN base frame format and CAN extended frame format is made by using the IDE bit, which is transmitted as
dominant in case of an 11-bit frame, and transmitted as
recessive in case of a 29-bit frame. CAN controllers that
support extended frame format messages are also able to
send and receive messages in CAN base frame format.
All frames begin with a start-of-frame (SOF) bit that denotes the start of the frame transmission.
CAN has four frame types:
Data frame: a frame containing node data for transmission
Remote frame: a frame requesting the transmission
of a specic identier
Error frame: a frame transmitted by any node detecting an error
Overload frame: a frame to inject a delay between
data and/or remote frame
7.1
Data frame
RTR = 0 ; DOMINANT in data frame
The data frame is the only frame for actual data transmission. There are two message formats:
DATA
EOF0
EOF1
IFS0
EOF2
IFS1
EOF3
IFS2
EOF4
CRC Delimiter
EOF5
CRC0
End of Frame
EOF6
CRC1
CRC2
CRC3
CRC4
CRC5
CRC6
CRC7
CRC8
CRC9
CRC10
CRC11
CRC12
CRC13
CRC14
DB1
DB0
DB2
DB4
DB3
DB7
DB6
DB5
DL1
DL0
DL2
DL3
Control
4
ID Ext. Bit
Reserved
ID1
ID0
Requ. Remote
ID2
ID4
ID3
ID7
ID6
ID5
ID8
Arbitration Field
11
ID9
Start of Frame
ID10
7.1.1
0000000101000000001000000010100001100000001011111111111
CAN
HI
CAN
LO
The rst eld is given by the superposition of ERROR FLAGS (612 dominant/recessive bits) contributed from dierent stations.
The following second eld is the ERROR DELIMITER (8 recessive bits).
There are two types of error ags:
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. Intererror state error active.
frame space contains the bit elds 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 stung
EOF0
EOF1
IFS0
EOF2
IFS1
IFS2
EOF3
EOF4
EOF5
CRC0
CRC Delimiter
End of Frame
EOF6
CRC1
CRC2
CRC3
CRC4
CRC5
CRC6
CRC7
CRC8
CRC9
CRC10
CRC11
CRC12
CRC13
CRC14
DB1
DB0
DB2
DB4
DB3
DB7
DB6
DB5
DL1
DL0
DL2
DL3
ID Ext. Bit
Reserved
ID1
ID0
Requ. Remote
ID2
ID4
ID3
ID7
ID6
ID5
ID8
ID9
Control
4
0000000101000000001000000010100001100000001011111111111
CAN
HI
DATA
IFS0
IFS1
IFS2
EOF0
EOF1
EOF2
EOF3
EOF4
EOF5
End of Frame
EOF6
CRC Delimiter
CRC0
CRC1
CRC2
CRC3
CRC4
CRC5
CRC6
CRC7
CRC8
CRC9
CRC Field
15
CRC10
CRC11
CRC12
CRC13
CRC14
DB1
DB0
DB2
DB7
DB6
DB5
DL1
DL0
DL2
DL3
DB4
DB3
Control
4
ID Ext. Bit
Reserved
ID2
ID4
ID3
ID6
ID5
ID7
Arbitration Field
11
ID1
ID0
Requ. Remote
CAN
LO
ID8
DATA
Arbitration Field
11
ID9
Start of Frame
ID10
Overload frame
Start of Frame
ID10
7.4
00000100101000001000100000100101000011000001001011111111111
CAN
HI
CAN
LO
The start of an overload frame due to case 1 is only allowed to be started at the rst bit time of an expected
intermission, whereas overload frames due to case 2 start
one bit after detecting the dominant bit. Overload Flag
consists of six dominant bits. The overall form corresponds to that of the active error ag. The overload ags
form destroys the xed form of the intermission eld. As
a consequence, all other stations also detect an overload
condition and on their part start transmission of an overload ag. Overload Delimiter consists of eight recessive
bits. The overload delimiter is of the same form as the
error delimiter.
ACK slot
11 Standards
ISO 11898 species physical and datalink layer (levels
1 and 2 of the ISO/OSI model) of serial communication technology called Controller Area Network that supports distributed real-time control and multiplexing for
use within road vehicles.[10]
There are several CAN physical layer and other standards:
Interframe spacing
Data frames and remote frames are separated from preceding frames by a bit eld called interframe space. Interframe space consists of at least three consecutive recessive (1) bits. Following that, if a dominant bit is detected, it will be regarded as the Start of frame bit of
the next frame. Overload frames and error frames are not
12
DLL with detailed specication of the logical link control (LLC) sublayer and medium access control (MAC)
sublayer.
ISO 11898-2:2003 species the high-speed (transmission rates of up to 1 Mbit/s) medium access unit (MAU),
and some medium dependent interface (MDI) features
(according to ISO 8802-3), which comprise the physical
layer of the controller area network. ISO 11898-2 uses a
two-wire balanced signalling scheme. It is the most used
physical layer in car powertrain applications and industrial control networks.
ISO 11898-3:2006 species low-speed, fault-tolerant,
medium-dependent interface for setting up an interchange of digital information between electronic control
units of road vehicles equipped with the CAN at transmission rates above 40 kBit/s up to 125 kBit/s.
ISO 11898-4:2004 species time-triggered communica SAE J2411: Single-wire CAN (SWC)
tion in the CAN (TTCAN). It is applicable to setting up
a time-triggered interchange of digital information between electronic control units (ECU) of road vehicles
equipped with CAN, and species the frame synchronisa- 12 Higher layer implementations
tion entity that coordinates the operation of both logical
link and media access controls in accordance with ISO As the CAN standard does not include tasks of applica11898-1, to provide the time-triggered communication tion layer protocols, such as ow control, device addressschedule.
ing, and transportation of data blocks larger than one mesISO 11898-5:2007 species the CAN physical layer for sage, and above all, application data, many implementatransmission rates up to 1Mbit/s for use within road ve- tions of higher layer protocols were created. Several are
hicles. It describes the medium access unit functions as standardised for a business area, although all can be exwell as some medium dependent interface features ac- tended by each manufacturer. For passenger cars, each
cording to ISO 8802-2. This represents an extension of manufacturer has its own standard. Among these impleISO 11898-2, dealing with new functionality for systems mentations are:
requiring low-power consumption features while there is
no active bus communication.
ARINC 825 (for the aviation industry)
ISO 11898-6:2013 species the CAN physical layer for
transmission rates up to 1Mbit/s for use within road vehicles. It describes the medium access unit functions as
well as some medium dependent interface features according to ISO 8802-2. This represents an extension of
ISO 11898-2 and ISO 11898-5, specifying a selective
wake-up mechanism using congurable CAN frames.
ISO 15765-4
ISO 11783 or ISOBUS (agriculture)
ISO 14229
SAE J1939 (heavy road vehicles)
ISO 11992 for heavy trailers
MilCAN
NMEA 2000 (marine industry)
9
RV-C (used for recreational vehicles)
Car audio
SmartCraft
Smart Distributed System (SDS)
13
Security
14
Development tools
17 References
[1] CAN History. CAN in Automation.
A CAN bus monitor is an analysis tool, often a combination of hardware and software, used during development
of hardware making use of the CAN bus.
15
Licensing
[5] Building Adapter for Vehicle On-board Diagnostic, obddiag.net, accessed 2009-09-09
[6] Comparison of Event-Triggered and Time-Triggered
Concepts with Regard to Distributed Control Systems A.
Albert, Robert Bosch GmbH Embedded World, 2004,
Nrnberg
[7] http://www.gtplanet.net/
nismo-increases-gt6-gps-data-logger-functionality-and-track-count/
[8] Understanding Microchips CAN Module Bit Timing
Bosch holds patents on the technology, and manufacturers of CAN-compatible microprocessors pay license fees [9] CAN BUS MESSAGE FRAMES Overload Frame, Interframe 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. Retom ASICs or FPGAs containing CAN-compatible modtrieved 25 Sep 2013.
ules need to pay a fee for the CAN Protocol License.[13]
[11] ISO 11898-1:2003 abtract
16
See also
Byteight
10
18
18
External links
EXTERNAL LINKS
11
19
19.1
CAN bus Source: https://en.wikipedia.org/wiki/CAN_bus?oldid=674830803 Contributors: Heron, PhilipMW, Michael Hardy, Nixdorf,
SGBailey, Mcarling, Ee79, Egil, Ahoerstemeier, Ronz, , CAkira, Colin Marquardt, Sertrel, Selket, Natevw, Finlay McWalter, Jni,
Robbot, Pingveno, Akadruid, Zigger, Fleminra, Niteowlneils, RapidAssistant, Aechols, Bobblewik, Chrisbolt, Vsmith, Gejigeji~enwiki,
Agl~enwiki, Harriv, CanisRufus, Meestaplu, Mpeg4codec, Enric Naval, Nsaa, Tpikonen, Guy Harris, Hopp, Corwin8, Wdfarmer, Cburnett, Suruena, Amorymeltzer, Versageek, Kinema, Woohookitty, Robert K S, Slgrandson, MC MasterChef, Pentawing, Vegaswikian, Allen
Moore, FlaBot, Jidan, Benlisquare, YurikBot, Deeptrivia, RussBot, Armistej, Arado, Shaddack, Grafen, Joel7687, Tony1, Robotics1, Vanished user 34958, StealthFox, Dpotop, Attilios, SmackBot, Sagie, Marco Guardigli, KnowledgeOfSelf, Sam8, SethML, Gilliam, Bluebot, EncMstr, MaxSem, Bsilverthorn, Thecoolestcow, Eliyahu S, JonHarder, Idonra, BIL, Kingdon, Drunken Pirate, OhioFred, Khazar,
IronGargoyle, Dicklyon, Ft1~enwiki, TastyPoutine, Russella, Kris iyer, Kvng, MisterTS, Wleizero, Dmorr, JohnCD, Quibik, Optimist
on the run, Thijs!bot, JacobBramley, Electron9, Mdem~enwiki, Iviney, Philippe, MStock, Stannered, AntiVandalBot, Widefox, Hidayat ullah, Ramtam, Skomorokh, IanOsgood, Wikipedia tang, Phosphoricx, Xoneca, Jredders, Benburleson, Nyq, TheAllSeeingEye,
Albramallo~enwiki, Gabriel Kielland, DerHexer, Calltech, MartinBot, STBot, Axlq, AGlossop, Stobor827, Katharineamy, Plupp01, Patpou77, JuergenKlueser, Inwind, Trailprice, TFolsom, AlnoktaBOT, Langerwolfgang, Rocketmagnet, Nono le petit robot~enwiki, Fxhomie,
Qxz, Invernizzi.l, Andy Dingley, Kramer-Wolf, Thunderbird2, Kbrose, SieBot, Accounting4Taste, Fahidka, Mc cappy, Radartooth3,
Alex.muller, OKBot, Pikamander2, Treekids, Denisarona, Asher196, Zer0431, SlackerMom, ClueBot, Wolfch, TinyMark, SuperHamster,
Simon04, Lakshmank85, Alexbot, Tyler, Arjayay, Vendeka, IamNotU, Ajn1, Rvoorhees, Johnny.cespedes, Automotive joe, Andre maier,
Ponchobonjo, Addbot, Meise, Mortense, Yoenit, Thomas888b, GyroMagician, Scientus, MrOllie, Lightbot, Xylome~enwiki, Luckas-bot,
Yobot, D rock naut, Thaiio, AnomieBOT, Hondrej, Littlebluenick, Xqbot, Notyetinspace, Marcelosr, Nasa-verve, Ondrejandrej, RibotBOT, Reply123, Alexandreag, Anapaulasag, SD5, Depictionimage, FrescoBot, Miceduan, Hobsonlane, Nojan, Plindemann, D'ohBot,
Biker Biker, Triplestop, Jschnur, Betsytimmer, RedBot, Plasticspork, Marsal20, Kdub432, RolfBly, Deagle AP, DASHBot, Thebigandroid, EmausBot, John of Reading, GoingBatty, Gregmelson, ZroBot, Wikfr, Sbmeirow, Nyarcel, MarkO555, Leeraphael~enwiki, Rocketrod1960, Rotmat, ClueBot NG, Rcpinto, Millermk, Widr, 2001:db8, BG19bot, Erniotti, Piguy101, Juggers2k, Hmpeople, Holyjoe722,
BattyBot, Tayaq, Aaron Nitro Danielson, John from Idegon, AbuJazar, EE JRW, Marius siuram, Waheed446, Passengerpigeon, Epicgenius, G2SPOT, DAALIYA, Catverine, Tc.guho, Liptakokgabora, Nyashinski, Lagoset, Shanpali8, Levai.peter, Ncooper.csm, KasparBot,
SabakuOnigiri and Anonymous: 398
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 domain 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 Contributors: 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-bysa-3.0 Contributors: ? Original artist: ?
19.3
Content license