


"SensTemp2" and "Torque5") from Node 5 - to get this via SDO, it would require 4 full CAN frames (2 requests, 2 responses). Further, let's say a master node needs two parameter values (e.g. However, a single SDO response can only carry 4 data bytes due to overhead (command byte and OD addresses). Yes, in principle the SDO service could be used for this. The CANopen PDO service is used for effectively sharing real-time operational data across CANopen nodes.įor example, the PDO would carry pressure data from a pressure transducer - or temperature data from a temperature sensor.īut wait: Can't the SDO service just do this? SDOs are flexible, but carry a lot of overhead - making them less ideal for real-time operational data.įirst of all: What is the CANopen PDO service? For larger data scenarios, SDO segmentation/block transfers can be used.


Once the CAN frame is sent by the master (client), the slave node 5 (server) responds via an 'SDO transmit' with COB-ID 585. CANopen, see also our CAN bus intro tutorial. It's worth noting, that CANopen could also be adapted to other data link layer protocols than CAN (e.g. As part of this, it adds several important concepts that we detail below. the J1939 protocol.Īs evident above, CANopen implements the 7th layer of the OSI model (Application) via a set of standards. In other words, CAN bus plays the same role in CANopen as it does in e.g. This means that CAN simply enables the transmission of frames with an 11 bit CAN ID, a remote transmission (RTR) bit and 64 data bits (fields relevant to higher-layer protocols). raw bit streams), while higher layers describe things like segmentation of long messages and services like initiating, indicating, responding, and confirming of messages.ĬAN bus represents the two lowest layers (1: Physical, 2: Data Link). Lower layers describe basic communication (e.g. The OSI model is a conceptual model standardizing communication functions across diverse communication technologies.
