210 likes | 339 Views
EECS 373. Controller Area Networks. Samuel Haberl Russell Kuczwara Senyuan Zhong. Presentation Outline. CAN history and basics CAN standard message frame & arbitration Error checking & noise protection CAN implementation Application strengths. http://goo.gl/Ktm1BY. CAN History.
E N D
EECS 373 Controller Area Networks Samuel Haberl Russell Kuczwara SenyuanZhong
Presentation Outline • CAN history and basics • CAN standard message frame & arbitration • Error checking & noise protection • CAN implementation • Application strengths http://goo.gl/Ktm1BY
CAN History • Developed by Bosch in 1983 • Presented at SAE Conference in Detroit in 1986 • Designed for automotive uses • Allows multiple controllers and sensors to communicate • 2008: all US vehicles required to implement CAN for OBD • Multiple CAN implementations and variations
Where is CAN Used? • Automotive industry • Electronic control units (ECUs) • Sensors and switches • Multimedia systems • Factory automation • Low-cost machinery and electronics • Michigan Hybrid Racing Electric Drive System Photo credit: Sam Haberl
CAN Basics • Multi-master, broadcast serial bus • Real Time Arbitration • Robust error-checking and noise protection • No extra wires for clock or arbitration • Cheap http://www.aa1car.com/library/can_systems.htm
Masters and Targets • Each node can be a master and a target • Arbitration field indicates message type • Nodes listen to messages that they care about • Addresses composed of dominant and recessive bits • 0 – Dominant, 1 – Recessive • Lowest address (0x000) is most dominant http://goo.gl/NafrtG
Standard Message Frame • Start of frame • Arbitration (identifier) • Control (data length, reserved bits) • Data field • CRC (cyclical redundancy check) • ACK (acknowledgement field) • End of frame • Intermission (time between frames) 11 or 29 Bit Image from http://www.softing.com/home/en/industrial-automation/products/can-bus/more-can-bus/data-frame.php?navanchor=3010395
Arbitration 11 or 29 Bit http://electronicdesign.com/Files/29/9131/Figure_02.gif
Error Checking • Form Errors • Proper message formatting is enforced • Bit Errors • Transmitter detects wrong bit while transmitting. • CRC Checksum Errors • Checksum calculated, compared to transmitted checksum • Acknowledgement Errors • ACK field must be set dominant by a receiving node • Bit stuffing Errors • Any time there are 5 of the same bits, one opposite bit sent • Error triggered by 6 identical bits
Error Handling • Any node on the bus can raise an “Error frame.” • Holds bus dominant for 6 bits • Other nodes realize this is wrong, raise their error frames • Node that was transmitting re-sends message • Each node keeps individual error count • Node goes into “passive” mode at 127 errors • Node removes itself from bus after 255 errors Image from http://www.softing.com/home/en/industrial-automation/products/can-bus/more-can-bus/error-handling/active-error-frame.php?navanchor=3010501
Timing http://goo.gl/nUry9c • No bus clock signal, each node has its own clock • Each bit is divided into four sections • Synchronization, Propagation, Phase 1, Phase 2 • Bit sampled between phase 1 and 2 • Receiving nodes synchronize by adjusting phases
CAN Implementations Variants • CAN architecture can be implemented in many different approaches • Standards for single-wire, twisted pair, four-wire • Twisted-pair CAN is most commonly used • Twisted pair uses CAN_H and CAN_L signals • No additional wires needed • Signal generated by transceiver, not by processor http://www.networkcablinglosangeles.com/wp-content/themes/networkcablinglosangeles/images/unshielded_cable.jpg
Electrical Noise • Lots of Noise in Automotive Application • Only getting worse with more automation for luxury http://upload.wikimedia.org/wikipedia/commons/0/0a/3phase-electric-motor-1.18.png
Differential Signals • Two-Wire differential signal • Value represented by difference between wires, not the absolute value of one wire • Difference creates immunity to noise 0 0 1 0 ?
From Master to Bus (2-Wire Implementation) • Processor uses logic-level signal • Signals sent over 2-wire bus • Use transceiver as bridge http://goo.gl/RPHJ8R
Full Message Example • Sends the message with identifier 00000010100 • Sends One Byte with value “1” • 15 bit CRC field • Bit Stuffing is handled by can transceivers and is not visible
A CAN Bus For Everyone • Allows multiple bitrates and buses • Bitrates affect robustness and bus length • 1 Mbit/s – High-priority • i.e. Airbags • 10 kbit/s – Low-priority • i.e. Audio System changes (volume, audio source)
Multiple CAN Bus Example http://goo.gl/UFsVd1
Application Strengths • Arbitration with no delay or extra wires • High-priority devices don’t wait • No extra weight or cost from wires • Robust error correction • Faulty nodes remove themselves from bus • Minimizes need for software correction • Noise immunity from twisted pair CAN • Inexpensive • 56 cents @ 2,500 qty for SN65HVD1040DR CAN Transceiver (DigiKey)
References • Robert Bosch GmbH • http://esd.cs.ucr.edu/webres/can20.pdf • KVaser CAN Solutions • http://www.kvaser.com/en/about-can/the-can-protocol.html • Dearborn Group Technologies • http://www.dgtech.com/images/primer.pdf • Softing CAN Bus Products • http://www.softing.com/home/en/industrial-automation/products/can-bus/index.php?navanchor=3010024 • Vector CANtech • http://vector.com/vi_controller_area_network_en.html?gclid=CNOAroPo47oCFdFDMgod9GsAIw&et_rp=1