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.