https://stackoverflow.com/questions/60552505/canopen-protocol-overhead | BingShi

https://stackoverflow.com/questions/60552505/canopen-protocol-overhead

<meta property="og:image" itemprop="image primaryImageOfPage" content="https://cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon@2.png?v=73d79a89bded" />

Asked
Active 5 months ago
Viewed 71 times
-1

Can someone help me understand how much overhead CANOpen protocol adds on a CAN bus. In other words, if a node is generating a CANOpen PDO message of 8 bytes of application data, how much header/overhead does CANOpen protocol itself add? I'm not talking about the overhead of CAN bus itself which are the CRC, DLC, RTR, EOF and other bits. What is the extra load on the bus for using CANOpen vs using CAN directly. Thanks.

0

There is no "CANopen protocol" as such, it's the name for the whole application layer. Simplified, the actual protocols used by CANopen boil down to:

  • NMT frames, network management. Controlling the state of nodes and the network as whole.
  • SDO frames, service data objects. Configuration of individual nodes.
  • PDO frames, process data objects. The actual data frames.

There's various other special-purpose ones such as EMGY, LSS etc as well, but the above are the main ones.

In other words, if a node is generating a CANOpen PDO message of 8 bytes of application data, how much header/overhead does CANOpen protocol itself add?

PDO have zero overhead. You get 8 bytes payload in an 8 byte PDO frame.

SDO and the various NMT have some overhead though, typically 1 byte.

  • Thanks. Oh, because the PDOs are mapped, they do not contain any address information? like the Index, subindex etc...So, if a sensor is sending a double(8 bytes) of position data, Is that all that is contained in the PDO frame without any addressing information? – sean bzd Mar 6 at 13:46
  • @seanbzd You don't read/write to the object dictionary addresses with PDOs, that's what SDOs are for. All PDOs have communication settings and optionally mapping settings. These settings are found at fixed addresses in the object dictionary, for example TPDO1 has communication settings at 0x1800 and mapping settings at 0x1A00. In communication settings you set the COBID and other nodes interested in this PDO has to set the COBID of one of their RPDOs accordingly. And from there adjust mapping parameters as well. – Lundin Mar 6 at 15:14
  • @seanbzd You can however read/write data with SDOs too, by accessing whatever object dictionary address that a node states as storage address for the actual data. But such an access comes with overhead and can only be carried out in pre-operational mode. – Lundin Mar 6 at 15:16
  • Thank you so much. – sean bzd Mar 6 at 16:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.

更多文章...
https://www.deltaww.com/zh-TW/products/06020302/ALL/ https://www.linkedin.com/pulse/basic-knowledge-ethercat-protocol-1-jason-liu https://wilo.com/id/en/Solutions-Finder/Connectivity/Building-automation/Modbus/ https://www.beckhoff.com/en-en/products/i-o/ethercat-terminals/ https://www.lcsc.com/blog/how-ethercat-ensures-real-time-speed-and-performance-of-fieldbus-communication/
评论
Powered by Odoo, the #1 Open Source eCommerce.
Copyright © bingshi