STÖBER
9 | More about CANopen?
09/2019 | ID 442637.01
43
Upload SDO Segment Protocol
n
scs=0
t
Byte
Bit
0
1...7
7...5
4
3...0
Master
Slave
ccs=3
x
reserved
t
Byte
Bit
0
1...7
7...5
4
3...1
0
c
ccs
Client command specifier
3 = Upload segment request
scs
Server command specifier
0 = Upload segment response
n
Number of bytes
Number of bytes in "Segment data" that contain no usable
data.
n = 0: No information about unused data
seg-data
Segment data
7 bytes of usable data
c
Continue
§
0 = More segments follow
§
1 = Last segment
t
Toggle bit
t = 0 for segment 1; must change for each segment.
Identical values for request and response.
x
Unused
x = 0
Examples
Segment download with 16 bytes of data; contents: 01, 02, 03 ... 10 hex
Client: IDDReq:
21
idx
x
10 00 00 00
(ccs = 1, e = 0 = normal, s = 1 -> data = no. of bytes)
Server: IDDRes:
60
idx
x
00 00 00 00
Client: DSegReq:
00
01 02 03 04 05 06 07
(ccs = 0, t = 0, n = 0, c = 0 -> all data bytes are used)
Server: DSegRes:
20
00 00 00 00 00 00 00
Client: DSegReq:
10
08 09 0A 0B 0C 0D 0E
(ccs = 0, t = 1, n = 0, c = 0 -> all data bytes are used)
Server: DSegRes:
30
00 00 00 00 00 00 00
Client: DSegReq:
0b
0F 10 00 00 00 00 00
(ccs = 0, t = 0, n = 5, c = 1 -> 5 data bytes are unused)
Server: DSegRes:
20
00 00 00 00 00 00 00
Segment upload with 16 bytes of data; contents: 01, 02, 03 ... 10 hex
Client: IDUReq:
40
idx
x
00 00 00 00
(ccs = 2, rest = 0)
Server: IDURes:
41
idx
x
10 00 00 00
(scs = 2, x = 0, e = 0, s = 1 -> data contains no. of bytes
to be uploaded)
Client: USegReq:
60
00 00 00 00 00 00 00
(ccs = 3, t = 0)
Server: USegRes:
00
01 02 03 04 05 06 07
(scs = 0, t = 0, n = 0, c = 0 -> all data bytes are used)
Client: USegReq:
70
00 00 00 00 00 00 00
(ccs = 3, t = 1)
Server: USegRes:
10
08 09 0A 0B 0C 0D 0E
(scs = 0, t = 1, n = 0, c = 0 -> all data bytes are used)
Client: USegReq:
60
00 00 00 00 00 00 00
(ccs = 3, t = 0)
Server: USegRes:
0b
0F 10 00 00 00 00 00
(scs = 0, t = 0, n = 5, c = 1 -> 5 data bytes are unused)