Master the CAN terminology
Basic CAN – usually means a CAN controller which puts incoming CAN messages into a small FIFO. The host CPU has to read all arriving messages from the FIFO.
Bus Off – a CAN controller is said to be “off the bus” or “bus off” if it’s not participating in the bus traffic.
Bus On – a CAN controller is said to be “on the bus” or “bus on” if it’s actively participating in the bus traffic.
CAN Controller – the chip handling the CAN protocol, message buffers, and so on. The controller connects to the CAN bus via a transceiver chip.
CANopen – a higher-layer protocol commonly used in automation industry. The spec is maintained and developed by CiA.
CAN Transceiver – a circuit that adapts the TTL level signals from the CAN controller to the signal levels that are used on the CAN bus.
CiA – CAN In Automation – a user organization for people interested in CAN. See their web site www.can-cia.org.
DeviceNet – a higher layer protocol for CAN, used for automation. Standardized by ODVA.
DLC – Data Length Code. A part of the CAN message. It used to mean simply the length of the CAN message, in bytes, and so had a value between 0 and 8 inclusive. In the revised CAN standard (from 2003) it can take any value between 0 and 15 inclusive, however the length of the CAN message is still limited to at most 8 bytes. All existing CAN controllers will handle a DLC larger than 8.
Error Active – a CAN controller that is error active is actively participating in the error handling on the CAN bus. When errors are detected, it will send out error frames.
Error Passive – a CAN controller that is error passive is only passively participating in the error handling on the CAN bus. When an error is detected it will “send out” a passive error frame – which can’t be detected outside of the controller.
Error Frame – a special pattern (6 dominant and 6 recessive bits) sent on the bus when a controller detects an error. The pattern violates the CAN protocol and so causes all other controllers to detect the error, too.
Extended CAN – also called CAN 2.0B – a protocol variation where the identifiers are 29 bits long. Commonly used in automotive CAN networks. Also see Standard CAN.
Full CAN – usually means a CAN controller that has a number (typically 10-30) of message buffers. Each message buffer can accommodate one CAN message. When a CAN message arrives, it is stored in the appropriate buffer and the old contents is discarded. That is, each buffer always contains the latest message with a particular identifier.
High-speed CAN – a term which usually means a CAN bus following the ISO 11898-2 physical layer. This is the normal type of CAN bus. It can operate from around 10 kbit/s up to 1 Mbit/s.
Identifier – the first part of a CAN message, often used to identify the contents of the message, hence the name. People usually talk about standard CAN where the identifier is 11 bit long, and extended CAN where it is 29 bits long.
ISO – International Sightseeing Organization, sorry, International Organization for Standardization. These people standardize a lot of things, including CAN. Here’s a short list.
J1939 – a higher layer protocol for CAN, defined by standard SAE J1939. Commonly used in bus and trucks.
Low-speed CAN – a term which usually means a CAN bus following the physical layer defined by ISO 11898-3. The CAN protocol is the same as used by high-speed CAN and is defined by ISO 11898-1. A CAN bus of this type is fault-tolerant and can operate up to 125 kbit/s.
Message Buffer – typical CAN controllers implement a number (typically 16 or so) of message buffers where the programmer can read the received messages and/or write the messages that are to be transmitted.
Remote Frame – a message on the CAN bus with a particular bit set. The standard defines this message to mean a request for data, so the thought is that some node will see the remote frame and supply the requested data by sending an ordinary data frame.
Remote Request – RTR – see Remote Frame.
SJW – abbreviation for Synchronization Jump Width – a quantity that determines how much a CAN controller is allowed to adjust its on-chip clock to run in sync with other nodes on the bus. A typical value would be some 10-20% of a bit.
Standard CAN – also called CAN 2.0A – the original protocol variant where the identifiers are 11 bit long. Also see Extended CAN.
SWC – Single-Wire CAN. A physical layer for CAN, defined by standard SAE J2411. Chiefly used in slow automotive body buses, such as GM-LAN.
TTC – Time-Triggered CAN. Standard CAN with extensions to support a global clock and scheduled transmission of messages in a system.