Universal Service Data Object (USDO)
USDO services are intended for configuration and diagnostic tasks in CANopen FD systems. Nevertheless process data may be transferred via USDO services as well. The USDO service offers confirmed communication between one USDO client and one or several USDO servers. By means of the USDO protocol the USDO client has access to CANopen FD object dictionary entries supported in the CANopen FD devices in the network. The USDO services provide read and write access to one or several sub-indices in the USDO servers’ object dictionary. USDO services allow the transfer of any data size between the USDO client and the USDO server. The inherent routing capability of the USDO services enables data transfer over CANopen FD network borders; USDO client and USDO server are not necessarily connected to the same physical CAN.
As illustrated in Figure 2, the design of the USDO protocol is kept rather simple. All protocol information is organized in ENUM variables and the byte-alignment was considered. As a result, the “Destination address” determines, whether the USDO is communicated in a point-to-point connection or in multi or broadcast. The command specifier selects the type of USDO transfer that is used. The session-ID serves as transaction number and enables the client to differentiate e.g. between USDO accesses to the very same USDO server. As it was in the CANopen CC SDO, Index and Sub-Index identify the data element that is accessed in the object dictionary of the USDO server. In addition to the CANopen CC SDO, the USDO describes the data to be transferred by size and data type. This enables the receiver of data to execute a consistency check.