Canopen: High-Level Protocol For Can-Bus
Canopen: High-Level Protocol For Can-Bus
Canopen: High-Level Protocol For Can-Bus
CANopen
high-level protocol for CAN-bus
H. Boterenbrood
NIKHEF, Amsterdam
November 15, 2005
Version 3.1
Contents
1 INTRODUCTION ......................................................................................................................................... 2
2 CAL................................................................................................................................................................. 2
3 CANOPEN ..................................................................................................................................................... 3
3.1 CANOPEN OBJECT DICTIONARY .............................................................................................................. 3
3.2 CANOPEN COMMUNICATION .................................................................................................................... 5
3.3 CANOPEN PREDEFINED CONNECTION SET ............................................................................................... 7
3.4 CANOPEN IDENTIFIER DISTRIBUTION ....................................................................................................... 8
3.5 CANOPEN BOOT-UP PROCESS ................................................................................................................... 9
3.6 DETAILS OF CANOPEN MESSAGE SYNTAX .............................................................................................. 10
3.6.1 NMT Module Control ................................................................................................................... 10
3.6.2 NMT Node Guarding.................................................................................................................... 10
3.6.3 NMT Boot-up ................................................................................................................................ 10
3.6.4 PDO ............................................................................................................................................... 11
3.6.5 SDO ............................................................................................................................................... 11
3.6.6 Emergency Object ......................................................................................................................... 14
4 SUMMARY.................................................................................................................................................. 16
1
CANopen 15-Nov-2005
Version History
Version Date Comments
1.x 1998 First draft versions
2.0 1999 Change of title; change in chapter numbering; addition of CAN message syntax
details
2.0a 7 April 1999 Corrected error in table 7 and 8 captions
3.0 20 March 2000 Several additions in accordance with CiA DS301 CANopen Communication Pro-
file Version 4.0 (update from 3.0)
3.1 15 Nov 2005 Some additions to description of SDO.
2
CANopen 15-Nov-2005
CMS defines 8 priority levels in its messages, Central concept in CANopen is the Device Object
each having 220 COB-IDs, occupying COB-IDs 1 Dictionary (OD), a concept used in other fieldbus
to 1760; the remaining identifiers (0, 1761-2031) systems as well (Profibus, Interbus-S).
are reserved for NMT, DBT and LMT. See Table 1. Note that the Object Dictionary concept is not
In a CAN-network the lower the value of the part of CAL, it is an implementation aspect of
COB-ID, the higher the priority of the correspond- CANopen.
ing message on the network is.
In the following sections we will first present the
Note that this standard assumes CAN2.0A (CAN Object Dictionary, and only then the CANopen
Standard Message Frame) having an 11-bit identi- communication mechanisms.
fier, allowing a range of [0, 2047], but which -for
historical reasons- is limited to [0, 2031]. However
using CAN2.0B (CAN Extended Message Frame)
3.1 CANopen Object Dictionary
with 29-bit identifier doesn't change the picture: the
11-bits range in the table maps to the 11 most sig-
nificant bits of the 29-bits COB-ID and the COB- The CANopen Object Dictionary (OD) is an or-
ID ranges in the table will just become (much) lar- dered grouping of objects; each object is addressed
ger. using a 16-bit index. To allow individual elements
of structures of data to be accessed an 8-bit sub-
index has been defined as well. The general layout
of the CANopen OD is shown in Table 2.
Don't be confused by all the 'data types' located in
the OD at indices below 0FFF; they're there mainly
3
CANopen 15-Nov-2005
for definition purposes only. The relevant range of a whether the object is 'read only' or 'write only' or
node's OD lies between 1000 and 9FFF. 'read/write', etc.
For every node in the network there exists an OD. The description of a device's communication
The OD contains all parameters describing the de- functionality and objects and its device-specific
vice and its network behaviour. objects and their default values is proviced in the
The OD of a node mainly exists in the form of a form of an Electronic Data Sheet (EDS), an ASCII
database described in the EDS (see below) or on file with a strictly defined syntax.
paper. It is not necesssarily possible to 'interrogate' A description of the object configuration of an
a node via the CAN-bus about all its parameters in individual device is called a Device Configuration
its OD. It is sufficient if the node behaves exactly File (DCF) and has the same structure as an EDS.
according to its OD description on paper. The node Both file types are defined in the CANopen specifi-
itself only needs to be able to present at least all cation.
mandatory OD entries (as dictated by CANopen; The profiles define which OD objects are manda-
these are actually very few), and optionally any tory and which are optional; the number of manda-
other entries that form part of the configurable tory objects is kept to a minimum allowing lean
functionality of the node. implementations.
Optional features –in the communication part as
CANopen is defined in the form of documents de- well as the device-specific part– can be added as
scribing profiles. required to extend a CANopen device's functional-
ity.
There is the communication profile [2] describ- If more features are required than are present in
ing the general form of the OD and the objects in the profile, there is plenty of space in the profile
the OD's Communication Profile Area, the commu- available for the addition of manufacturer-specific
nication parameters; it also describes the CANopen functionality.
communication objects (see next section); this pro-
file applies to all CANopen devices. So the part of the OD describing the communica-
Then there are the various device profiles (e.g. tion parameters is the same for all CANopen de-
[3]) defining for a particular type of devices the OD vices (i.e. object placing in the OD is the same, not
objects; there are now about 5 different device pro- necessarily the value of the object…), the device-
files and several more are under development. specific part of the OD is different for different
A profile describes for each OD object its func- (classes of) devices.
tion, its name, its index and sub-index, its data type,
whether the object is mandatory or optional,
4
CANopen 15-Nov-2005
Table 3. Definition of PDO transmission types in CANopen; for types 1 to 240 the number indicates
the number of SYNC objects between two PDO transmissions.
¾ An SDO is implemented as a CMS object of
3.2 CANopen communication type 'Multiplexed Domain' according to
CAL, thus permitting transfer of data of any
length (as data is split up over several CAN
Now that we have presented the concept of the
messages if necessary, which is when data
Object Dictionary we now will look at the messages
occupies more than 4 bytes).
that are communicated in CANopen networks, their
The protocol is of the 'confirmed service'
content and their function, in other words: the
type: a reply is generated for every CAN
CANopen communication model (see [2]).
message (one SDO requires 2 CAN-
identifiers). The SDO request and reply mes-
NB: be sure to make the distinction between OD sage always contain 8 bytes (the number of
objects (objects in the Object Dictionary) – non-significant bytes is shown as part of the
characterized by their OD index and sub-index, as first byte, which carries protocol informa-
described in the previous section– and communica- tion), thus communication via an SDO has a
tion objects or messages, characterized by their considerable overhead.
COB-ID or CAN-identifier, described in this sec-
tion. 3. Process Data Object (PDO):
¾ Is used to transfer real-time data; data is
The CANopen communication model defines four transferred from one (and only one) pro-
types of messages (communication objects): ducer to one or more consumers. Data trans-
fer is limited to 1 to 8 bytes (for example:
1. Administrative message: one PDO can transfer at maximum 64 digital
¾ Layer management, network management I/O values, or 4 16-bit analogue inputs).
and identifier distribution services: i.e ini- It has no protocol overhead. The data con-
tialisation, configuration and supervision of tent of a PDO is defined through its CAN-
the network (the latter aspect includes identifier only and this content is assumed
'node/life guarding': see below). known to sender as well as receiver(s) of the
¾ Services and protocols are according to the PDO.
LMT, NMT and DBT service elements of ¾ Each PDO is described by 2 objects in the
CAL. These services are all based on a Mas- Object Dictionary:
ter-Slave concept: in a CAN-network there ♦ PDO Communication Parameter: con-
is only one LMT-, NMT- or DBT-master tains which COB-ID is used by the PDO,
and one or more slaves. the transmission type, inhibit time and
timer period (see below for more details).
2. Service Data Object (SDO): ♦ PDO Mapping Parameter: contains a list
¾ An SDO provides a client access to entries of objects from the Object Dictionary
(objects) of a device OD (the device is the that are mapped into the PDO, including
server) using the object's OD index and sub- their size in bits (the producer as well as
index, contained in the first few bytes of the the consumers of a PDO have to know
CAN-message. the mapping to be able to interpret the
contents of a PDO).
5
CANopen 15-Nov-2005
6
CANopen 15-Nov-2005
CANopen device
Figure 2. Schematic relationship between CAN-bus communication, Object Dictionary and applica-
tion software on a CANopen device.
¾ Boot-up responding identifiers only for the supported com-
♦ Master-slave concept. munication objects.
♦ By sending this message the NMT slave
indicates to the NMT master that is has The allocation scheme is based on the division of
transitioned from state Initialising to the 11-bit CAN-identifier into a 4-bit function code
state Preoperational (see section 3.5). part and a 7-bit node-identifier (Node-ID) part as
shown in Figure 3.
So two of the above-mentioned types of commu- ← Bit number
nication objects are meant for data transfer. They 10 9 8 7 6 5 4 3 2 1 0
implement two different mechanisms of data trans-
fer:
♦ SDO is used for (large,) low-priority data trans- Function Code Node-ID
fer between devices, typically used for configur-
ing the devices on a CANopen network.
♦ PDO is used for fast data transfer of 8 bytes of Figure 3. Structure of the 11-bit CAN-identifier
data or less without protocol overhead (the in the CANopen Predefined Master /
meaning of the data content has been defined Slave Connection Set.
beforehand).
The Node-ID is defined by the system integrator,
A CANopen device has to support a number of the for example by setting DIP switches on the device.
network management services (administrative mes- The Node-ID has to be in the range from 1 to 127
sages) and needs a minimum of one SDO. Each (0 (zero) not allowed).
CANopen device that produces or consumes proc-
ess data should have at least one PDO. All other The predefined connection set defines 4 Receive
communication objects are optional. PDOs, 4 Transmit PDOs, 1 SDO (occupying 2
CAN-identifiers), 1 Emergency Object and 1 Node-
For more details about the various CANopen Error-Control Identifier.
communication objects see [2]. See also section 3.6. It also supports the broadcasting of non-
confirmed NMT-Module-Control services, SYNC-
The relation between CAN communication, the and Time Stamp-objects.
Object Dictionary and application software on a
CANopen device is schematically illustrated in The resulting CAN-identifier allocation scheme is
Figure 2. shown in Table 4.
7
CANopen 15-Nov-2005
Comparing the identifier mapping of the default next section), using the (predefined) SDO to
CANopen set in Table 4 to the mapping of CAL in write new values to the appropriate locations
Table 1 clearly shows how CANopen objects with in the node's Object Dictionary.
specific defined functions map to the general CMS
objects of CAL, illustrating how CANopen imple- ¾ using the CAL DBT (DistriBuTor) services:
ments a system using the more general CAL facili- nodes or slaves connected to a CANopen net-
ties. work are initially identified by their configured
Node-ID. The Node-ID may be configured by
3.4 CANopen identifier distribution setting DIPswitches on the device or by use of
CAL Layer Management services (LMT).
When the network initializes and boots the
The allocation of CAN-identifiers (or COB-IDs)
network master initially establishes a dialog
in CANopen can take place in 3 different ways:
with each connected slave by means of a 'Con-
nect_Remote_Node' telegram (a CAL NMT
¾ using the Predefined Master/Slave Connection
service). Once this dialog has been established
Set (see previous section):
the CAN identifiers for communication of
allocation of identifiers is default, so no con-
SDOs and PDOs are allocated to the node us-
figuration is needed; configuration of PDO
ing CAL Distribution services (DBT); it re-
data contents (socalled PDO mapping) is pos-
quires the node to support extended boot-up
sible if the node supports it.
(see next section).
¾ modifying the PDO identifiers after power-up
(when the node is in Pre-Operational state; see
*
The COB-ID range covers the allowed Node-ID range from 1 to 127.
8
CANopen 15-Nov-2005
3.5 CANopen boot-up process The CAN-message carrying this NMT service
consists of the CAN-header (with COB-ID=0) and
two data bytes, 1 byte containing the requested ser-
In the network initialisation process CANopen
vice ('NMT command specifier') and the second
supports a socalled extended boot-up as well as a
byte the Node-ID, or zero which addresses all nodes
socalled minimum boot-up process.
simultaneously.
Extended boot-up is optional, minimum boot-up
has to be supported by all CANopen devices or
There is one node the CAN-network that acts as
nodes; both types of nodes can exist side-by-side on
the NMT-master. It issues the NMT messages and
the same network.
controls the node initialization process.
A node has to support the extended boot-up proc-
CANopen devices supporting only the minimum
ess if the identifier distribution is by means of CAL
boot-up are also called minimum capability devices.
DBT services (see previous section).
Minimum capability devices enter the Pre-
Operational state automatically after finishing the
Both initialisation processes can be represented
device initialization. In this state device parameteri-
by a device or node state-transition diagram as
zation and COB-ID-allocation via SDO is possible.
shown in Figure 4 for a minimum boot-up node.
By switching a device into the Prepared state it is
The extended boot-up state diagram has a few more
forced to stop communication altogether, except
states between the Pre-Operational and the Opera-
NMT services, and node guarding, if supported and
tional state.
active. ('Stopped' would be a better name to de-
scribe this state).
NMT services are used to bring all or selected
nodes into various operating states at any time.
Power-on
Initialising
(f)
5 6 4
Pre-Operational
(a, b, c, d) 3
1 2
Stopped
1 (a, b)
3
2
Operational
(a, b, c, d, e)
Figure 4. State transition diagram for a CANopen minimum boot-up node. The letters in brackets
show which communication object types are allowed inside the different states:
a. NMT, b. Node Guard, c. SDO, d. Emergency, e. PDO, f. Boot-up
State transitions (1-5: initiated by NMT services) and the NMT command specifier (in brackets):
1: Start_Remote_Node (0x01)
2: Stop_Remote_Node (0x02)
3: Enter_Pre-Operational_State (0x80)
4: Reset_Node (0x81)
5: Reset_Communication (0x82)
6: Device initialisation finished,
enter Pre-Operational state automatically, send Boot-up message
9
CANopen 15-Nov-2005
COB-ID Byte 0
0x700 + Node_ID bit 7: toggle, bit 6-0: state
10
CANopen 15-Nov-2005
3.6.5 SDO
The Service Data Object (SDO) is used to access
3.6.4 PDO the Object Dictionary of a device. The requester of
As an example lets assume the mapping of the the OD access is called the Client and the CANopen
second transmit-PDO is as follows (in CANopen device, whose OD is accessed and services the re-
described by Object Dictionary entry 0x1A01): quest, is called the Server. The Client CAN-
message as well as the reply Server CAN-message
always contain 8 bytes (although not all bytes nec-
Object 0x1A01: 2nd transmit PDO mapping
essarily contain meaningful data). A Client request
Subindex Value Meaning is always confirmed by a reply from the Server.
0 2 2 objects are mapped There are 2 mechanisms for SDO transfer:
into the PDO ♦ Expedited transfer: used for data objects up to
1 0x60000208 Object 0x6000, subin- 4 bytes in length.
dex 0x02, consisting of ♦ Segmented transfer: for objects with length > 4
8 bits bytes.
2 0x64010110 Object 0x6401, subin-
dex 0x01, consisting of The basic structure of an SDO is:
16 bits Client ⇒ Server / Server ⇒ Client
In the definitions of the CANopen Device Profile Byte 0 Byte 1-2 Byte 3 Byte 4-7
for I/O modules (CiA DSP-401, [3]) Object 0x6000 SDO
Object Object
sub 0x02 is the second set of 8 bits of digital inputs Command **
Index Subindex
on the node and Object 0x6401 sub 0x01 is the first Specifier
16-bit analog input on the node. (** up to 4 bytes data (expedited transfer)
or a 4 bytes byte-counter (segmented transfer)
This PDO, if it is sent (triggered by a change of or parameters regarding block transfer
input, a timer interrupt, a remote transmission re- (new SDO transfer mechanism, see below))
quest, etc., in accordance with the PDO's transmis- or
sion type (see Table 3), to be found in Object Client ⇒ Server / Server ⇒ Client
0x1801 subindex 2) thus consists of a CAN- Byte 0 Byte 1-7
message with 3 data bytes and looks like this: SDO up to 7 bytes of data
PDO-producer ⇒ PDO-consumer(s) Command (segmented transfer)
Specifier
COB-ID Byte 0 Byte 1 Byte 2
0x280 + 8-bits LSB 16-bit MSB 16-bit
The SDO Command Specifier contains the follow-
Node_ID digital in analog in analog in
ing information:
By changing the contents of Object 0x1A01 the ♦ download / upload
contents of the PDO can be changed (if the node ♦ request / response
supports this (so-called variable PDO mapping)). ♦ segmented / expedited transfer
♦ number of data bytes in this CAN-frame
Note that in CANopen multi-byte parameters are ♦ alternating toggle bit for each subsequent seg-
always sent LSB first (so-called little endian). ment
There can never be more than 8 bytes of data in There are 5 request/response protocols imple-
total mapped to a particular PDO. mented in SDO: Initiate Domain Download,
Download Domain Segment, Initiate Domain
In [5] a so-called multiplexor PDO (MPDO) is Upload, Upload Domain Segment and Abort
defined, enabling a single PDO to be used for trans- Domain Transfer.
ferring a large number of variables by including in
its message bytes the source or destination node-id
and Object Dictionary index and subindex.
If for example a node has 64 16-bit analog chan-
nels it would otherwise need 16 different transmit-
PDOs to send its data if such a mechanism would
not be available.
11
CANopen 15-Nov-2005
In the latest version of the CANopen communica- Initiate Domain Upload (Cmd Specifier)
tion profile a new SDO transfer mechanism is in- Bit 7 6 5 4 3 2 1 0
troduced:
Client⇒ 0 1 0 – – – – –
♦ Block transfer: in which multiple segments are
confirmed by only 1 confirm message (from ⇐Server 0 1 0 – n e s
Server in case of download, from Client in case
of upload) in order to increase bus throughput n, e, s: as for Initiate Domain Download.
for objects with length > 4 bytes, with associ- Server/Client bytes 1+2 contain the Object Index
ated protocols: Initiate Block Download, and byte 3 the Object Subindex.
Download Block Segment, End Block Client bytes 4 to 7 are reserved and set to 0.
Download, Initiate Block Upload, Upload
Block Segment and End Block Upload. Upload Domain Segment (Cmd Specifier)
Bit 7 6 5 4 3 2 1 0
'Download' means writing to the Object Diction- Client⇒ 0 1 1 t – – – –
ary and 'Upload' means reading from the Object ⇐Server 0 0 0 t n c
Dictionary.
n, c, t: as for Download Domain Segment.
The SDO Command Specifier (first data byte of an Client bytes 1 to 7 are reserved and set to 0.
SDO CAN-message) syntax and details for each of Server bytes 1 to 7 contain up to 7 bytes of data.
these protocols is shown in the tables below ("–"
stands for: don't care, should be zero).
SDO Client or Server can abort an SDO transfer by
Initiate Domain Download (Cmd Specifier) sending a message with the following SDO Com-
Bit 7 6 5 4 3 2 1 0 mand Specifier:
Client⇒ 0 0 1 – n e s
⇐Server 0 1 1 – – – – – Abort Domain Transfer (Cmd Specifier)
Bit 7 6 5 4 3 2 1 0
n valid if e=1 and s=1, otherwise 0; indicates the C⇒/⇐ S 1 0 0 – – – – –
number of bytes that do not contain data (bytes
4 to 7-n contain data). In case of an Abort Domain Transfer, data bytes 1
e 0 = normal transfer, 1 = expedited transfer. and 2 contain the Object index, byte 3 the Object
s size indicator, 0 = data set size not indicated, 1= sub-index and data bytes 4 to 7 contains a 32-bit
data set size indicated. abort code describing the reason of the abort.
e=0, s=0 data bytes reserved for further use by Table 7 lists a number of abort codes and descrip-
CiA tions as described in [2].
e=0, s=1 data bytes contain byte-counter, byte 4:
LSB, byte 7: MSB
e=1 data bytes contain data to be down- Initiate Block Download (Cmd Specifier)
loaded.
Server/Client bytes 1+2 contain the Object Index Bit 7 6 5 4 3 2 1 0
and byte 3 the Object Subindex. Client⇒ 1 1 0 – – cc s 0
Server bytes 4 to 7 are reserved and set to 0. ⇐Server 1 0 1 – – sc – 0
Download Domain Segment (Cmd Specifier) cc client CRC support on data, 0 = no, 1 = yes.
sc server CRC support on data, 0 = no, 1 = yes.
Bit 7 6 5 4 3 2 1 0
s size indicator, 0 = data set size not indicated,
Client⇒ 0 0 0 t n c 1= data set size indicated.
⇐Server 0 0 1 t – – – – s=0 data bytes reserved for further use by CiA
s=1 data bytes contain byte-counter, byte 4: LSB,
n indicates the number of bytes that do not contain byte 7: MSB
data (bytes 8-n to 7 do not contain data); zero if Server byte 4 contains blksize, the number of seg-
no segment size is indicated. ments per block, with 0<blksize<128.
c 0 = more segments to be downloaded, 1 = last
segment.
t toggle bit, must alternate for each subsequent
segment (first time = 0; equal for request / re-
sponse).
Client bytes 1 to 7 contain up to 7 bytes of data.
Server bytes 1 to 7 are reserved and set to 0.
12
CANopen 15-Nov-2005
Download Block Segment (Cmd Specifier) Download Block Segment (Cmd Specifier)
Bit 7 6 5 4 3 2 1 0 Bit 7 6 5 4 3 2 1 0
Client⇒ c 0 ⇐Server c 0
Client⇒ c 1 ⇐Server c 1
…etc… c seqno …etc… c seqno
⇐Server 1 0 1 – – – 1 0 Client⇒ 1 1 0 – – – 1 0
c : more segments to download, 0=yes, 1=no. c : more segments to upload, 0 = yes, 1 = no.
seqno : sequence number of segment, 0<seqno<128. seqno : sequence number of segment, 0<seqno<128.
Client data bytes contain at most 7 bytes of seg- Server data bytes contain at most 7 bytes of
ment data to be downloaded. segment data to be downloaded.
Server byte 1 contains the sequence number of Client byte 1 contains the sequence number of
the last segment that received successfully; if set to the last segment that received successfully; if set to
0 it indicates that the segment with sequence num- 0 it indicates that the segment with sequence num-
ber 1 was not received correctly and all segments ber 1 was not received correctly and all segments
have to be retransmitted. have to be retransmitted.
Server byte 2 contains blksize, the number of Client byte 2 contains blksize, the number of
segments per block that the client has to use for the segments per block that the Server has to use for the
next block download, with 0<blksize<128. next block upload, with 0<blksize<128.
End Block Download (Cmd Specifier) End Block Upload (Cmd Specifier)
Bit 7 6 5 4 3 2 1 0 Bit 7 6 5 4 3 2 1 0
Client⇒ 1 1 0 n – 1 ⇐Server 1 1 0 n – 1
⇐Server 1 0 1 – – – – 1 Client⇒ 1 0 1 – – – – 1
n : indicates the number of bytes in the last seg- n : indicates the number of bytes in the last seg-
ment of the last block that do not contain data ment of the last block that do not contain data
(bytes 8-n to 7 do not contain data). (bytes 8-n to 7 do not contain data).
Client bytes 1+2 contain the 16-bit CRC for the Server bytes 1+2 contain the 16-bit CRC for the
whole data set; the CRC is only valid if in Initiate whole data set; the CRC is only valid if in Initiate
Block Download cc and sc were both set to 1. Block Upload cc and sc were both set to 1.
13
CANopen 15-Nov-2005
Following below are a few examples to demon- A list of hexadecimal Emergency Error Codes is
strate the use of the SDO to access a node's Object shown in Table 5. The 'xx' part of the codes in this
Dictionary. list is defined by the appropriate device profile.
14
CANopen 15-Nov-2005
15
CANopen 15-Nov-2005
¾ Conformance:
In summary the CANopen standard for communi- the device can be connected to a CANopen
cation on CAN-bus based networks has the follow- network without disturbing the communica-
ing features: tion of the other devices: application layer
compatibility.
¾ Standardized description of device functional- ¾ Interoperability:
ity be means of a Device Object Dictionary. the device can exchange data with other nodes
¾ Standardized description of a device and its in the network: communication profile com-
configuration in the form of ASCII files: Elec- patibility.
tronic Data Sheet (EDS) and Device Configu- ¾ Interchangeability:
ration File (DCF). the device can substitute another one: device
¾ Data exchange and system administration profile compatibility.
based on CAL CMS.
¾ Standardized system boot-up and node guard- A CANopen device requires at least (minimum
ing based on CAL NMT. capability device):
¾ Definition of system-wide synchronous opera-
tions. ¾ a node-id,
¾ Definition of node-specific emergency mes- ¾ an object dictionary (contents depending on
sages. the device functionality),
¾ one SDO supporting the mandatory OD en-
By conforming to the guidelines contained in the tries (read-only),
CANopen communication profile and the appropri- ¾ support of the following NMT slave services:
ate CANopen device profile two independent manu- Reset_Node, Enter_Preoperational_State,
facturers can produce standardised devices, which Start_Remote_Node, Stop_Remote_Node, Re-
can be incorporated seemlessly into the same set_Communication,
CANopen CAN network. ¾ default profile ID-allocation.
16
CANopen 15-Nov-2005
17
CANopen 15-Nov-2005
18
CANopen 15-Nov-2005
1008 - Manufacturer device name VisStr RO "xxxx" E.g. "CCTS" (Crystal-Can with
Temperature Sensors"
1009 - Manufacturer hardware VisStr RO "xxxx" 4-byte ASCII string
version
100A - Manufacturer software VisStr RO "xx.x" A version number as a 4-byte
version ASCII string, e.g, " 1.0"
100B - Node identifier U32 RO
*
See text for the layout of the Manufacturer Status Register.
♣
if inhibit time = 0: transmission type 254,253 => one ADC conversion and PDO transmission after an RTR
transmission type 1 => one ADC conversion and PDO transmission after a SYNC
if inhibit time > 0: transmission type 254 => scan ADC(s), a PDO transmission after every conversion
transmission type 253 => scan ADC(s), one PDO transmission after an RTR
transmission type 1 => scan ADC(s), one PDO transmission after each SYNC
19
CANopen 15-Nov-2005
In case digital inputs are present objects 1800H Possible extensions to the device profile part of
(1st transmit PDO communication parameters) and the OD could be made –for example– in connection
1A00H (1st transmit PDO mapping) should be with analogue input limit and interrupt settings, for
added to the communication part of the Object Dic- which the DSP-401 device profile provides several
tionary. OD-entries. When these capabilities are present the
In case digital outputs are present objects 1400H node can monitor inputs and only send a message
(1st receive PDO communication parameters) and e.g. when certain limits are exceeded or when an
1600H (1st receive PDO mapping) should be added input changes more rapidly then a certain set limit.
to the communication part of the Object Dictionary;
all according to DSP-401.
20
CANopen 15-Nov-2005
1
write access allowed only when ADC-input scanning not active (PDO inhibit time = 0)
2
000: 15.02 Hz, 001: 30.06 Hz, 010: 60.01 Hz, 011: 123.18 Hz,
100: 168.9 Hz, 101: 202.27 Hz, 110: 3.76 Hz, 111: 7.51 Hz
3
000: 100 mV, 001: 55 mV, 010: 25 mV, 011: 1 V, 100: 5 V
4
001: offset self-calibration, 010: gain self-calibration,
101: offset system-calibration, 110: gain system-calibration
21
CANopen 15-Nov-2005
5.5 Emergency Objects The Emergency Error Codes are defined by the
Communication Profile [2] and the DSP-401 De-
vice Profile [3]; the Error Register bits are defined
Table 11 lists the contents of the Emergency Ob-
by DSP-401 [3]. See section 3.6.6.
ject message for different types of internal device
errors. This is a preliminary list of the error mes-
sages defined and implemented sofar.
22
CANopen 15-Nov-2005
References
[1] CAN-in-Automation,
CAL, CAN Application Layer for Industrial Applications,
CiA Draft Standard DS-201 to DS-207, Version 1.1, Feb 1996.
[2] CAN-in-Automation,
CANopen, CAL-based Communication Profile for Industrial Systems,
CiA DS-301, Version 4.0, June 16 1999.
[3] CAN-in-Automation,
CANopen Device Profile for I/O Modules,
CiA DSP-401, Version 1.4, Dec 1996.
[4] CAN-in-Automation,
CANopen Device Profile for Measuring Devices and Closed-Loop Controllers,
CiA DSP-404, Revision 1.11, Nov 27 1997.
[5] CAN-in-Automation,
Framework for Programmable CANopen Devices,
CiA DSP-302, Version 2.0, Nov 27 1998.
[7] H.Boterenbrood,
Crystal-CAN, a CAN-bus node for monitoring multiple distributed analog signals
(prototypes for B-field and Temperature monitoring in ATLAS),
Version 1.4, NIKHEF internal documentation, Oct 24 1997
[8] H.Boterenbrood,
SPICAN CANopen I/O-system (for analog inputs), user documentation,
Version 2.1, NIKHEF internal documentation, Jan 14 2000
23