Process data object (PDO)
Process data objects (PDOs) are used in CANopen for broadcasting high-priority control and status information. A PDO consists of a single CAN data frame and communicates up to 64 byte of pure application data. Device designers have to evaluate the amount of process data that the device needs to receive and transmit. Based on the result of this evaluation process, they have to provide the related amount of receive and transmit PDOs (RPDO and TPDO) within the device. System designers have to consider that CAN FD data frames are not available for all sizes in the range of 8 byte to 64 byte. Therefore a consumer of a PDO may receive more data than expected, as the PDO producer fills up the PDO to the next supported CAN FD frame length with padding bytes.
PDO parameter sets
In case a device is supposed to support the transmission/reception of a PDO, the corresponding parameter sets for this PDO have to be provided in the object dictionary of that device. A single PDO requires a set of communication parameters (PDO communication parameter record) and a set of mapping parameters (PDO mapping record).
Among others, the communication parameters indicate the CAN-Identifier that is used by this PDO, and the triggering event that prompts the transmission of the related PDO. The mapping parameters indicate which information of the local object dictionary is supposed to be transmitted and where the received information is stored.
The communication parameters for RPDOs are arranged in the index range 1400h to 15FFh and for TPDOs in the range 1800h to 19FFh. The related mapping entries are managed in the index ranges 1600h to17FFh and 1A00h to 1BFFh.
PDO triggering events
The following triggering events for PDOs are defined:
Event or timer-driven: A device-internal event triggers the PDO transmission (e.g. when the temperature value exceeds a certain limit; event-timer elapses; etc.).
Synchronous transmission (cyclic): The transmission of the PDO can be coupled with the reception of the SYNC message.
Synchronous transmission (acyclic): These PDOs are triggered by a defined device-specific event but transmitted with the reception of the next SYNC message.
A remotely-requested triggering is not supported any longer in CANopen FD.
PDO mapping
CANopen FD distinguishes between static, variable, and dynamic PDO mapping. If static mapping is supported, the PDO mapping is not configurable.
If variable mapping is supported, the PDO mapping is configurable only in the NMT state Pre-operational. If dynamic mapping is supported, the PDO mapping is configurable in NMT state Pre-operational and NMT state Operational. If either variable or dynamic PDO mapping is supported, the mapping procedure is used in case the PDO shall be modified.
PDO mapping procedures
In contrast to a strictly predefined mapping, device designers have the option of offering to change the mapping of the PDOs. In CANopen such a flexibly adjustable PDO mapping capability is called variable or dynamic PDO mapping. In case variable or dynamic mapping is supported, the mapping entries of the PDO can only be changed by using the defined mapping procedure:
- Set PDO invalid by switching Bit 31 in the related COB-ID entry.
- Set PDO mapping invalid by writing 00h to sub-index 00h of the related mapping entries.
- Adjust the desired PDO mapping.
- Set sub-index 00h of the related mapping index to number of mapped objects.
- Switch PDO valid by means of Bit 31 in the related COB-ID entry.