AP29000
Connecting C166 and C500 Microcontroller to CAN
The Controller Area Network (CAN)
Application Note
21
V 1.0, 2004-02
CAN modules specified after CAN V2.0 part A are only able to transmit and receive
Standard Frames according to the Standard CAN protocol. Messages using the 29-bit
identifier cause errors. If a device is specified after CAN V2.0 part B, there’s one more
distinction. Modules named "Part B Passive" can transmit and receive Standard
Frames but tolerate Extended Frames without generating Error Frames. "Part B
Active" devices are able to transmit and receive both Standard and Extended Frames.
3.6.2
Basic CAN, Full CAN
There is one more CAN characteristic concerning the interface between the CAN
module and the host CPU, dividing CAN chips into "Basic CAN" and "Full CAN"
devices. This has nothing to do with the used protocol though (Standard or Extended
CAN), which makes it possible to use both Basic and Full CAN devices in the same
network.
In the Basic CAN devices, only basic functions of the protocol are implemented in
hardware, e.g. the generation and the check of the bit steam. The decision, if a
received message has to be stored or not (acceptance filtering) and the whole
message management has to be done by software, i.e. by the host CPU. Mostly the
CAN chip also only provides one transmit buffer and one or two receive buffers. So the
host CPU load is quite high using Basic CAN modules, therefore these devices should
only be used at low baudrates and low bus loads with only a few different messages.
The advantages of Basic CAN are the small chip size leading to low costs of these
devices.
Full CAN devices do the whole bus protocol in hardware including the acceptance
filtering and the message management. They contain several so called message
objects which handle the identifier, the data, the direction (receive or transmit) and the
information Standard CAN / Extended CAN. During the initialisation of the device, the
host CPU defines which messages are to be sent and which are to be received. The
host CPU is informed by interrupt if the identifier of a received message matches with
one of the programmed (receive-) message objects. In this way, the CPU load is
strongly reduced. Using Full CAN devices, high baudrates and high bus loads with
many messages can be handled. These chips are more expensive than the Basic CAN
devices, though.
Many Full CAN chips provide a "Basic-CAN-Feature": One of their message objects
can be programmed in a way that every message is stored there that does not match
with one of the other message objects. This can be very helpful in a number of
applications.