3. October 26, 2016
What is CAN?
• The Controller Area Network (CAN) is a serial, a
synchronous, multi-master communication protocol for
connecting electronic control modules in automotive and
industrial applications.
• It is a message-based protocol .
4. October 26, 2016
History
• Development of the CAN bus started in 1983 at
Robert Bosch GmbH.
• The protocol was officially released in 1986 at the Society of
Automotive Engineers (SAE) congress in Detroit, Michigan.
• The first CAN controller chips, produced by Intel and Philips, came
on the market in 1987. The 1988 BMW 8 Series was the first
production vehicle to feature a CAN-based multiplex wiring system.
5. October 26, 2016
CAN standards
• Two specifications are in use:
• 2.0A sometimes known as Basic or Standard CAN with 11 bit
message identifiers which was originally specified to operated at a
maximum frequency of 250Kbit/sec - ISO11519.
• 2.0B known as Full CAN or extended frame CAN with 29 bit
message identifier which can be used at up to 1Mbit/sec - ISO
11898.
8. October 26, 2016
Layered Structure of a CAN
Node
• Application Layer
• Object Layer
– Message Filtering
– Message and Status Handling
• Transfer Layer
– Fault Confinement
– Error Detection and Signaling
– Message Validation
– Acknowledgement
9. October 26, 2016
Layered Structure of a CAN
Node
– Arbitration
– Message Framing
– Transfer Rate and Timing
• Physical Layer
– Signal Level and Bit Representation
– Transmission Medium
10. October 26, 2016
CAN from OSI perspective
Protocol Overview:
- Data Link Layer
- Logical link Control
- Acceptance filtering
- Overload notification
- Recovery management
- Medium Access control
- Data encapsulation
- Frame coding
- Error detection/signaling
- Acknowledgement
- Serialization/de serialization
- Physical Layer
- Bit encoding/decoding
- Bit timing
- Synchronization
12. October 26, 2016
CAN Message Frames
• Data Frame
– Used to transmit up to 8 bytes of data
• Remote Frame
– Used to request a data frame
• Error Frame
– Used to indicate error to the entire network (Not
under CPU control).
• Overload Frame
– Used to create an extra delay between frames