An Introduction to CAN CAN Basics 2 Renesas Interactive Renesas Technology America Inc. 1 Key reasons to use CAN • Scalability • • • • • • Low wiring cost Low node connection costs More and more chips More off the shelf tools Knowledge base growing Reliability (error free) 2 CAN Message Frames • Data Frame - Carries the actual data • Error Frame - When error is detected by any node’s hardware • Overload Frame - Request a delay on the bus • Interframe Space - Provides minimum spacing between data and remote frames Allows error frames priority • Remote Frame - Request transmission of Data Frame. 3 Data Flow Transmitting Node Node configured to receive identifier Node not configured to receive identifier MCU Firmware MCU Firmware MCU Firmware identifier [id_n] Data [values_x] Data [values_x] Tx Mail Box [id_n] Tx Mail Box [id_c] Tx Mail Box [id_b] Data [values_x] Rx Mail Box [id_b] Rx Mail Box [id_d] Rx Mail Box [id_n] Rx Mail Box [id_c] Rx Mail Box [id_b] Data [values_x] Rx Mail Box [id_a] CAN Peripheral CAN Peripheral CAN Peripheral CAN Transceiver CAN Transceiver CAN Transceiver Rx Mail Box [id_c] Data Frame is broadcast to the bus [id_n][value_x] 4 Data Frame Data Field 0 to 8 bytes CRC CRC Delimiter ACK slot ACK Delimiter Data Length Code (4 bits) Identifier Remote Request ID Extend reserved 0 Start of Frame Standard ID End of Frame • • • • • • • Data Field 0 to 8 bytes Start of Frame Arbitration Field Control Field Data Field CRC ACK Field End of Frame 5 CRC CRC Delimiter ACK slot ACK Delimiter Identifier (second part) Data Length Code (4 bits) Remote Request reserved 1 reserved 0 Identifier (first part) Substitute RR ID Extend Start of Frame Extended ID End of Frame Start of Frame • A single dominant bit while the bus is idle • All nodes synchronize timing to leading edge Start of Frame All nodes synchronize to edge 6 Identifier 7 Identifier (second part) Remote Request reserved 1 Identifier (first part) Remote Request ID Extend Identifier Substitute RR ID Extend Extended; 29-bits Start of Frame Standard; 11-bit identifier Start of Frame Arbitration Field Arbitration Handling collisions Carrier Sense Multiple Access/Collision Resolution = CSMA/CR By using Dominant and Recessive Bits 8 Control Field Control Field contains the DLC Data Length Code (4 bits) Remote Request reserved 1 reserved 0 • 2 bits reserved • 4 bits Data Length Code; number of Data Field bytes Data Length Code Number of Data Bytes DLC3 DLC2 DLC1 DLC0 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 Data Field Data Length Code (4 bits) • Data content = payload of the frame • 0-8 bytes • MSB transmitted first Data Field 0 to 8 bytes 10 CRC CRC Field CRC 11 CRC Delimiter ACK slot • 15 bit CRC value followed by a recessive delimiter • Generated by transmitter node’s HW and verified in receiver’s HW • CRC polynomial: x15+x14+x10+x8+x7+x4+x3+1 CRC Delimiter ACK slot ACK Delimiter ACK Field ACK FIELD = ACK SLOT + ACK DELIMITER All receivers that received valid message reports with a ’dominant’ End of bit during the ACK slot Frame Any receiver that disagrees votes no after the delimiter with an error flag 12 DATA FRAME and REMOTE FRAME delimited by ‘End of Frame’ consisting of seven recessive’ bits. Gives a break before the next frame.. 13 ACK Delimiter End of Frame End of Frame Error detection Locally detected errors When is an error frame sent? • • • • • Bit error -receive bit at sender not equal to transmit bit. Bit stuffing violation -max 5 bits with same polarity CRC error -checksum violation Form error -bit pulse malshaped Ack error -no dominant level in ACK slot so sender must retransmit 14 What is needed? • • • • Firmware CAN controller CAN transceivers A physical media 15 Example of Renesas CAN MCUs • SH705x series • Automotive Powertrain • SH7047 series • General purpose SH2…soon updated derivative available. • M32R/ECU series • Automotive Powertrain • M32C series • General purpose (1-3 channels of CAN) • M16C/6N series • M16C/62 family with CAN. General purpose. • M16C/29 series • General Purpose M16C/Tiny with CAN. • M16C/10 series • Better off with M16C/Tiny or R8C/Tiny • R8C/Tiny series • General Purpose 16 Question 1 Which is normally by far the most common frame type? 1. 2. 3. 4. Data Frame Error Frame Overload Frame Remote Frame A: 1 B: 2 C: 3 D: 4 17 Question 2 Which of these statements is false? 1. 2. 3. 4. The data field in a data frame can consist of max 255 bytes The data field has only 8 bytes You must specify for each data frame how many data bytes follow Remote frames are not necessary to use CAN A: 1 B: 2 C: 3 D: 4 18 Question 3 Which of these is false? 1. 2. 3. The CRC field is sent by all receivers and verified by the transmitter. Each receiver generates a CRC on the observed data frame and compares it with the transmitted CRC check value. Every receiver which has received a valid message correctly, reports this to the transmitting node with a ’dominant’ bit during the ACK slot. Any node that disagrees, votes no after the delimiter by sending an error flag. A: 1 B: 2 C: 3 19 Question 4 When is an error frame sent? 1. 2. 3. 4. Bit stuffing violation; > 5 bits with same polarity CRC error; checksum violation Form error; bit pulse malshaped Ack error; no dominant level in ACK slot so sender must retransmit A: 1-3 B: 2-4 C: 2 and 4 D: All above 20 Glossary • • • • • • • • • • • • • Advanced CAN: CAN peripheral with varying numbers of buffers configurable for transmit/receive. Receive buffers have hardware filtering on at least mask/match identifier content. Basic CAN: CAN peripheral with no hardware filtering. Typically two receive buffers act as FIFO accepting all bus traffic. Usually one transmit buffer. Bit Time: Nominal time of one bit on the CAN bus. Made up of multiple segments that allows each node to synchronize to the received bus traffic. All nodes on a bus must be configured to the same (nominal) bit time. CAN: Controller Area Network CAN 2.0B: Version 2.0 was the last version of CAN defined by Bosch. Part B added extended identifiers and the idea of hardware filtering. CIA: CAN in Automation. Group controlling the CANOpen protocol. CANOpen: Multi-area communication protocol using CAN. CRC: Cyclic Redundancy Check DeviceNet: Industrial communication protocol using CAN. Dominant/Recessive: Dominant bits on physical layer can override recessive bits. Filters: Hardware in the CAN peripheral that can mask/match bits within the identifier field used to determine whether or not route bus data to a mailbox. GM LAN 3.0: GM protocol, encompasses all GM serial protocols. Identifier: Frame field that indicates the message content. This field also is used to arbitrate the message priority on the bus; lower identifier is higher priority. • • • • • • • • • Standard Format; frames use 11 bit identifier. Extended Format “29 bits ISO 11898: ISO standardized version of CAN. Mailbox: CAN hardware buffer that can be used to transmit or receive data. Most full CAN implementations have at least 16 mailboxes. ODVA: Open DeviceNet Vendor Association. Group controlling DeviceNet protocol. Time Quanta: Smallest time unit used by CAN. Multiple time quanta make up the segments of a bit time. TT CAN: Time Triggered CAN. More deterministic CAN by assigning time slots when nodes may transmit. FlexRay: Next generation automotive network. Time slots on the bus provide more deterministic behavior. Vector-CanTech: Supplier of the majority of CAN software drivers and tools to North American and European automobile ECUs. 21 Come back for more! End CAN Basics 2 22