162
ATmega16M1/32M1/64M1 [DATASHEET]
8209E–AVR–11/2012
transmits also observes the bus level and thus detects differences between the bit sent and the bit received.
This permits reliable detection of global errors and errors local to the transmitter.
Bit Stuffing
The coding of the individual bits is tested at bit level. The bit representation used by CAN is "Non Return to Zero
(NRZ)" coding, which guarantees maximum efficiency in bit coding. The synchronization edges are generated
by means of bit stuffing.
19.3.5.3
Error signalling
If one or more errors are discovered by at least one node using the above mechanisms, the current transmission is
aborted by sending an "error flag". This prevents other nodes accepting the message and thus ensures the consis-
tency of data throughout the network. After transmission of an erroneous message that has been aborted, the
sender automatically re-attempts transmission.
19.4
CAN controller
The CAN controller implemented into Atmel ATmega16M1/32M1/64M1 offers V2.0B Active.
This full-CAN controller provides the whole hardware for convenient acceptance filtering and message manage-
ment. For each message to be transmitted or received this module contains one so called message object in which
all information regarding the message (for example identifier, data bytes etc.) are stored.
During the initialization of the peripheral, the application defines which messages are to be sent and which are to
be received. Only if the CAN controller receives a message whose identifier matches with one of the identifiers of
the programmed (receive-) message objects the message is stored and the application is informed by interrupt.
Another advantage is that incoming remote frames can be answered automatically by the full-CAN controller with
the corresponding data frame. In this way, the CPU load is strongly reduced compared to a basic-CAN solution.
Using full-CAN controller, high baud rates and high bus loads with many messages can be handled.