USDO – Universal Service Data Object

The Universal Service Data Object

The USDO Service in CANopen-FD is the replacement for the SDO service in CANopen.
Transfering configuration and diagnostic data is the primary purpose of this protocoll.
By using CAN-FD the telegrams can reach a length of up to 64 data byte.
Due to the longer telegrams and the higher data bit-rates up to 5 Mbit/s, significant faster data transfer is being provided.
You can find a short Demonstartion about the speed advantages of CANopen-FD over classic CANopen here.
The transmission can be done by using the expedited, segmented or bulk protocol.
Data can be transmitted either in unicast or broadcast mode.
For transfers between networks transfers a own remote service is also provided.

USDO Unicast

As SDO did before, USDO allows the direct connection from one client to exactly one server.
Furthermore it can handle multiple sessions between the client and the server at the same time.
Besides that, multiple clients can access the object directory of the server simultaneously, access to the same object at the same time has to be rejected..
In case of to many requests at once, the server can reject them by sending „USDO Server Busy“.

USDO Broadcast

Additionally USDO supports broadcast connections from one client to all available servers.
If on of the servers rejects the connection, for example because it has too many active connections pending, it sends informs the client by use of an unicast aborts.

USDO Remote Service

The remote service allows to send telegrams to other, not directly attached CAN networks, by using a transparent CANopen-FD router.
In the first segment additional protocol data is being transmitted.
For example source- and destination network as well as source- and destination node ID.

USDO Expedited Protokoll Type

USDO Expedited Transfer
USDO Expedited Transfer

The expedited transfer is a confirmed transmission with a maximum of 56 Byte of data.
The other 8 byte are used for protocol data like destination address, index or subindex.
Frame Example: Unicast Expedited Upload with 56 Byte of data:

USDO Segmented Protocol Type

USDO Segmented Transfer
USDO Segmented Transfer

The segmented transfer is a confirmed transmission, with a maximum of about 4.29 Gigabyte of definable data length, or undefined length by streaming.
If requested the segmented transfer has to be done, although expedited transfer would be more sufficient.
In the first segment, protocol data like destination address, data type or data length are transmitted.
The transmission of the application data begins with the second segment.
Every segment is confirmed from the counterpart.
Frame Example: Unicast Segmented Upload with 64 Byte of data:

USDO Bulk Protocol Type

As the equivalent to the block transfer in CANopen, the bulk transfer in CANopen-FD is a confirmed transmission, with a maximum of about 4.29 Gigabyte of definable data length, or undefined length by streaming.
As with the segmented transfer, the first segment contains protocol data like destination address, session ID or the gap between two segments which is defined by the server.
Starting from the second segment, the transmission of the application data begins.
Unlike with segmented transfer in bulk transfer only the first and the last segment is being confirmed.

USDO Bulk Transfer
USDO Bulk Transfer

Frame Example: Unicast Bulk Download with 172 Byte of data:

USDO Stream

Segmented and bulk transfer both support transmission of data with undefined data length as stream.
Therefore the data length of the transmission is set to value 0xFFFFFFFF.
The transmission is kept alive as long as either the USDO client finishes it or the server is sending an abort.