A Controller Area Network (CAN bus) is a robust
vehicle bus
A vehicle bus is a specialized internal communications network that interconnects components inside a vehicle (e.g., automobile, bus, train, industrial or agricultural vehicle, ship, or aircraft). In electronics, a bus is simply a device that con ...
standard designed to allow
microcontroller
A microcontroller (MCU for ''microcontroller unit'', often also MC, UC, or μC) is a small computer on a single VLSI integrated circuit (IC) chip. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable i ...
s and devices to communicate with each other's applications without a
host computer
A network host is a computer or other device connected to a computer network. A host may work as a Server (computing), server offering information resources, services, and applications to users or other hosts on the network. Hosts are assigned at ...
. It is a
message-based protocol, designed originally for
multiplex
Multiplex may refer to:
* Multiplex (automobile), a former American car make
* Multiplex (comics), a DC comic book supervillain
* Multiplex (company), a global contracting and development company
* Multiplex (assay), a biological assay which measu ...
electrical wiring within automobiles to save on copper, but it can also be used in many other contexts. For each device, the data in a frame is transmitted serially but in such a way that if more than one device transmits at the same time, the highest priority device can continue while the others back off. Frames are received by all devices, including by the transmitting device.
History
Development of the CAN
bus
A bus (contracted from omnibus, with variants multibus, motorbus, autobus, etc.) is a road vehicle that carries significantly more passengers than an average car or van. It is most commonly used in public transport, but is also in use for cha ...
started in 1983 at
Robert Bosch GmbH
Robert Bosch GmbH (; ), commonly known as Bosch and stylized as BOSCH, is a German multinational engineering and technology company headquartered in Gerlingen, Germany. The company was founded by Robert Bosch in Stuttgart in 1886. Bosch is 9 ...
.
The protocol was officially released in 1986 at the
Society of Automotive Engineers
SAE International, formerly named the Society of Automotive Engineers, is a United States-based, globally active professional association and standards developing organization for engineering professionals in various industries. SAE Internatio ...
(SAE) conference in
Detroit
Detroit ( , ; , ) is the largest city in the U.S. state of Michigan. It is also the largest U.S. city on the United States–Canada border, and the seat of government of Wayne County. The City of Detroit had a population of 639,111 at th ...
,
Michigan
Michigan () is a state in the Great Lakes region of the upper Midwestern United States. With a population of nearly 10.12 million and an area of nearly , Michigan is the 10th-largest state by population, the 11th-largest by area, and the ...
. The first CAN controller chips were introduced by
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 seri ...
in 1987, and shortly thereafter by
Philips
Koninklijke Philips N.V. (), commonly shortened to Philips, is a Dutch multinational conglomerate corporation that was founded in Eindhoven in 1891. Since 1997, it has been mostly headquartered in Amsterdam, though the Benelux headquarters i ...
.
Released in 1991, the
Mercedes-Benz W140
The Mercedes-Benz W140 is a series of flagship vehicles manufactured by Mercedes-Benz from 1991 to 1998 in sedan/saloon and coupe body styles and two wheelbase lengths (SE and SEL). Mercedes-Benz unveiled the W140 S-Class at Geneva Motor Show in ...
was the first production vehicle to feature a CAN-based multiplex wiring system.
Bosch published several versions of the CAN specification and the latest is CAN 2.0 published in 1991. This specification has two parts; part A is for the standard format with an 11-bit identifier, and part B is for the extended format with a 29-bit identifier. A CAN device that uses 11-bit identifiers is commonly called CAN 2.0A and a CAN device that uses 29-bit identifiers is commonly called CAN 2.0B. These standards are freely available from Bosch along with other specifications and
white papers
A white paper is a report or guide that informs readers concisely about a complex issue and presents the issuing body's philosophy on the matter. It is meant to help readers understand an issue, solve a problem, or make a decision. A white paper ...
.
In 1993, the
International Organization for Standardization
The International Organization for Standardization (ISO ) is an international standard development organization composed of representatives from the national standards organizations of member countries. Membership requirements are given in Ar ...
(ISO) released the CAN standard ISO 11898 which was later restructured into two parts; ISO 11898-1 which covers the
data link layer
The data link layer, or layer 2, is the second layer of the seven-layer OSI model of computer networking. This layer is the protocol layer that transfers data between nodes on a network segment across the physical layer. The data link layer p ...
, 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 specification. These standards may be purchased from the ISO.
Bosch is still active in extending the CAN standards. In 2012, Bosch released
CAN FD
CAN FD (Controller Area Network Flexible Data-Rate) is a data-communication protocol used for broadcasting sensor data and control information on 2 wire interconnections between different parts of electronic instrumentation and control system. Th ...
1.0 or CAN with Flexible Data-Rate. This specification uses a different frame format that allows a different data length as well as optionally 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 same network with existing CAN devices.
CAN bus is one of five protocols used in the
on-board diagnostics (OBD)-II vehicle diagnostics standard. The OBD-II standard has been mandatory for all cars and light trucks sold in the United States since 1996. The
EOBD EBD may refer to:
* on-board diagnostics, an automotive term referring to a vehicle's self-diagnostic
* end of business day, end of day
End of day (EOD), end of business (EOB), close of business (COB), close of play (COP) or end of play (EOP) ...
standard has been mandatory for all petrol vehicles sold in the European Union since 2001 and all diesel vehicles since 2004.
Applications
* Passenger vehicles, trucks, buses (combustion vehicles and electric vehicles)
* Agricultural equipment
* Electronic equipment for aviation and navigation
* Industrial automation and mechanical control
* Elevators, escalators
* Building automation
* Medical instruments and equipment
*
Pedelec
A pedelec (from pedal electric cycle) or EPAC (''electronically power assisted cycle''), is a type of low-powered electric bicycle where the rider's pedalling is ''assisted'' by a small electric motor. However, unlike some other types of e-bi ...
s
*
Model railway
Railway modelling (UK, Australia, New Zealand, and Ireland) or model railroading (US and Canada) is a hobby in which rail transport systems are modelled at a reduced scale.
The scale models include locomotives, rolling stock, streetcars, t ...
s/railroads
* Ships and other maritime applications
* Lighting control systems
* 3D Printers
Automotive
The modern automobile may have as many as 70
electronic control unit
An electronic control unit (ECU), also known as an electronic control module (ECM), is an embedded system in automotive electronics that controls one or more of the electrical systems or subsystems in a car or other motor vehicle.
Modern vehic ...
s (ECU) for various subsystems. Traditionally, the biggest processor is the
engine control unit. Others are used for Autonomous Driving, Advanced Driver Assistance System (ADAS),
transmission,
airbag
An airbag is a vehicle occupant-restraint system using a bag designed to inflate extremely quickly, then quickly deflate during a collision. It consists of the airbag cushion, a flexible fabric bag, an inflation module, and an impact sensor. Th ...
s,
antilock braking/ABS,
cruise control
Cruise control (also known as speed control, cruise command, autocruise, or tempomat) is a system that automatically controls the speed of a motor vehicle. The system is a servomechanism that takes over the throttle of the car to maintain a ste ...
, electric
power steering
A power steering is a mechanical device equipped on a motor vehicle that helps drivers steer the vehicle by reducing steering effort needed to turn the steering wheel, making it easier for the vehicle to turn or maneuver at lower speeds.
Hydraul ...
, audio systems,
power window
Power windows or electric windows are automobile windows which can be raised and lowered by pressing a button or switch, as opposed to using a crank handle.
History
Packard had introduced hydraulic window lifts (power windows) in fall of ...
s, 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 fill this need. One key advantage is that interconnection between different vehicle systems can allow a wide range of safety, economy and convenience features to be implemented using software alone - functionality which would add cost and complexity if such features were "hard wired" using traditional automotive electrics. Examples include:
*
Auto start/stop: Various sensor inputs from around the vehicle (speed sensors, steering angle, air conditioning on/off, engine temperature) are collated via the CAN bus to determine whether the engine can be shut down when stationary for improved fuel economy and emissions.
*
Electric park brake
An electronic parking brake (EPB), also known as an electric parking brake or electric park brake, is an electronically controlled parking brake, whereby the driver activates the holding mechanism with a button and the brake pads are electrically ...
s: The "hill hold" functionality takes input from the vehicle's tilt sensor (also used by the burglar alarm) and the road speed sensors (also used by the ABS, engine control and traction control) via the CAN bus to determine if the vehicle is stopped on an incline. Similarly, inputs from seat belt sensors (part of the airbag controls) are fed from the CAN bus to determine if the seat belts are fastened, so that the parking brake will automatically release upon moving off.
*
Parking assist systems: when the driver engages reverse gear, the transmission control unit can send a signal via the CAN bus to activate both the parking sensor system and the door control module for the passenger side door mirror to tilt downward to show the position of the curb. The CAN bus also takes inputs from the rain sensor to trigger the rear windscreen wiper when reversing.
* Auto
lane assist
In road-transport terminology, a lane departure warning system (LDWS) is a mechanism designed to warn the driver when the vehicle begins to move out of its lane (unless a turn signal is on in that direction) on freeways and arterial roads. These ...
/
collision avoidance systems: The inputs from the parking sensors are also used by the CAN bus to feed outside proximity data to driver assist systems such as Lane Departure warning, and more recently, these signals travel through the CAN bus to actuate
brake by wire
In the automotive industry, brake-by-wire technology is the ability to control brakes through electrical means. It can be designed to supplement ordinary service brakes or it can be a standalone brake system.
This technology is widely used on al ...
in active collision avoidance systems.
* Auto brake wiping: Input is taken from the rain sensor (used primarily for the automatic
windscreen wiper
A windscreen wiper, windshield wiper, wiper blade (American English), or simply wiper, is a device used to remove rain, snow, ice, washer fluid, water, or debris from a vehicle's front window. Almost all motor vehicles, including cars, truc ...
s) via the CAN bus to the ABS module to initiate an imperceptible application of the brakes whilst driving to clear moisture from the brake rotors. Some high performance
Audi
Audi AG () is a German automotive manufacturer of luxury vehicles headquartered in Ingolstadt, Bavaria, Germany. As a subsidiary of its parent company, the Volkswagen Group, Audi produces vehicles in nine production facilities worldwide.
Th ...
and
BMW models incorporate this feature.
* Sensors can be placed at the most suitable place, and their data used by several ECUs. For example, outdoor temperature sensors (traditionally placed in the front) can be placed in the outside mirrors, avoiding heating by the engine, and data used by the engine, the climate control, and the driver display.
In recent years, the
LIN bus
LIN (Local Interconnect Network) is a serial network protocol used for communication between components in vehicles. It is a single wire, serial network protocol that supports communications up to 19.2 Kbit/s at a bus length of 40 meters. The need ...
(Local Interconnect Network) standard has been introduced to complement CAN for non-critical subsystems such as air-conditioning and infotainment, where data transmission speed and reliability are less critical.
Other
* The CAN bus protocol has been used on the
Shimano
, originally and later , is a Japanese multinational manufacturing company for cycling components, fishing tackles and rowing equipment, who also produced golf supplies until 2005 and snowboarding gear until 2008. Named after founder Shozabu ...
DI2 electronic gear shift system for road bicycles since 2009, and is also used by the Ansmann and
BionX
BionX was a Canadian maker of electric motors for bicycles as well as bicycle retrofit kits, operating from 1998-2018, originally named EPS (Electric Propulsion Systemsfieldbus
Fieldbus is the name of a family of industrial computer networks used for real-time distributed control. Fieldbus profiles are standardized by the
International Electrotechnical Commission (IEC) as IEC 61784/61158.
A complex automated industrial ...
in general automation environments, primarily due to the low cost of some CAN controllers and processors.
* Manufacturers including
NISMO
, abbreviated as Nismo, is a division of Nissan Motorsports & Customizing focused in motorsport and performance-oriented car models for Nissan. Nismo was initially a company, , formed in 1984 as a result of a merger of two motorsport departmen ...
aim to use CAN bus data to recreate real-life racing laps in the videogame ''
Gran Turismo 6
''Gran Turismo 6'' is a racing video game developed by Polyphony Digital and published by Sony Computer Entertainment for the PlayStation 3. It is the sixth major release and twelfth game overall in the '' Gran Turismo'' video game series. It w ...
'' using the game's GPS Data Logger function, which would then allow players to race against real laps.
*
Johns Hopkins University
Johns Hopkins University (Johns Hopkins, Hopkins, or JHU) is a private university, private research university in Baltimore, Maryland. Founded in 1876, Johns Hopkins is the oldest research university in the United States and in the western hem ...
's
Applied Physics Laboratory
The Johns Hopkins University Applied Physics Laboratory (Applied Physics Laboratory, or APL) is a not-for-profit University Affiliated Research Center, university-affiliated research center (UARC) in Howard County, Maryland. It is affiliated w ...
's Modular Prosthetic Limb (MPL) uses a local CAN bus to facilitate communication between servos and microcontrollers in the prosthetic arm.
* Teams in the
FIRST Robotics Competition
FIRST Robotics Competition (FRC) is an international high school robotics competition. Each year, teams of high school students, coaches, and mentors work during a six-week period to build robots capable of competing in that year's game that weig ...
widely use CAN bus to communicate between the
roboRIO and other robot control modules.
* The CueScript
teleprompter
A teleprompter, also known as an autocue, is a display device that prompts the person speaking with an electronic visual text of a speech or script.
Using a teleprompter is similar to using cue cards. The screen is in front of, and usually be ...
range uses CAN bus protocol over coaxial cable, to connect its CSSC – Desktop Scroll Control to the main unit
* The CAN bus protocol is widely implemented due to its fault tolerance in electrically noisy environments such as model railroad sensor feedback systems by major commercial
Digital Command Control
Digital Command Control (DCC) is a standard for a system to operate model railways digitally. When equipped with Digital Command Control, locomotives on the same electrical section of track can be independently controlled.
The DCC protocol is de ...
system manufacturers and various open source digital model railroad control projects.
*
Shearwater Research have implemented the protocol as DiveCAN to use integrating their dive computers into
Diving rebreather
A Diving rebreather is an underwater breathing apparatus that absorbs the carbon dioxide of a diver's exhaled breath to permit the rebreathing (recycling) of the substantially unused oxygen content, and unused inert content when present, of ea ...
s from various manufacturers.
Architecture
Physical organization
CAN is a
multi-master serial bus
In telecommunication and data transmission, serial communication is the process of sending data one bit at a time, sequentially, over a communication channel or computer bus. This is in contrast to parallel communication, where several bits are ...
standard for connecting electronic control units (ECUs) also known as nodes (
automotive electronics is a major application domain). Two or more nodes are required on the CAN network to communicate. A node may interface to devices from simple digital logic e.g.
PLD, via FPGA up to an embedded computer running extensive software. Such a computer may also be a gateway allowing a general purpose computer (like a laptop) to communicate over a USB or Ethernet port to the devices on a CAN network.
All nodes are connected to each other through a physically conventional two wire bus. The wires are a twisted pair with a 120 Ω (nominal)
characteristic impedance
The characteristic impedance or surge impedance (usually written Z0) of a uniform transmission line is the ratio of the amplitudes of voltage and current of a single wave propagating along the line; that is, a wave travelling in one direction in ...
.
This bus uses
differential wired-AND
A wired logic connection is a logic gate that implements boolean algebra (logic) using only passive components such as diodes and resistors. A wired logic connection can create an AND gate, AND or an OR gate. The limitations are the inability t ...
signals. Two signals, CAN high (CANH) and CAN low (CANL) are either driven to a "dominant" state with CANH > CANL, or not driven and pulled by passive resistors to a "recessive" state with CANH ≤ CANL. A 0 data bit encodes a dominant state, while a 1 data bit encodes a recessive state, supporting a wired-AND convention, which gives nodes with lower ID numbers priority on the bus.
ISO 11898-2, also called high-speed CAN (bit speeds up to 1 Mbit/s on CAN, 5 Mbit/s on CAN-FD), uses a linear bus terminated at each end with 120 Ω resistors.
High-speed CAN signaling drives the CANH wire towards 3.5 V and the CANL wire towards 1.5 V when any device is transmitting a dominant (0), while if no device is transmitting a dominant, the terminating resistors passively return the two wires to the recessive (1) state with a nominal differential voltage of 0 V. (Receivers consider any differential voltage of less than 0.5 V to be recessive.) The dominant differential voltage is a nominal 2 V. The dominant common mode voltage (CANH+CANL)/2 must be within 1.5 to 3.5 V of common, while the recessive common mode voltage must be within ±12 of common.
ISO 11898-3, also called low-speed or fault-tolerant CAN (up to 125 kbit/s), uses a linear bus, star bus or multiple star buses connected by a linear bus and is terminated at each node by a fraction of the overall termination resistance. The overall termination resistance should be close to, but not less than, 100 Ω.
Low-speed fault-tolerant CAN signaling operates similarly to high-speed CAN, but with larger voltage swings. The dominant state is transmitted by driving CANH towards the device power supply voltage (5 V or 3.3 V), and CANL towards 0 V when transmitting a dominant (0), while the termination resistors pull the bus to a recessive state with CANH at 0 V and CANL at 5 V. This allows a simpler receiver which just considers the sign of CANH−CANL. Both wires must be able to handle −27 to +40 V without damage.
Electrical properties
With both high-speed and low-speed CAN, the speed of the transition is faster when a recessive to dominant transition occurs since the CAN wires are being actively driven. The speed of the dominant to recessive transition depends primarily on the length of the CAN network and the capacitance of the wire used.
High-speed CAN is usually used in automotive and industrial applications where the bus runs from one end of the environment to the other. Fault-tolerant CAN is often used where groups of nodes need to be connected together.
The specifications require the bus be kept within a minimum and maximum common mode bus voltage, but do not define how to keep the bus within this range.
The CAN bus must be terminated. The termination resistors are needed to suppress
reflections as well as return the bus to its recessive or idle state.
High-speed CAN uses a 120 Ω resistor at each end of a linear bus. Low-speed CAN uses resistors at each node. Other types of terminations may be used such as the Terminating Bias Circuit defined in
ISO11783.
A provides
power
Power most often refers to:
* Power (physics), meaning "rate of doing work"
** Engine power, the power put out by an engine
** Electric power
* Power (social and political), the ability to influence people or events
** Abusive power
Power may a ...
and ground in addition to the CAN signaling on a four-wire cable. This provides automatic
electrical bias and
termination
Termination may refer to:
Science
*Termination (geomorphology), the period of time of relatively rapid change from cold, glacial conditions to warm interglacial condition
*Termination factor, in genetics, part of the process of transcribing RNA ...
at each end of each
bus segment. An ISO11783 network is designed for hot plug-in and removal of bus segments and ECUs.
Nodes
Each node requires a
*
Central processing unit
A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, an ...
, microprocessor, or host processor
**The host processor decides what the received messages mean and what messages it wants to transmit.
**Sensors, actuators and control devices can be connected to the host processor.
*CAN controller; often an integral part of the microcontroller
**Receiving: the CAN controller stores the received serial bits from the bus until an entire message is available, which can then be fetched by the host processor (usually by the CAN controller triggering an interrupt).
**Sending: the host processor sends the transmit message(s) to a CAN controller, which transmits the bits serially onto the bus when the bus is free.
*
Transceiver
In radio communication, a transceiver is an electronic device which is a combination of a radio ''trans''mitter and a re''ceiver'', hence the name. It can both transmit and receive radio waves using an antenna, for communication purposes. The ...
Defined by ISO 11898-2/3 Medium Access Unit
AUstandards
**Receiving: it converts the data stream from CAN bus levels to levels that the CAN controller uses. It usually has protective circuitry to protect the CAN controller.
**Transmitting: it converts the data stream from the CAN controller to CAN bus levels.
Each node is able to send and receive messages, but not simultaneously. A message or
Frame
A frame is often a structural system that supports other components of a physical construction and/or steel frame that limits the construction's extent.
Frame and FRAME may also refer to:
Physical objects
In building construction
*Framing (con ...
consists primarily of the ID (identifier), which represents the priority of the message, and up to eight data bytes. A CRC, acknowledge slot
CKand other overhead are also part of the message. The improved CAN FD extends the length of the data section to up to 64 bytes per frame. The message is transmitted serially onto the bus using a
non-return-to-zero
In telecommunication, a non-return-to-zero (NRZ) line code is a binary code in which ones are represented by one significant condition, usually a positive voltage, while zeros are represented by some other significant condition, usually a negati ...
(NRZ) format and may be received by all nodes.
The devices that are connected by a CAN network are typically
sensors
A sensor is a device that produces an output signal for the purpose of sensing a physical phenomenon.
In the broadest definition, a sensor is a device, module, machine, or subsystem that detects events or changes in its environment and sends ...
,
actuators
An actuator is a component of a machine that is responsible for moving and controlling a mechanism or system, for example by opening a valve. In simple terms, it is a "mover".
An actuator requires a control device (controlled by control signal) an ...
, and other control devices. These devices are connected to the bus through a
host processor, a CAN controller, and a CAN transceiver.
Data transmission
CAN data transmission uses a lossless bitwise arbitration method of contention resolution. This arbitration method requires all nodes on the CAN network to be synchronized to sample every bit on the CAN network at the same time. This is why some call CAN synchronous. Unfortunately the term synchronous is imprecise since the data is transmitted in an asynchronous format, namely without a clock signal.
The CAN specifications use the terms "dominant" bits and "recessive" bits, where dominant is a logical 0 (actively driven to a voltage by the transmitter) and recessive is a logical 1 (passively returned to a voltage by a resistor). The idle state is represented by the recessive level (Logical 1). If one node transmits a dominant bit and another node transmits a recessive bit then there is a collision and the dominant bit "wins". This means there is no delay to the higher-priority message, and the node transmitting the lower priority message automatically attempts to re-transmit six bit clocks after the end of the dominant message. This makes CAN very suitable as a real-time prioritized communications system.
The exact voltages for a logical 0 or 1 depend on the physical layer used, but the basic principle of CAN requires that each node listen to the data on the CAN network including the transmitting node(s) itself (themselves). If a logical 1 is transmitted by all transmitting nodes at the same time, then a logical 1 is seen by all of the nodes, including both the transmitting node(s) and receiving node(s). If a logical 0 is transmitted by all transmitting node(s) at the same time, then a logical 0 is seen by all nodes. If a logical 0 is being transmitted by one or more nodes, and a logical 1 is being transmitted by one or more nodes, then a logical 0 is seen by all nodes including the node(s) transmitting the logical 1. When a node transmits a logical 1 but sees a logical 0, it realizes that there is a contention and it quits transmitting. By using this process, any node that transmits a logical 1 when another node transmits a logical 0 "drops out" or loses the arbitration. A node that loses arbitration re-queues its message for later transmission and the CAN frame bit-stream continues without error until only one node is left transmitting. This means that the node that transmits the first 1 loses arbitration. Since the 11 (or 29 for CAN 2.0B) bit identifier is transmitted by all nodes at the start of the CAN frame, the node with the lowest identifier transmits more zeros at the start of the frame, and that is the node that wins the arbitration or has the highest priority.
For example, consider an 11-bit ID CAN network, with two nodes with IDs of 15 (binary representation, 00000001111) and 16 (binary representation, 00000010000). If these two nodes transmit at the same 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 7th ID bit is transmitted, the node with the ID of 16 transmits a 1 (recessive) for its ID, and the node with the ID of 15 transmits a 0 (dominant) for its ID. When this happens, the node with the ID of 16 knows it transmitted a 1, but sees a 0 and realizes that there is a collision and it lost arbitration. Node 16 stops transmitting which allows the node with ID of 15 to continue its transmission without any loss of data. The node with the lowest ID will always win the arbitration, and therefore has the highest priority.
Bit rate
In telecommunications and computing, bit rate (bitrate or as a variable ''R'') is the number of bits that are conveyed or processed per unit of time.
The bit rate is expressed in the unit bit per second (symbol: bit/s), often in conjunction w ...
s up to 1 Mbit/s are possible at network lengths below 40 m. Decreasing the bit rate allows longer network distances (e.g.,500 m at 125 kbit/s). The improved CAN FD standard allows increasing the bit rate after arbitration and can increase the speed of the data section by a factor of up to ten or more of the arbitration bit rate.
ID allocation
Message IDs must be unique on a single CAN bus, otherwise two nodes would continue transmission beyond the end of the arbitration field (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 use of around 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 use of 70 to 80% can typically be achieved before any message deadlines are missed
.
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 actual bit rate might not be the nominal bit rate. 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 important to ensure that variations in oscillator timing between nodes do not cause errors.
Synchronization starts with a hard synchronization on the first recessive to dominant transition after a period of bus idle (the start bit). Resynchronization occurs on every recessive to dominant transition during the frame. The CAN controller expects the transition to occur at a multiple 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.
The number of quanta the bit is divided into can vary by controller, and the number of quanta assigned to each segment can be varied depending on bit rate and network conditions.
A transition that occurs before or after it is expected causes the controller to calculate the time difference and lengthen phase segment 1 or shorten phase segment 2 by this time. This effectively adjusts the timing of the receiver to the transmitter to synchronize them. This resynchronization process is done continuously at every recessive to dominant transition to ensure the transmitter and receiver stay in sync. Continuously resynchronizing reduces errors induced by noise, and allows a receiving node that was synchronized to a node which lost arbitration to resynchronize to the node which won arbitration.
Layers
The CAN protocol, like many networking protocols, can be decomposed into the following
abstraction layers:
; Application layer
; Object layer
* Message filtering
* Message and status handling
; Transfer layer
Most of the CAN standard applies to the transfer layer. The transfer layer receives messages from the physical layer and transmits those messages to the object layer. The transfer layer is responsible for bit timing and synchronization, message framing, arbitration, acknowledgement, error detection and signaling, and fault confinement. It performs:
* Fault confinement
* Error detection
* Message validation
* Acknowledgement
* Arbitration
* Message framing
* Transfer rate and timing
* Information routing
; Physical layer
CAN bus (
ISO 11898
A Controller Area Network (CAN bus) is a robust vehicle bus standard designed to allow microcontrollers and devices to communicate with each other's applications without a host computer. It is a message-based protocol, designed originally for ...
-1:2003) originally specified the
link layer protocol with only abstract requirements for the physical layer, e.g., asserting the use of a medium with multiple-access at the bit level through the use of dominant and recessive states. The electrical aspects of the physical layer (voltage, current, number of conductors) were specified in
ISO 11898
A Controller Area Network (CAN bus) is a robust vehicle bus standard designed to allow microcontrollers and devices to communicate with each other's applications without a host computer. It is a message-based protocol, designed originally for ...
-2:2003, which is now widely accepted. However, the mechanical aspects of the physical layer (connector type and number, colors, labels, pin-outs) have yet to be formally specified. As a result, an automotive ECU will typically have a particular—often custom—connector with various sorts of cables, of which two are the CAN bus lines. Nonetheless, several de facto standards for mechanical implementation have emerged, the most common being the
9-pin D-sub type male connector with the following pin-out:
* pin 2: CAN-Low (CAN−)
* pin 3: GND (ground)
* pin 7: CAN-High (CAN+)
* pin 9: CAN V+ (power)
This ''
de facto
''De facto'' ( ; , "in fact") describes practices that exist in reality, whether or not they are officially recognized by laws or other formal norms. It is commonly used to refer to what happens in practice, in contrast with ''de jure'' ("by la ...
'' mechanical standard for CAN could be implemented with the node having both male and female 9-pin D-sub connectors electrically wired to each other in parallel within the node. Bus power is fed to a node's male connector and the bus draws power from the node's female connector. This follows the electrical engineering convention that power sources are terminated at female connectors. Adoption of this standard avoids the need to fabricate custom splitters to connect two sets of bus wires to a single D connector at each node. Such nonstandard (custom) wire harnesses (splitters) that join conductors outside the node reduce bus reliability, eliminate cable interchangeability, reduce compatibility of wiring harnesses, and increase cost.
The absence of a complete physical layer specification (mechanical in addition to electrical) freed the CAN bus specification from the constraints and complexity of physical implementation. However it left CAN bus implementations open to interoperability issues due to mechanical incompatibility. In order to improve interoperability, many vehicle makers have generated specifications describing a set of allowed CAN transceivers in combination with requirements on the parasitic capacitance on the line. The allowed parasitic capacitance includes both capacitors as well as ESD protection (ESD against ISO 7637-3). In addition to parasitic capacitance, 12V and 24V systems do not have the same requirements in terms of line maximum voltage. Indeed, during jump start events light vehicles lines can go up to 24V while truck systems can go as high as 36V. New solutions are coming on the market allowing to use same component for CAN as well as
CAN FD
CAN FD (Controller Area Network Flexible Data-Rate) is a data-communication protocol used for broadcasting sensor data and control information on 2 wire interconnections between different parts of electronic instrumentation and control system. Th ...
(see ).
Noise immunity on
ISO 11898
A Controller Area Network (CAN bus) is a robust vehicle bus standard designed to allow microcontrollers and devices to communicate with each other's applications without a host computer. It is a message-based protocol, designed originally for ...
-2:2003 is achieved by maintaining the differential impedance of the bus at a low level with low-value resistors (120 ohms) at each end of the bus. However, when dormant, a low-impedance bus such as CAN draws more current (and power) than other voltage-based signaling busses. On CAN bus systems,
balanced line operation, where current in one signal line is exactly balanced by current in the opposite direction in the other signal provides an independent, stable 0 V reference for the receivers. Best practice determines that CAN bus balanced pair signals be carried in
twisted pair
Twisted pair cabling is a type of wiring used for communications in which two conductors of a single circuit are twisted together for the purposes of improving electromagnetic compatibility. Compared to a single conductor or an untwisted ba ...
wires in a shielded cable to minimize RF emission and reduce interference susceptibility in the already noisy RF environment of an automobile.
ISO 11898
A Controller Area Network (CAN bus) is a robust vehicle bus standard designed to allow microcontrollers and devices to communicate with each other's applications without a host computer. It is a message-based protocol, designed originally for ...
-2 provides some immunity to common mode voltage between transmitter and receiver by having a 0 V rail running along the bus to maintain a high degree of voltage association between the nodes. Also, in the de facto mechanical configuration 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 application-specific and not formally specified. 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 sufficient 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 11898
A Controller Area Network (CAN bus) is a robust vehicle bus standard designed to allow microcontrollers and devices to communicate with each other's applications without a host computer. It is a message-based protocol, designed originally for ...
-2 describes the electrical implementation formed from a multi-dropped single-ended balanced line configuration with resistor termination at each end of the bus.
In this configuration 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 reflection 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 a voltage midway between the rails. A recessive state is present on the bus only 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 flows through the resistor. CAN+ voltage tends to +5 V and CAN− tends to 0 V.
Irrespective of signal state the signal lines are always in low impedance state with respect to one another by virtue of the terminating resistors at the end of the bus.
This signalling strategy differs significantly from other balanced line transmission technologies such as
RS-422
RS-422, also known as TIA/EIA-422, is a technical standard originated by the Electronic Industries Alliance that specifies electrical characteristics of a digital signaling circuit. It was meant to be the foundation of a suite of standards that ...
/3,
RS-485
RS-485, also known as TIA-485(-A) or EIA-485, is a standard defining the electrical characteristics of drivers and receivers for use in serial communications systems. Electrical signaling is balanced, and multipoint systems are supported. The s ...
, etc. which employ differential line drivers/ receivers and use a signalling system based on the differential mode voltage of the balanced line crossing a notional 0 V. Multiple access on such systems normally relies on the media supporting three states (active high, active low and inactive tri-state) and is dealt with in the time domain. Multiple access on CAN bus is achieved by the electrical logic of the system supporting just two states that are conceptually analogous to a ‘wired AND’ network.
Frames
A CAN network can be configured 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 (described only by CAN 2.0 B). The only difference between the two formats is that the "CAN base frame" supports a length of 11 bits for the identifier, and the "CAN extended frame" supports a length of 29 bits for the identifier, made up of the 11-bit identifier ("base identifier") and an 18-bit extension ("identifier 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 specific identifier
* Error frame: a frame transmitted by any node detecting an error
* Overload frame: a frame to inject a delay between data or remote frame
Data frame
The data frame is the only frame for actual data transmission. There are two message formats:
* Base frame format: with 11 identifier bits
* Extended frame format: with 29 identifier bits
The CAN standard requires that the implementation must accept the base frame format and may accept the extended frame format, but must tolerate the extended frame format.
Base frame format
The frame format is as follows: The bit values are described for CAN-LO signal.
Extended frame format
The frame format is as follows on from here in the table below:
The two identifier fields (A & B) combine to form a 29-bit identifier.
Remote frame
*Generally data transmission is performed on an autonomous basis with the data source node (e.g., a sensor) sending out a data frame. It is also possible, however, for a destination node to request the data from the source by sending a remote frame.
*There are two differences between a data frame and 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. The DLC field indicates the data length of the requested message (not the transmitted one).
I.e.,
:RTR = 0 ; DOMINANT in data frame
:RTR = 1 ; RECESSIVE in remote frame
In the 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 dominant RTR bit following the identifier.
Error frame
The error frame consists of two different fields:
* The first field is given by the superposition of ERROR FLAGS (6–12 dominant/recessive bits) contributed from different stations.
* The following second field is the ERROR DELIMITER (8 recessive bits).
There are two types of error flags:
;Active Error Flag: six dominant bits – Transmitted by a node detecting an error on the network that is in error state "error active".
;Passive Error Flag: six recessive bits – Transmitted by a node detecting an active error frame on the network that is in error state "error passive".
There are two error counters in CAN:
# Transmit error counter (TEC)
# Receive error counter (REC)
* When TEC or REC is greater than 127 and less than 255, a Passive Error frame will be transmitted on the bus.
* When TEC and REC is less than 128, an Active Error frame will be transmitted on the bus.
* When TEC is greater than 255, then the node enters into Bus Off state, where no frames will be transmitted.
Overload frame
The overload frame contains the two bit fields Overload Flag and Overload Delimiter. There are two kinds of overload conditions that can lead to the transmission of an overload flag:
#The internal conditions of a receiver, which requires a delay of the next data frame or remote frame.
#Detection of a dominant bit during intermission.
The start of an overload frame due to case 1 is only allowed to be started at the first 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 flag. The overload flag's form destroys the fixed form of the intermission field. As a consequence, all other stations also detect an overload condition and on their part start transmission of an overload flag. Overload Delimiter consists of eight recessive bits. The overload delimiter is of the same form as the error delimiter.
ACK slot
The acknowledge slot is used to acknowledge the receipt of a valid CAN frame. Each node that receives the frame, without finding an error, transmits a dominant level in the ACK slot and thus overrides the recessive level of the transmitter. If a transmitter detects a recessive level in the ACK slot, it knows that no receiver found a valid frame. A receiving node may transmit a recessive to indicate that it did not receive a valid frame, but another node that did receive a valid frame may override this with a dominant. The transmitting node cannot know that the message has been received by all of the nodes on the CAN network.
Often, the mode of operation of the device is to re-transmit unacknowledged frames over and over. This may lead to eventually entering the "error passive" state.
Interframe spacing
Data frames and remote frames are separated from preceding frames by a bit field 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 preceded by an interframe space and multiple overload frames are not separated by an interframe space. Interframe space contains the bit fields intermission and bus idle, and suspend transmission for error passive stations, which have been transmitter of the previous message.
Bit stuffing
To ensure enough transitions to maintain synchronization, a bit of opposite polarity is inserted after five consecutive bits of the same polarity. This practice is called
bit stuffing
In data transmission and telecommunication, bit stuffing (also known—uncommonly—as positive justification) is the insertion of non-information bits into data. Stuffed bits should not be confused with overhead bits.
Bit stuffing is used for ...
, and is necessary due to the
non-return-to-zero
In telecommunication, a non-return-to-zero (NRZ) line code is a binary code in which ones are represented by one significant condition, usually a positive voltage, while zeros are represented by some other significant condition, usually a negati ...
(NRZ) coding used with CAN. The stuffed data frames are destuffed by the receiver.
All fields in the frame are stuffed with the exception of the CRC delimiter, ACK field and end of frame which are a fixed size and are not stuffed. In the fields where bit stuffing is used, six consecutive bits of the same polarity (111111 or 000000) are considered an error. An active error flag can be transmitted by a node when an error has been detected. The active error flag consists of six consecutive dominant bits and violates the rule of bit stuffing.
Bit stuffing means that data frames may be larger than one would expect by simply enumerating the bits shown in the tables above. The maximum increase in size of a CAN frame (base format) after bit stuffing is in the case
:11111000011110000...
which is stuffed as (stuffing bits in bold):
:111110000011111000001...
The stuffing bit itself may be the first of the five consecutive identical bits, so in the worst case there is one stuffing bit per four original bits.
The size of a base frame is bounded by
:
since
is the size of the frame before stuffing, in the worst case one bit will be added every four original bits after the first one (hence the −1 at the numerator) and, because of the layout of the bits of the header, only 34 out of 44 of them can be subject to bit stuffing.
An undesirable side effect of the bit stuffing scheme is that a small number of bit errors in a received message may corrupt the destuffing process, causing a larger number of errors to propagate through the destuffed message. This reduces the level of protection that would otherwise be offered by the CRC against the original errors. This deficiency of the protocol has been addressed in CAN FD frames by the use of a combination of fixed stuff bits and a counter that records the number of stuff bits inserted.
CAN lower-layer standards
ISO 11898 series specifies physical and data link layer (levels 1 and 2 of the
ISO/OSI model) of serial communication category called
Controller Area Network
A Controller Area Network (CAN bus) is a robust vehicle bus standard designed to allow microcontrollers and devices to communicate with each other's applications without a host computer. It is a message-based protocol, designed originally for mu ...
that supports distributed real-time control and multiplexing for use within road vehicles.
There are several CAN
physical layer
In the seven-layer OSI model of computer networking, the physical layer or layer 1 is the first and lowest layer; The layer most closely associated with the physical connection between devices. This layer may be implemented by a PHY chip.
The ...
and other standards:
ISO 11898-1:2015 specifies the
data link layer (DLL) and physical
signalling
In signal processing, a signal is a function that conveys information about a phenomenon. Any quantity that can vary over space or time can be used as a signal to share messages between observers. The ''IEEE Transactions on Signal Processing'' ...
of the
controller area network (CAN). This document describes the general architecture of CAN in terms of hierarchical layers according to the
ISO reference model for open systems interconnection (OSI) established in
ISO/IEC 7498-1 and provides the characteristics for setting up an interchange of digital information between modules implementing the CAN DLL with detailed specification of the
logical link control (LLC) sublayer and
medium access control (MAC) sublayer.
ISO 11898-2:2016 specifies 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
In telecommunications and professional audio, a balanced line or balanced signal pair is a circuit consisting of two conductors of the same type, both of which have equal impedances along their lengths and equal impedances to ground and to other ci ...
signalling scheme. It is the most used physical layer in vehicle
powertrain
A drivetrain (also frequently spelled as drive train or sometimes drive-train) is the group of components that deliver mechanical power from the prime mover to the driven components. In automotive engineering, the drivetrain is the components o ...
applications and industrial control networks.
ISO 11898-3:2006 specifies 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 specifies time-triggered communication 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 specifies the frame synchronisation entity that coordinates the operation of both logical link and media access controls in accordance with ISO 11898-1, to provide the time-triggered communication schedule.
ISO 11898-5:2007 specifies the CAN physical layer for transmission rates up to 1 Mbit/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, dealing with new functionality for systems requiring low-power consumption features while there is no active bus communication.
ISO 11898-6:2013 specifies the CAN physical layer for transmission rates up to 1 Mbit/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 configurable CAN frames.
ISO 16845-1:2016 provides the methodology and abstract test suite necessary for checking the conformance of any CAN implementation of the CAN specified in ISO 11898-1.
ISO 16845-2:2018 establishes test cases and test requirements to realize a test plan verifying if the CAN transceiver with implemented selective wake-up functions conform to the specified functionalities. The kind of testing defined in ISO 16845-2:2018 is named as conformance testing.
CAN-based higher-layer protocols
As the CAN standard does not include common communication features, such as
flow control, device addressing, and transportation of data blocks larger than one message, and above all, application data, many implementations of higher layer protocols were created. Several are standardized for a business area, although all can be extended by each manufacturer. For passenger cars, each manufacturer has its own standard.
CAN in Automation
CAN in Automation (CiA)391 is the international users' and manufacturers' organization that develops and supports CAN-based higher-layer protocols. About 650 (2018) companies from all over the world have joined the non-profit organization. CAN sp ...
(CiA) is the international users' and manufacturers' organization that develops and supports CAN-based higher-layer protocols and their international standardization. Among these specifications are:
Standardized approaches
*
ARINC 812
Aeronautical Radio, Incorporated (ARINC), established in 1929, was a major provider of transport communications and systems engineering solutions for eight industries: aviation, airports, defense, government, healthcare, networks, security, and ...
or
ARINC 825
Aeronautical Radio, Incorporated (ARINC), established in 1929, was a major provider of transport communications and systems engineering solutions for eight industries: aviation, airports, defense, government, healthcare, networks, security, and t ...
(aviation industry)
*
CANopen CANopen is a communication protocol and device profile specification for embedded systems used in automation. In terms of the OSI model, CANopen implements the layers above and including the network layer. The CANopen standard consists of an address ...
- CiA 301/302-2 and EN 50325-4 (industrial
automation
Automation describes a wide range of technologies that reduce human intervention in processes, namely by predetermining decision criteria, subprocess relationships, and related actions, as well as embodying those predeterminations in machines ...
)
*
IEC 61375
The train communication network (TCN) is a hierarchical combination of two fieldbus for data transmission within trains. It consists of the Multifunction Vehicle Bus (MVB) inside each vehicle and of the Wire Train Bus (WTB) to connect the differ ...
-3-3 (use of CANopen in rail vehicles)
*
DeviceNet DeviceNet is a network protocol used in the automation industry to interconnect control devices for data exchange. It utilizes the Common Industrial Protocol over a Controller Area Network media layer and defines an application layer to cover a rang ...
(industrial
automation
Automation describes a wide range of technologies that reduce human intervention in processes, namely by predetermining decision criteria, subprocess relationships, and related actions, as well as embodying those predeterminations in machines ...
)
*
EnergyBus - CiA 454 and
IEC 61851
IEC 61851 is an international standard for electric vehicle conductive charging systems, parts of which are currently still under development(written 2017). IEC 61851 is one of the International Electrotechnical Commission's group of standards fo ...
-3 (battery–charger communication)
* ISOBUS -
ISO 11783
ISO 11783, known as Tractors and machinery for agriculture and forestry—Serial control and communications data network (commonly referred to as "ISO Bus" or "ISOBUS") is a communication protocol for the agriculture industry based on the SAE J193 ...
(agriculture)
*
ISO-TP
ISO 15765-2, or ''ISO-TP (Transport Layer)'', is an international standard for sending data packets over a CAN-Bus. The protocol allows for the transport of messages that exceed the eight byte maximum payload of CAN frames. ISO-TP segments longer ...
- ISO 15765-2 (transport protocol for automotive diagnostics)
*
MilCAN
MilCAN is a deterministic protocol that can be applied to Controller Area Network (CAN) technology as specified by ISO 11898. MilCAN has been defined by a group of interested companies and government bodies associated with the specification, manuf ...
(military vehicles)
*
NMEA 2000 NMEA 2000, abbreviated to NMEA2k or N2K and standardised as IEC 61162-3, is a plug-and-play communications standard used for connecting marine sensors and display units within ships and boats. Communication runs at 250 kilobits-per-second and allows ...
- IEC 61162-3 (marine industry)
*
SAE J1939
Society of Automotive Engineers standard SAE J1939 is the vehicle bus recommended practice used for communication and diagnostics among vehicle components. Originating in the car and heavy-duty truck industry in the United States, it is now widel ...
(in-vehicle network for buses and trucks)
*
SAE J2284
SAE or Sae may refer to:
Science and technology
:
* Selective area epitaxy, local growth of epitaxial layer through a patterned dielectric mask deposited on a semiconductor substrate
* Serious adverse event, in a clinical trial
* Simultaneous Auth ...
(in-vehicle networks for passenger cars)
*
Unified Diagnostic Services Unified Diagnostic Services (UDS) is a diagnostic communication protocol used in electronic control units (ECUs) within automotive electronics, which is specified in the ISO 14229-1. It is derived from ISO 14230-3 ( KWP2000) and the now obsolete IS ...
(UDS) - ISO 14229 (automotive diagnostics)
*
LeisureCAN - open standard for the leisure craft/vehicle industry
Other approaches
*
CANaerospace - Stock (for the aviation industry)
*
CAN Kingdom
Can may refer to:
Containers
* Aluminum can
* Drink can
* Oil can
* Steel and tin cans
* Trash can
* Petrol can
* Metal can (disambiguation)
Music
* Can (band), West Germany, 1968
** ''Can'' (album), 1979
* Can (South Korean band)
Other
* C ...
- Kvaser (embedded control system)
* CCP/
XCP (automotive ECU calibration)
*
GMLAN
General Motors Local Area Network (GMLAN) is an application- and transport-layer protocol using Controller Area Network for lower layer services. It was standardized as SAE J2411 for use in OBD-II vehicle networks.
Transport-layer services
Transpo ...
- General Motors (for
General Motors
The General Motors Company (GM) is an American Multinational corporation, multinational Automotive industry, automotive manufacturing company headquartered in Detroit, Michigan, United States. It is the largest automaker in the United States and ...
)
*
RV-C
{{About, the communications protocol, the Rotavirus, Rotavirus
RV-C is a communications protocol based on the Controller Area Network bus. The protocol is used in Recreational vehicle, recreation vehicles to allow house and chassis components to ...
- RVIA (used for recreational vehicles)
*
SafetyBUS p - Pilz (used for industrial
automation
Automation describes a wide range of technologies that reduce human intervention in processes, namely by predetermining decision criteria, subprocess relationships, and related actions, as well as embodying those predeterminations in machines ...
)
*
UAVCAN (aerospace and robotics)
*
CSP (CubeSat Space Protocol)
*
VSCP
The Very Simple Control Protocol (VSCP) is a free automation protocol suitable for all sorts of automation task where Building automation, building- or Home automation, home-automation is in the main focus.
Its main advantage is that each VSCP- ...
(Very Simple Control Protocol) a free automation protocol suitable for all sorts of automation tasks
CANopen Lift
The CANopen Special Interest Group (SIG) "Lift Control", which was founded in 2001, develops the CANopen application profile CiA 417 for lift control systems. It works on extending the features, improves technical content and ensures that the current legal standards for lift control systems are met. The first version of CiA 417 was published (available for CiA members) in summer 2003, version 2.0 in February 2010, version 2.1.0 in July 2012, version 2.2.0 in December 2015, and version 2.3.1 in February 2020.
Jörg Hellmich (ELFIN GmbH) is the chairman of this SIG and manages
wiki of the CANopen lift communitywith content about CANopen lift.
Security
CAN is a low-level protocol and does not support any security features intrinsically. There is also no encryption in standard CAN implementations, which leaves these networks open to man-in-the-middle frame interception. In most implementations, applications are expected to deploy their own security mechanisms; e.g., to authenticate incoming commands or the presence of certain devices on the network. Failure to implement adequate security measures may result in various sorts of attacks if the opponent manages to insert messages on the bus. While passwords exist for some safety-critical functions, such as modifying firmware, programming keys, or controlling antilock brake actuators, these systems are not implemented universally and have a limited number of seed/key pairs.
Development tools
When developing or troubleshooting the CAN bus, examination of hardware signals can be very important.
Logic analyzer
A logic analyzer is an electronic instrument that captures and displays multiple signals from a digital system or digital circuit. A logic analyzer may convert the captured data into timing diagrams, protocol decodes, state machine traces, a ...
s and
bus analyzer
A bus analyzer is a type of a protocol analysis tool, used for capturing and analyzing communication data across a specific interface bus, usually embedded in a hardware system. The bus analyzer functionality helps design, test and validation eng ...
s are tools which collect, analyse, decode and store signals so people can view the high-speed waveforms at their leisure. There are also specialist tools as well as CAN bus monitors.
A is an analysis tool, often a combination of
hardware and
software
Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work.
At the lowest programming level, executable code consists ...
, used during development of hardware which uses the CAN bus.
Typically the CAN bus monitor will listen to the traffic on the CAN bus in order to display it in a user interface. Often the CAN bus monitor offers the possibility to simulate CAN bus activity by sending CAN frames to the bus. The CAN bus monitor can therefore be used to validate expected CAN traffic from a given device or to simulate CAN traffic in order to validate the reaction from a given device connected to the CAN bus.
Licensing
Bosch holds patents on the technology, though those related to the original protocol have now expired. Manufacturers of CAN-compatible microprocessors pay license fees to Bosch for use of the CAN trademark and any of the newer patents related to CAN FD, and these are normally passed on to the customer in the price of the chip. Manufacturers of products with custom
ASICs or
FPGA
A field-programmable gate array (FPGA) is an integrated circuit designed to be configured by a customer or a designer after manufacturinghence the term '' field-programmable''. The FPGA configuration is generally specified using a hardware de ...
s containing CAN-compatible modules need to pay a fee for the CAN Protocol License if they wish to use the CAN trademark or CAN FD capabilities.
See also
*
*
*
*
CANopen CANopen is a communication protocol and device profile specification for embedded systems used in automation. In terms of the OSI model, CANopen implements the layers above and including the network layer. The CANopen standard consists of an address ...
- Communication protocol for embedded systems
*
CANpie
CANpie (CAN Programming Interface Environment) is an open source project and pursues the objective of creating and establishing an open and standardized software API for access to the CAN bus.
The project was established in 2001 by MicroContro ...
– Open source device driver for CAN
*
CAN FD
CAN FD (Controller Area Network Flexible Data-Rate) is a data-communication protocol used for broadcasting sensor data and control information on 2 wire interconnections between different parts of electronic instrumentation and control system. Th ...
– New implementation of CAN with a faster transmission
*
can4linux can4linux is an Open Source CAN Linux-Kernel device driver.
Development started in the mid-1990s for the Philips 82C200 CAN controller stand alone chip on an ISA Board AT-CAN-MINI.
In 1995 the first version was created to use the CAN bus with L ...
– Open source Linux device driver for CAN
*
FlexCAN FlexCAN is an embedded network architecture that extends Controller Area Network (CAN). It was designed by Dr. Juan Pimentel at Kettering University
Kettering University is a private university in Flint, Michigan. It offers Bachelor of Science, b ...
– An alternative implementation.
*
FlexRay – High-speed alternative to CAN
*
*
Local Interconnect Network
LIN (Local Interconnect Network) is a serial network protocol used for communication between components in vehicles. It is a single wire, serial network protocol that supports communications up to 19.2 Kbit/s at a bus length of 40 meters. The need ...
– A low cost alternative
*
*
*
OBD-II PIDs
OBD-II PIDs (On-board diagnostics Parameter IDs) are codes used to request data from a vehicle, used as a diagnostic tool.
SAE standard J1979 defines many OBD-II PIDs. All on-road vehicles and trucks sold in North America are required to support a ...
– List of Parameter IDs
*
*
SAE J1939
Society of Automotive Engineers standard SAE J1939 is the vehicle bus recommended practice used for communication and diagnostics among vehicle components. Originating in the car and heavy-duty truck industry in the United States, it is now widel ...
- Communication protocol for trucks and busses
*
SocketCAN
SocketCAN is a set of open source CAN bus, CAN drivers and a networking stack contributed by Volkswagen, Volkswagen Research to the Linux kernel. SocketCAN was formerly known as ''Low Level CAN Framework'' (LLCF).
Traditional CAN drivers for Li ...
– A set of open source CAN drivers and a networking stack contributed by Volkswagen Research to the Linux kernel.
References
External links
;Specifications
:
ISO 11898-1 Standard (2015)- includes CAN and CAN-FD specifications
:
Bosch CAN Specification Version 2.0 (1991, 1997)- also known as "Classical CAN" and "CAN-Classic"
:
Bosch CAN-FD Specification Version 1.0 (2012)- increase data rates up to 8 Mbit/s
:
Bosch CAN-XL (future)- increase data rates up to 20 Mbit/s
:
Bosch CAN-FD-Light (future)- cost-optimized subset of CAN-FD
;Other
Controller Area Network (CAN) Schedulability Analysis: Refuted, Revisited and RevisedController Area Network (CAN) Schedulability Analysis with FIFO QueuesController Area Network (CAN) Implementation GuideFreeware Bit-Timing calculator for Windows, supports a lot of microcontrollers, e.g. Atmel, STM32, Microchip, Renesas, ...(ZIPfile)
ARINC-825 Tutorial (video)from Excalibur Systems Inc.
Website of CiACAN Newsletter OnlineUnderstanding and Using the Controller Area Network from UC BerkeleyCAN Protocol TutorialESD protectionfor CAN bus and
CAN FD
CAN FD (Controller Area Network Flexible Data-Rate) is a data-communication protocol used for broadcasting sensor data and control information on 2 wire interconnections between different parts of electronic instrumentation and control system. Th ...
{{DEFAULTSORT:Controller Area Network
Computer networks
Serial buses
Industrial computing
Industrial automation
Robert Bosch GmbH