![](http://datasheet.mmic.net.cn/Microchip-Technology/DSPIC30F4011-30I-ML_datasheet_97166/DSPIC30F4011-30I-ML_129.png)
2010 Microchip Technology Inc.
DS70135G-page 129
dsPIC30F4011/4012
19.0
CAN MODULE
19.1
Overview
The Controller Area Network (CAN) module is a serial
interface, useful for communicating with other CAN
modules or digital signal controller devices. This inter-
face/protocol was designed to allow communications
within noisy environments. The dsPIC30F4011/4012
devices have 1 CAN module.
The CAN module is a communication controller imple-
menting the CAN 2.0 A/B protocol, as defined in the
BOSCH specification. The module will support CAN 1.2,
CAN 2.0A, CAN2.0B Passive and CAN 2.0B Active
versions of the protocol. The module implementation is
a full CAN system. The CAN specification is not covered
within this data sheet. The reader may refer to the
BOSCH CAN specification for further details.
The module features are as follows:
Implementation of the CAN protocol CAN 1.2,
CAN 2.0A and CAN 2.0B
Standard and extended data frames
0-8 bytes data length
Programmable bit rate up to 1 Mbit/sec
Support for remote frames
Double-buffered receiver with two prioritized
received message storage buffers (each buffer
may contain up to 8 bytes of data)
6 full (standard/extended identifier), acceptance
filters, 2 associated with the high priority receive
buffer and 4 associated with the low priority
receive buffer
2 full, acceptance filter masks, one each associated
with the high and low priority receive buffers
Three transmit buffers with application specified
prioritization and abort capability (each buffer may
contain up to 8 bytes of data)
Programmable wake-up functionality with
integrated low-pass filter
Programmable Loopback mode supports self-test
operation
Signaling via interrupt capabilities for all CAN
receiver and transmitter error states
Programmable clock source
Programmable link to input capture module (IC2,
for both CAN1 and CAN2) for time-stamping and
network synchronization
Low-power Sleep and Idle mode
The CAN bus module consists of a protocol engine and
message buffering/control. The CAN protocol engine
handles all functions for receiving and transmitting
messages on the CAN bus. Messages are transmitted
by first loading the appropriate data registers. Status
and errors can be checked by reading the appropriate
registers. Any message detected on the CAN bus is
checked for errors and then matched against filters to
see if it should be received and stored in one of the
receive registers.
19.2
Frame Types
The CAN module transmits various types of frames
which include data messages or remote transmission
requests, initiated by the user, as other frames that are
automatically generated for control purposes. The
following frame types are supported:
19.2.1
STANDARD DATA FRAME
A standard data frame is generated by a node when the
node wishes to transmit data. It includes an 11-bit
Standard Identifier (SID) but not an 18-bit Extended
Identifier (EID).
19.2.2
EXTENDED DATA FRAME
An extended data frame is similar to a standard data
frame but includes an extended identifier as well.
19.2.3
REMOTE FRAME
It is possible for a destination node to request the data
from the source. For this purpose, the destination node
sends a remote frame with an identifier that matches
the
identifier
of the required
data
frame. The
appropriate data source node will then send a data
frame as a response to this remote request.
19.2.4
ERROR FRAME
An error frame is generated by any node that detects a
bus error. An error frame consists of 2 fields: an error
flag field and an error delimiter field.
19.2.5
OVERLOAD FRAME
An overload frame can be generated by a node as a
result of 2 conditions. First, the node detects a domi-
nant bit during interframe space which is an illegal
condition. Second, due to internal conditions, the node
is not yet able to start reception of the next message. A
node may generate a maximum of 2 sequential
overload frames to delay the start of the next message.
19.2.6
INTERFRAME SPACE
Interframe space separates a proceeding frame (of
whatever type) from a following data or remote frame.
Note:
This data sheet summarizes features of
this group of dsPIC30F devices and is not
intended to be a complete reference
source. For more information on the CPU,
peripherals,
register
descriptions
and
general device functionality, refer to the
dsPIC30F
Family
Reference
Manual
(DS70046). For more information on the
device instruction set and programming,
refer to the “16-bit MCU and DSC
Reference Manual” (DS70157).