Pre-defined connection set

The CANopen system designer is responsible that the used CAN-IDs are assigned uniquely to the CANopen devices. In order to simplify this task, CANopen specifies a pre-defined connection set. This is a set of default CAN-IDs assigned to the provided CANopen application layer protocols. Therefore, the default CAN-IDs have a 4-bit function code and the 7-bit node-ID.

Pre-defined CAN-IDs for CANopen protocols

Message Function code Resulting CAN-ID
(depending on assigned node-ID)
Index/sub-index of COB-ID parameter
NMT 00002 00016 (0) Not configurable
SYNC 00012 08016 (128) 1005 0016
EMCY 00012 08116 (129) to 0FF16 (255) 1014 0016
TIME 00102 10016 (256) 1012 0016
TPDO_1 00112 18116 (385) to 1FF16 (511) 1800 0116
RPDO_1 01002 20116 (513) to 27F16 (639) 1400 0116
TPDO_2 01012 28116 (641) to 2FF16 (767) 1801 0116
RPDO_2 01102 30116 (769) to 37F16 (895) 1401 0116
TPDO_3 01112 38116 (897) to 3FF16 (1023) 1802 0116
RPDO_3 10002 40116 (1025) to 47F16 (1151) 1402 0116
TPDO_4 10012 48116 (1153) to 4FF16 (1279) 1803 0116
RPDO_4 10012 50116 (1281) to 57F16 (1407) 1403 0116
TSDO_1 a 10112 58116 (1409) to 5FF16 (1535) Not configurable
RSDO_1 b 11002 60116 (1537) to 57F16 (1663) Not configurable
Boot-up/Heartbeat 11102 70116 (1793) to 77F16 (1919) Not configurable

a default server SDO message (server-to-client);
b default server SDO message (client-to-server)

The CAN-IDs for the NMT message, the two default Server SDO messages, and the Heartbeat message are not configurable. This is to avoid loosing nodes. In other words, there is always the opportunity to access the CANopen device depending of its node-ID (default SDO channel) and observe it (Heartbeat). All other CAN-IDs are matter of configuration, in particular those of the PDOs. The configuration is done by means of the COB-ID parameters in the related object dictionary entries. COB-ID parameters are 32-bit values. The Bit 29 indicates, if 11-bit (default) or 29-bit CAN-IDs are used. The Bit 31 and Bit 30 are used protocol-specific.

Of course, the node-ID still needs to be assigned uniquely by the system designer. There are different options, how to set the node-ID. Common are DIP switch, local I/O, and the Layer Setting Services as defined in CiA 305. Alternatively, geographical addressing by means of connectors with additional pins can be used to assign a node-ID (e.g. pre-installed wiring harnesses).

The CANopen pre-defined connection set guarantees that no CAN-ID is assigned to two nodes, if the node-IDs are distributed uniquely. The corresponding client SDOs, TIME publisher, and SYNC publisher do not need to be implemented in one entity, they could be in different nodes. The corresponding EMCY consumers and RPDOs can be configured in multiple nodes. The corresponding TPDOs shall be provided by one entity, which could be in different CANopen devices.

To make it clear: In many cases, the NMT master device implements all corresponding client SDOs, the SYNC and TIME producers. In a strict master/slave system also the corresponding TPDOs and RPDOs are hosted in the NMT master device. Additionally, this device consumes all Heartbeat and Boot-up messages.