Controller Area Network CAN Communication By Ann Lazare
Controller Area Network (CAN) Communication By Ann Lazare
Overview � What is a Controller Area Network? � History of CAN � CAN communication protocol � Physical layer � ISO 11898 � Ci. A � CANopen � Device. Net � Applying CAN
Definitions � CAN = controller area network � ECU = electronically controlled unit � Dominant = 0 � Recessive = 1
What is a Controller Area Network? � CAN implements a vehicle bus to which all CAN devices are connected � Allows all devices to communicate with one another
CAN applications � Cars, trucks, buses, off-road vehicles � Maritime electronics � Aircraft/aerospace electronics � Medical equipment and devices � Coffee machines � Elevators
History of CAN 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 �
Benefits of CAN - firmware � � � 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
Other benefits of CAN � 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
Message frames � Data frame – sends data � Remote frame – requests data � Error frame – reports an error � Overload frame – reports a node is overloaded
Data Frame/Remote Frame � SOF – 1 dominant bit � Arbitration Field – message ID + RTR
Data Frame/Remote Frame � Control Field -Length of the data field to follow -For remote frame DLC is ignored, data field is always zero
Data Frame/Remote Frame � CRC Field – CRC segment + delimiter bit � ACK Field – acknowledgement bit + delimiter bit
Data/Remote Frame � � � � 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
Extended CAN Protocol � 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 Frame � Error occurs: bit stuffing, CRC incorrect, etc. � Error flag set followed by recessive delimiter and interframe
Error Frame � Errors are caught quickly and have short recovery times: Error Frame Length Baud Rate Total error recovery time (error frame + interframe) 14 bits 1 Mbit/sec 14 + 3 u. Sec 14 bits 500 k. Bit/sec 28 + 6 u. Sec 14 bits 250 k. Bit/sec 56 + 12 u. Sec 20 bits 1 Mbit/sec 20 + 3 u. Sec 20 bits 500 k. Bit/sec 40 + 6 u. Sec 20 bits 250 k. Bit/sec 80 + 12 u. Sec
Overload Frame � Overload flag – 6 dominant bits so all nodes detect overload, messaging ceased
Message Broadcasting � Producer/consumer � All messages are acknowledged for consistency (error if inconsistent or unacknowledged) � Nodes can accept or decline message filitering
Bus Arbitration � 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
Bus Arbitration - example � Node A = 1000101100 (high priority) � Node B = 1110110000 1 st arbitration bit 2 nd arbitration bit 3 rd arbitration bit Node A 1 0 0 Node B 1 1 listen Bus level 1 0 0 � B send a recessive, detects dominant, then listens
Error Detection � 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
Fault Confinement � 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
Fault Confinement � 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
Physical Layer ISO 11898 -2 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 › 2 V for recessive, 0 V 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 40 m long � › At <10 kbit/sec can have up to 5000 m bus
ISO 11898 � “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
CAN-in-Automation (Ci. A) � Users + manufacturers develop and support CAN � Based on participation and initiative � Represented at ISO and IEC committees
CANopen � Higher layer protocol adds: › Network management › Device monitoring › Communication between nodes � Requires CANopen nodes to have: › Communication unit › State machine › Object dictionary
Device. Net � Application layer protocol adds 4 required objects: › › Identity object Connection object Message router object Device. Net object
Companies that use CAN � Hewlett-Packard � Lockheed Martin � Boeing � NASA � GE Medical � Siemens Medical � John Deere
CAN Tools � Vehicle Spy (Vspy) � NETCAR-Analyzer � Volcano Network Architect (VNA) � Ability to: › › Read bus signals Transmit messages Log data Write to ECU memory
Vspy
CAN – a practical application � ECU � TCU � CCU � SSM 15 � SSM 25 � CMU
Alternatives to CAN � LIN-Bus (Local Interconnect Network) � Ethernet � RS 232 � Universal serial bus
CAN Development useful documents � CAN specification 2. 0 › A = standard format › B = extended format � ISO 11898 › Specific requirements on the sub layers of the data link layer and physical layer CANopen specification � Book: A comprehensible guide to CAN � Book: Embedded networking with CAN and CANopen �
Questions?
References � [1] Wilfried Voss. (2005). A Comprehensible Guide to Controller Area Network. Greenfield: Copperhill Technologies Corporation. � [2] � [3] Ci. A. (2001). Can physical layer. Retrieved 1 24, 2012, from http: //www. cancia. de/index. php? id=systemdesign-can-physicallayer � [4] International Standard ISO 11898. First edition 2003 -12 -01. Road vehicles - Controller area network (CAN). � [5] � [6] National Instruments. (2012). Controller Area Network (CAN) Overview. Retrieved 2 2, 2012, from http: //zone. ni. com/devzone/cda/tut/p/id/2732 � [7] Vehicle Spy. (2005 -2012). Vehicle Spy Professional. Retrieved 2 4, 2012 from http: //intrepidcs. com/Vehicle. Spy/ � [8] CANopen USA. Retrieved 2 4, 2012 from http: //www. canopen. us/ � [9] Real Time Automation. Device. Net Introduction. Retrieved 2 4, 2012 from http: //www. rtaautomation. com/devicenet/#2 Pazul Keith. (2002). Controller Area Network (CAN) Basics. In Microchip. Robert Bosch. (1991). CAN Specification. Robert Bosch Gmb. H.
- Slides: 36