MCP2515 Stand-Alone CAN Controller With SPI™ Interface Features Description • Implements CAN V2.0B at 1Mb/s: Microchip Technology’s MCP2515 is a stand-alone - 0 – 8 byte length in the data field Controller Area Network (CAN) controller that imple- ments the CAN specification, version 2.0B. It is capable - Standard and extended data and remote of transmitting and receiving both standard and frames extended data and remote frames. The MCP2515 has (cid:129) Receive buffers, masks and filters: two acceptance masks and six acceptance filters that - Two receive buffers with prioritized message are used to filter out unwanted messages, thereby storage reducing the host MCUs overhead. The MCP2515 - Six 29-bit filters interfaces with microcontrollers (MCUs) via an industry - Two 29-bit masks standard Serial Peripheral Interface (SPI). (cid:129) Data byte filtering on the first two data bytes (applies to standard data frames) Package Types (cid:129) Three transmit buffers with prioritizaton and abort 18-Lead PDIP/SOIC features (cid:129) High-speed SPI™ Interface (10MHz): TXCAN 1 18 VDD - SPI modes 0,0 and 1,1 RXCAN 2 17 RESET (cid:129) One-shot mode ensures message transmission is CLKOUT/SOF 3 16 CS attempted only one time 5 TX0RTS 4 1 15 SO (cid:129) Clock out pin with programmable prescaler: 5 - Can be used as a clock source for other TX1RTS 5 P2 14 SI C device(s) TX2RTS 6 M 13 SCK (cid:129) Start-of-Frame (SOF) signal is available for OSC2 7 12 INT monitoring the SOF signal: OSC1 8 11 RX0BF - Can be used for time-slot-based protocols Vss 9 10 RX1BF and/or bus diagnostics to detect early bus degredation (cid:129) Interrupt output pin with selectable enables (cid:129) Buffer Full output pins configurable as: - Interrupt output for each receive buffer 20-LEAD TSSOP - General purpose output TXCAN 1 20 VDD (cid:129) Request-to-Send (RTS) input pins individually RXCAN 2 19 RESET configurable as: CLKOUT/SOF 3 18 CS - Control pins to request transmission for each TX0RTS 4 17 SO 5 transmit buffer TX1RTS 5 1 16 SI 5 - General purpose inputs NC 6 2 15 NC P (cid:129) Low-power CMOS technology: TX2RTS 7 C 14 SCK OSC2 8 M 13 INT - Operates from 2.7V – 5.5V OSC1 9 12 RX0BF - 5mA active current (typical) VSS 10 11 RX1BF - 1µA standby current (typical) (Sleep mode) (cid:129) Temperature ranges supported: - Industrial (I): -40°C to +85°C - Extended (E): -40°C to +125°C Preliminary © 2005 Microchip Technology Inc. DS21801D-page 1 MCP2515 NOTES: Preliminary DS21801D-page 2 © 2005 Microchip Technology Inc. MCP2515 1.0 DEVICE OVERVIEW 1.2 Control Logic The MCP2515 is a stand-alone CAN controller The control logic block controls the setup and operation developed to simplify applications that require of the MCP2515 by interfacing to the other blocks in interfacing with a CAN bus. A simple block diagram of order to pass information and control. the MCP2515 is shown in Figure1-1. The device Interrupt pins are provided to allow greater system consists of three main blocks: flexibility. There is one multi-purpose interrupt pin (as 1. The CAN module, which includes the CAN well as specific interrupt pins) for each of the receive protocol engine, masks, filters, transmit and registers that can be used to indicate a valid message receive buffers. has been received and loaded into one of the receive 2. The control logic and registers that are used to buffers. Use of the specific interrupt pins is optional. configure the device and its operation. The general purpose interrupt pin, as well as status registers (accessed via the SPI interface), can also be 3. The SPI protocol block. used to determine when a valid message has been An example system implementation using the device is received. shown in Figure1-2. Additionally, there are three pins available to initiate 1.1 CAN Module immediate transmission of a message that has been loaded into one of the three transmit registers. Use of The CAN module handles all functions for receiving these pins is optional, as initiating message and transmitting messages on the CAN bus. Messages transmissions can also be accomplished by utilizing are transmitted by first loading the appropriate control registers, accessed via the SPI interface. message buffer and control registers. Transmission is initiated by using control register bits via the SPI 1.3 SPI Protocol Block interface or by using the transmit enable pins. Status The MCU interfaces to the device via the SPI interface. and errors can be checked by reading the appropriate Writing to, and reading from, all registers is registers. Any message detected on the CAN bus is accomplished using standard SPI read and write checked for errors and then matched against the user- commands, in addition to specialized SPI commands. defined filters to see if it should be moved into one of the two receive buffers. FIGURE 1-1: BLOCK DIAGRAM CAN Module RXCAN CAN TX and RX Buffers SPI™ CS Protocol Interface SCK SPI Engine Masks and Filters Logic SI Bus TXCAN SO Control Logic OSC1 Timing OSC2 Generation CLKOUT INT RX0BF RX1BF TX0RTS Control TX1RTS and Interrupt TX2RTS Registers RESET Preliminary © 2005 Microchip Technology Inc. DS21801D-page 3 MCP2515 FIGURE 1-2: EXAMPLE SYSTEM IMPLEMENTATION Node Node Node Controller Controller Controller SPI™ SPI SPI MCP2515 MCP2515 MCP2515 TX RX TX RX TX RX XCVR XCVR XCVR CANH CANL TABLE 1-1: PINOUT DESCRIPTION PDIP/SOIC TSSOP I/O/P Name Description Alternate Pin Function Pin # Pin # Type TXCAN 1 1 O Transmit output pin to CAN bus — RXCAN 2 2 I Receive input pin from CAN bus — CLKOUT 3 3 O Clock output pin with programmable Start-of-Frame signal prescaler TX0RTS 4 4 I Transmit buffer TXB0 request-to-send. General purpose digital input. 100kΩ internal pull-up to VDD 100kΩ internal pull-up to VDD TX1RTS 5 5 I Transmit buffer TXB1 request-to-send. General purpose digital input. 100kΩ internal pull-up to VDD 100kΩ internal pull-up to VDD TX2RTS 6 7 I Transmit buffer TXB2 request-to-send. General purpose digital input. 100kΩ internal pull-up to VDD 100kΩ internal pull-up to VDD OSC2 7 8 O Oscillator output — OSC1 8 9 I Oscillator input External clock input VSS 9 10 P Ground reference for logic and I/O pins — RX1BF 10 11 O Receive buffer RXB1 interrupt pin or General purpose digital output general purpose digital output RX0BF 11 12 O Receive buffer RXB0 interrupt pin or General purpose digital output general purpose digital output INT 12 13 O Interrupt output pin — SCK 13 14 I Clock input pin for SPI™ interface — SI 14 16 I Data input pin for SPI interface — SO 15 17 O Data output pin for SPI interface — CS 16 18 I Chip select input pin for SPI interface — RESET 17 19 I Active low device reset input — VDD 18 20 P Positive supply for logic and I/O pins — NC — 6,15 — No internal connection Note: Type Identification: I = Input; O = Output; P = Power Preliminary DS21801D-page 4 © 2005 Microchip Technology Inc. MCP2515 1.4 Transmit/Receive Buffers/Masks/Filters The MCP2515 has three transmit and two receive buffers, two acceptance masks (one for each receive buffer) and a total of six acceptance filters. Figure1-3 shows a block diagram of these buffers and their connection to the protocol engine. FIGURE 1-3: CAN BUFFERS AND PROTOCOL ENGINE BLOCK DIAGRAM BUFFERS Acceptance Mask RXM1 Acceptance Filter RXF2 A Acceptance Mask Acceptance Filter A c TXB0 TXB1 TXB2 RXM0 RXF3 c c GE GE GE c Acceptance Filter Acceptance Filter e Q R A Q R A Q R A e RXF0 RXF4 p EFAR S EFAR S EFAR S RTOE S RTOE S RTOE S p t XBLX E XBLX E XBLX E Acceptance Filter Acceptance Filter TAMT M TAMT M TAMT M t RXF1 RXF5 R R M X Identifier Identifier X Message B A B Queue 0 B 1 Control Transmit Byte Sequencer Data Field Data Field PROTOCOL Receive REC Error ENGINE Counter TEC Transmit ErrPas Error BusOff Counter Transmit<7:0> Receive<7:0> Shift<14:0> {Transmit<5:0>, Receive<8:0>} Comparator Protocol Finite SOF State CRC<14:0> Machine Bit Transmit Timing Clock Logic Logic Generator TX RX Configuration Registers Preliminary © 2005 Microchip Technology Inc. DS21801D-page 5 MCP2515 1.5 CAN Protocol Engine 1.5.3 ERROR MANAGEMENT LOGIC The CAN protocol engine combines several functional The Error Management Logic (EML) is responsible for blocks, shown in Figure1-4 and described below. the fault confinement of the CAN device. Its two counters, the Receive Error Counter (REC) and the 1.5.1 PROTOCOL FINITE STATE Transmit Error Counter (TEC), are incremented and MACHINE decremented by commands from the bit stream processor. Based on the values of the error counters, The heart of the engine is the Finite State Machine the CAN controller is set into the states error-active, (FSM). The FSM is a sequencer that controls the error-passive or bus-off. sequential data stream between the TX/RX shift register, the CRC register and the bus line. The FSM 1.5.4 BIT TIMING LOGIC also controls the Error Management Logic (EML) and the parallel data stream between the TX/RX shift The Bit Timing Logic (BTL) monitors the bus line input registers and the buffers. The FSM ensures that the and handles the bus-related bit timing according to the processes of reception, arbitration, transmission and CAN protocol. The BTL synchronizes on a recessive- error-signaling are performed according to the CAN to-dominant bus transition at Start-of-Frame (hard syn- protocol. The automatic retransmission of messages chronization) and on any further recessive-to-dominant on the bus line is also handled by the FSM. bus line transition if the CAN controller itself does not transmit a dominant bit (resynchronization). The BTL 1.5.2 CYCLIC REDUNDANCY CHECK also provides programmable time segments to compensate for the propagation delay time, phase The Cyclic Redundancy Check register generates the shifts and to define the position of the sample point Cyclic Redundancy Check (CRC) code, which is within the bit time. The programming of the BTL transmitted after either the Control Field (for messages depends on the baud rate and external physical delay with 0 data bytes) or the Data Field and is used to times. check the CRC field of incoming messages. FIGURE 1-4: CAN PROTOCOL ENGINE BLOCK DIAGRAM RX TX Bit Timing Logic Transmit Logic SAM REC Sample<2:0> Receive Error Counter TEC StuffReg<5:0> Transmit ErrPas Majority Error Counter Decision BusOff BusMon Comparator CRC<14:0> Protocol FSM SOF Comparator Shift<14:0> (Transmit<5:0>, Receive<7:0>) Receive<7:0> Transmit<7:0> RecData<7:0> TrmData<7:0> Interface to Standard Buffer Rec/Trm Addr. Preliminary DS21801D-page 6 © 2005 Microchip Technology Inc. MCP2515 2.0 CAN MESSAGE FRAMES standard CAN frame will win arbitration due to the assertion of a dominant lDE bit. Also, the SRR bit in an The MCP2515 supports standard data frames, extended CAN frame must be recessive to allow the extended data frames and remote frames (standard assertion of a dominant RTR bit by a node that is and extended), as defined in the CAN 2.0B sending a standard CAN remote frame. specification. The SRR and lDE bits are followed by the remaining 18 bits of the identifier (Extended lD) and the remote 2.1 Standard Data Frame transmission request bit. The CAN standard data frame is shown in Figure2-1. To enable standard and extended frames to be sent As with all other frames, the frame begins with a Start- across a shared network, the 29-bit extended message Of-Frame (SOF) bit, which is of the dominant state and identifier is split into 11-bit (most significant) and 18-bit allows hard synchronization of all nodes. (least significant) sections. This split ensures that the The SOF is followed by the arbitration field, consisting lDE bit can remain at the same bit position in both the of 12 bits: the 11-bit identifier and the Remote standard and extended frames. Transmission Request (RTR) bit. The RTR bit is used Following the arbitration field is the six-bit control field. to distinguish a data frame (RTR bit dominant) from a The first two bits of this field are reserved and must be remote frame (RTR bit recessive). dominant. The remaining four bits of the control field Following the arbitration field is the control field, are the DLC, which specifies the number of data bytes consisting of six bits. The first bit of this field is the contained in the message. Identifier Extension (IDE) bit, which must be dominant The remaining portion of the frame (data field, CRC to specify a standard frame. The following bit, Reserved field, acknowledge field, end-of-frame and intermis- Bit Zero (RB0), is reserved and is defined as a dominant sion) is constructed in the same way as a standard data bit by the CAN protocol. The remaining four bits of the frame (see Section2.1 “Standard Data Frame”). control field are the Data Length Code (DLC), which specifies the number of bytes of data (0–8bytes) 2.3 Remote Frame contained in the message. Normally, data transmission is performed on an After the control field is the data field, which contains autonomous basis by the data source node (e.g., a any data bytes that are being sent, and is of the length sensor sending out a data frame). It is possible, defined by the DLC (0 – 8 bytes). however, for a destination node to request data from The Cyclic Redundancy Check (CRC) field follows the the source. To accomplish this, the destination node data field and is used to detect transmission errors. The sends a remote frame with an identifier that matches CRC field consists of a 15-bit CRC sequence, followed the identifier of the required data frame. The by the recessive CRC Delimiter bit. appropriate data source node will then send a data The final field is the two-bit Acknowledge (ACK) field. frame in response to the remote frame request. During the ACK Slot bit, the transmitting node sends There are two differences between a remote frame out a recessive bit. Any node that has received an (shown in Figure2-3) and a data frame. First, the RTR error-free frame acknowledges the correct reception of bit is at the recessive state and, second, there is no the frame by sending back a dominant bit (regardless data field. In the event of a data frame and a remote of whether the node is configured to accept that frame with the same identifier being transmitted at the specific message or not). The recessive acknowledge same time, the data frame wins arbitration due to the delimiter completes the acknowledge field and may not dominant RTR bit following the identifier. In this way, be overwritten by a dominant bit. the node that transmitted the remote frame receives the desired data immediately. 2.2 Extended Data Frame 2.4 Error Frame In the extended CAN data frame, shown in Figure2-2, the SOF bit is followed by the arbitration field, which An error frame is generated by any node that detects a consists of 32 bits. The first 11 bits are the Most bus error. An error frame, shown in Figure2-4, consists Significant bits (MSb) (Base-lD) of the 29-bit identifier. of two fields: an error flag field followed by an error These 11 bits are followed by the Substitute Remote delimiter field. There are two types of error flag fields. Request (SRR) bit, which is defined to be recessive. The type of error flag field sent depends upon the error The SRR bit is followed by the lDE bit, which is status of the node that detects and generates the error recessive to denote an extended CAN frame. flag field. It should be noted that if arbitration remains unresolved after transmission of the first 11 bits of the identifier, and one of the nodes involved in the arbitration is sending a standard CAN frame (11-bit identifier), the Preliminary © 2005 Microchip Technology Inc. DS21801D-page 7 MCP2515 2.4.1 ACTIVE ERRORS 2.5 Overload Frame If an error-active node detects a bus error, the node An overload frame, shown in Figure2-5, has the same interrupts transmission of the current message by format as an active error frame. An overload frame, generating an active error flag. The active error flag is however, can only be generated during an interframe composed of six consecutive dominant bits. This bit space. In this way, an overload frame can be differen- sequence actively violates the bit-stuffing rule. All other tiated from an error frame (an error frame is sent during stations recognize the resulting bit-stuffing error and, in the transmission of a message). The overload frame turn, generate error frames themselves, called error consists of two fields: an overload flag followed by an echo flags. overload delimiter. The overload flag consists of six The error flag field, therefore, consists of between six dominant bits followed by overload flags generated by and twelve consecutive dominant bits (generated by other nodes (and, as for an active error flag, giving a one or more nodes). The error delimiter field (eight maximum of twelve dominant bits). The overload recessive bits) completes the error frame. Upon delimiter consists of eight recessive bits. An overload completion of the error frame, bus activity returns to frame can be generated by a node as a result of two normal and the interrupted node attempts to resend the conditions: aborted message. 1. The node detects a dominant bit during the interframe space, an illegal condition. Note: Error echo flags typically occur when a Exception: The dominant bit is detected during localized disturbance causes one or more the third bit of IFS. In this case, the receivers will (but not all) nodes to send an error flag. interpret this as a SOF. The remaining nodes generate error flags 2. Due to internal conditions, the node is not yet in response (echo) to the original error able to begin reception of the next message. A flag. node may generate a maximum of two 2.4.2 PASSIVE ERRORS sequential overload frames to delay the start of the next message. If an error-passive node detects a bus error, the node transmits an error-passive flag followed by the error Note: Case 2 should never occur with the delimiter field. The error-passive flag consists of six MCP2515 due to very short internal consecutive recessive bits. The error frame for an error- delays. passive node consists of 14 recessive bits. From this it follows that, unless the bus error is detected by an error- 2.6 Interframe Space active node or the transmitting node, the message will continue transmission because the error-passive flag The interframe space separates a preceding frame (of does not interfere with the bus. any type) from a subsequent data or remote frame. The interframe space is composed of at least three If the transmitting node generates an error-passive flag, recessive bits called the Intermission. This allows it will cause other nodes to generate error frames due nodes time for internal processing before the start of to the resulting bit-stuffing violation. After transmission the next message frame. After the intermission, the of an error frame, an error-passive node must wait for bus line remains in the recessive state (bus idle) until six consecutive recessive bits on the bus before the next transmission starts. attempting to rejoin bus communications. The error delimiter consists of eight recessive bits and allows the bus nodes to restart bus communications cleanly after an error has occurred. Preliminary DS21801D-page 8 © 2005 Microchip Technology Inc. MCP2515 FIGURE 2-1: STANDARD DATA FRAME 1 S F 1 I 1 1 1 7 End-of-Frame 111 1 1 leD KCA 1 tiB tolS kcA leD CRC 1 d el 16C Fi C CR 15CR N) 8 + 4 4 8 = s bit s Frame (number of ≤≤8N (0N8)Data Field mit/Receive Buffer Bit-stuffing a ns Dat 8 n Tra d i e or St 0CLD h 6ontroleld4 3CLD DataLengtCode CFi 0BR 0 tiB devreseR EDI 0 RTR 0 0DI eld 3DI ers Fi er uff 12Arbitration 11 Identifi MessageFiltering Stored in B 01 DI emarF-fo-tratS 0 Preliminary © 2005 Microchip Technology Inc. DS21801D-page 9 MCP2515 FIGURE 2-2: EXTENDED DATA FRAME S 1 F 1 I 1 1 7 End-of-Frame 1111 1 1 leD KCA 1 tiB tolS kcA leD CRC 1 d el 16C Fi 5 RC R 1 C C N) 8 s er of bits = 64 + 8 ≤ ≤ 8N (0 N 8)Data Field mit/Receive Buffer mb ns u a e (n 8 n Tr Data Fram 6ControlField 4 30RCC10BBTLLRRRDD 000 stDataib LengthdeCodevreseRStored i Bit-stuffing 0DIE er ntifi e d 8 d I 1 e d n e 32 Arbitration Field 71RDE0RDDISEII 11 Ext Stored in Buffers 11 3DI ntifier ssageering de MeFilt I 01DI emarF-fO-tratS 0 Preliminary DS21801D-page 10 © 2005 Microchip Technology Inc.
Description: