Curtis 1356/1356P CAN Expansion Module Manual, Rev. A
23
5 — SDO COMMUNICATIONS
5
SDO COMMUNICATIONS
CANopen uses Service Data Objects (SDOs) to change and view all internal
parameters, or “objects.” e SDO is an 8-byte packet that contains the address
and sub-address of the parameter in question, whether to read or write the
parameter, and the parameter data (if it is a write command). SDOs are sent
infrequently and have a low priority on the CAN bus.
SDOs are designed for sporadic and occasional use during normal run-
time operation. ere are two types of SDOs: expedited and block transfer.
e 1356 /1356P does not support large le uploads or downloads (using the
block transfer), so all the SDOs used by the 1356 /1356P are expedited SDOs.
e SDOs in the 1356 /1356P are used to set up and parameterize the
module. ey are also used to retrieve basic module information (such as ver-
sion or manufacture date), review the fault log, and monitor a few key internal
variables (mostly for system debug purposes).
SDO Master Request (SDO-MOSI)
An SDO transfer always starts with a request message from the master. Each
SDO request message consists of one control byte, a two-byte CAN Object
index, a one-byte CAN Object sub-index, and up to 4 bytes of valid data. is
format is CANopen compliant.
SDO-MOSI
(received from the system master)
Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7 Byte 8
Control CAN Object Sub-index Data Data Data Data
Index
e rst byte contains R/W message control information.
Action
Byte 1
Value
Read 0x42
Write 0x22
e next two bytes hold the CAN Object index. e LSB of the index
appears rst, in byte 2, and the MSB appears in byte 3. For example, if the index
is 0x3021, byte 2 holds the 0x21 and byte 3 holds the 0x30.
Byte 4 holds the CAN Object sub-index. When there is only one instance
of a parameter or value type, this value is 0. If there are several related parameters
or values, the sub-index is used.
e last four bytes hold the data to be transferred. In the case of a single-byte
transfer, the data is placed into byte 5, with bytes 6 through 8 being undened
(set to 0). In the case of a 16-bit transfer, the lower 8 bits appear in byte 5 and
the upper 8 bits appear in byte 6; bytes 7 and 8 are undened (set to 0). e