CAN, Controller Area Network

CAN is a multi-master serial bus system where each node can access the bus simultaneously. The decision if a node finally gets the real bus access for transmission is made whilst the nodes are already transmitting their messages. This system defined in ISO 11898 is real time capable and is using the two bottom layers of the ISO/OSI-Layer-Model.

There is no direct addressing of nodes or endpoints in CAN networks in ordinary sense. but the messages are transmitted using a priority system based on the message contents itself. A sending node is transmitting theirs message to each CAN-node within the network whereas these nodes can decide to ignore it based on the identifier of the message. This identifier is also the essential part for the priority system.

Each CAN message may contain up to 8 Byte of users data while bigger amounts of data may be splitted into smaller packages. The maximum transmission rate is fixed to 1 Mbit/s, which applies to a allover network length of 40 meters. For longer distances the baudrate has to be reduced, resulting in the following table:

  • 1 Mbit/s <= 40 m
  • 125 kbit/s <= 500 m
  • 50 kbit/s <= 1000 m

Cheap controllers providing the CAN data link layer and the ability of easy connecting are distributed since 1989. Nowadays more than 25 CAN transceivers from over 10 vendors are available, where gate array solutions are not included.

The main criterias for the uses of CAN are as follows:

  • low costs
  • reliable function, also with extreme environmental conditions
  • excelent real time ability and
  • a good usability

CANopen

is a communication protocol based on CAN, mainly used for automation technology and for connection within complex devices. The main area of circulation of CANopen is europe, but the amount of users in North America and also Asia is growing.

CANopen is supporting communication objects holding data from a object dictionary what enables the user or other devices to read, write or request data or to react on a data change or a data event. Additionally there are specific device- and users profiles, describing the functions of a device or the application in detail.