What is a Controller Area Network? History of CAN CAN communication protocol Physical layer ISO CiA CANopen DeviceNet Applying CAN
CAN = controller area network ECU = electronically controlled unit Dominant = 0 Recessive = 1
CAN implements a vehicle bus to which all CAN devices are connected Allows all devices to communicate with one another
Cars, trucks, buses, off-road vehicles Maritime electronics Aircraft/aerospace electronics Medical equipment and devices Coffee machines Elevators
Developed in Germany in the 1980's by engineers working at Robert Bosch More functionality while reducing the weight and complexity of the wiring between controllers. Multi-processor system which has better performance, increased reliability and is more maintainable No communication protocols at the time met the speed and reliability requirements so Bosch developed CAN specification 2.0
Physical and data link layer are implemented in the CAN controllers Standard CAN bypasses layers 3-6 (1) Physical layer = actual hardware (2) Data link layer = connects data to the protocol (7) Application layer = interacts with OS of CAN device
Since CAN is so widely used CAN chips are cheap Reliability and error resistance of CAN calculated in mathematical model shown to have only 1 undetected error in 1000 years Has world wide acceptance Higher layer protocols defined for data intensive applications
Data frame – sends data Remote frame – requests data Error frame – reports an error Overload frame – reports a node is overloaded
SOF – 1 dominant bit Arbitration Field – message ID + RTR
Control Field -Length of the data field to follow -For remote frame DLC is ignored, data field is always zero
CRC Field – CRC segment + delimiter bit ACK Field – acknowledgement bit + delimiter bit
SOF – 1 bit Arbitration field – 12 or 32 bits Control field – 6 bits Data field – up to 8 bytes CRC field – 16 bits ACK field – 2 bits EOF -7 bits IFS – 3 bits
Off-road vehicles require more messages 11 bit message ID -> 29 bit Use IDE to determine format: › 0 = 11 bit › 1 = 29 bit Extended frame has trade-offs: › Bus latency time is longer › More bandwidth required › Error detection performance decreased
Error occurs: bit stuffing, CRC incorrect, etc. Error flag set followed by recessive delimiter and interframe
Errors are caught quickly and have short recovery times: Error Frame LengthBaud RateTotal error recovery time (error frame + interframe) 14 bits1 Mbit/sec uSec 14 bits500 kBit/sec uSec 14 bits250 kBit/sec uSec 20 bits1 Mbit/sec uSec 20 bits500 kBit/sec uSec 20 bits250 kBit/sec uSec
Overload flag – 6 dominant bits so all nodes detect overload, messaging ceased
Producer/consumer All messages are acknowledged for consistency (error if inconsistent or unacknowledged) Nodes can accept or decline message filitering
CAN uses message ID of the node to prevent collisions – high priority first Uses bitwise arbitration as follows: › Node sends SOF with dominant level Non-sending nodes begin listening › Node sends next bit and compares output signal with actual bus level If sent recessive, detects dominant, then begins listening, else sends next bit › Transmits the rest of the message if it transmits all arbitration bits
Node A = (high priority) Node B = B send a recessive, detects dominant, then listens 1 st arbitration bit2 nd arbitration bit3rd arbitration bit Node A100 Node B11listen Bus level100
Errors detected by: › Bit monitoring › Checksum Check › Variable bit stuffing with a stuff width of 5 › Frame check › Acknowledge Check Defective frames are aborted and retransmitted
Malfunctions that would disrupt the system: › Transmitting Error from malfunctioning node › Receiving Error from malfunctioning node CAN determines permanent vs. temporary malfunctions › Transmit error counter › Receive error counter
Based on the counters, a node is in one of the following states: › Error Active Transmit and receive counters <128 › Error Passive Transmit or receive counters >127 › Bus-Off Transmit error counter >255
ISO is the most common standard for the physical layer Nodes connected by 2 wires: CAN_H and CAN_L Bus level determined by: › Vdiff = Vcan_h – Vcan_l › 2V for recessive, 0V for dominant Bus terminated by 120 Ω resistors to suppress electrical reflections on the bus Electromagnetic interferences are minimized with the differential voltage between CAN_H and CAN_L At a maximum baud rate of 1 Mbit/sec a bus can be up to 40m long › At <10 kbit/sec can have up to 5000 m bus
“Road vehicles – Controller area network (CAN)” 1993 Contains: › Data link layer and physical signaling › High speed medium access unit › Low speed fault tolerant medium dependant interface › Time triggered communication
Users + manufacturers develop and support CAN Based on participation and initiative Represented at ISO and IEC committees
Higher layer protocol adds: › Network management › Device monitoring › Communication between nodes Requires CANopen nodes to have: › Communication unit › State machine › Object dictionary
Application layer protocol adds 4 required objects: › Identity object › Connection object › Message router object › DeviceNet object
Hewlett-Packard Lockheed Martin Boeing NASA GE Medical Siemens Medical John Deere
Vehicle Spy (Vspy) NETCAR-Analyzer Volcano Network Architect (VNA) Ability to: › Read bus signals › Transmit messages › Log data › Write to ECU memory
ECU TCU CCU SSM15 SSM25 CMU
LIN-Bus (Local Interconnect Network) Ethernet RS232 Universal serial bus
CAN specification 2.0 CAN specification 2.0 › A = standard format › B = extended format ISO › Specific requirements on the sub layers of the data link layer and physical layer CANopen specification CANopen specification Book: A comprehensible guide to CAN Book: Embedded networking with CAN and CANopen
[1]Wilfried Voss. (2005). A Comprehensible Guide to Controller Area Network. Greenfield: Copperhill Technologies Corporation. [2]Pazul Keith. (2002). Controller Area Network (CAN) Basics. In Microchip. [3]CiA. (2001). Can physical layer. Retrieved 1 24, 2012, from cia.de/index.php?id=systemdesign-can-physicallayerhttp:// cia.de/index.php?id=systemdesign-can-physicallayer [4]International Standard ISO First edition Road vehicles - Controller area network (CAN). [5]Robert Bosch. (1991). CAN Specification. Robert Bosch GmbH. [6]National Instruments. (2012). Controller Area Network (CAN) Overview. Retrieved 2 2, 2012, from [7]Vehicle Spy. ( ). Vehicle Spy Professional. Retrieved 2 4, 2012 from [8]CANopen. CANopen USA. Retrieved 2 4, 2012 from [9]Real Time Automation. DeviceNet Introduction. Retrieved 2 4, 2012 from