CAN is an abbreviation of Controller Area Network and is a message-based protocol originally developed for automobile in-vehicle networks. The CAN bus is a multi-drop and multi-master serial bus, which provides communications between sensors, actuators and controllers. Nowadays application areas of CAN bus systems are:
- automotive
- industrial systems
- medical systems
- marine control and navigation
- military vehicles
- agricultural machinery
- elevator control systems
CAN is defined by:
- CAN 2.0 A standard format
- CAN 2.0 B extended format
- ISO 11898-2 high speed applications up to 1 Mbit/s
- ISO 11898-3 low speed applications up to 125 Kbit/s
Network layered model:
CAN defines the data link and physical layer of the OSI-model. The higher layer protocols (application, presentation, session, transport, and network layer protocols) are defined by standards like CANOpen, CANaerospace, SAE J1939, ISO 1192, Devicenet, MilCAN, Kvaser's CAN, etc..
Communication:
- broadcasting of messages
- any node is allowed to broadcast
- every node has his own priority
- each receiver decides to process or ignore each message
- source / content of a message identifies by ID
Arbitration
The CAN communication protocol is a carrier-sense, multiple-access protocol with collision detection and
arbitration on message priority (CSMA/CD+AMP).
Message types:
- data frame
- remote frame
- error frame
- overload frame
Error detection:
- bit error
- stuff-bit error
- CRC errors
- acknowledge error
- format error
Physical medium:
Bus length / bit rate tradeoff:
1 Mbit/s 131 feet (40 M)
500 Kbit/s 328 feet (100 M)
250 Kbit/s 656 feet (200 M)
125 Kbit/s 1640 feet (500 M)
Network size:
Networks are limited by electrical loading. The maximum number of nodes is not specified.
Network devices:
- sensors
- actuators
- controllers
- bridges
- gateways (e.g. for communication with protocols like Profibus / Profinet)
- PC-interfaces