{"id":1534,"date":"2026-03-10T18:28:12","date_gmt":"2026-03-10T17:28:12","guid":{"rendered":"https:\/\/eltra.bfenterprise.it\/encoder-pedia\/cose-il-protocollo-canopen\/"},"modified":"2026-04-02T11:22:26","modified_gmt":"2026-04-02T09:22:26","slug":"what-is-the-canopen-protocol","status":"publish","type":"page","link":"https:\/\/eltra.bfenterprise.it\/en\/encoder-pedia\/what-is-the-canopen-protocol\/","title":{"rendered":"What is the CANopen protocol?"},"content":{"rendered":"<p><strong>CAN physical and transport layer<\/strong><\/p>\n<p>CAN is a field bus. It operates with the CSMA\/CA (Carrier Sense Multiple Access \/ Collision Avoidance) method. It means that collisions during bus access<br \/>\nare avoided by a so called bitwise arbitration. The bits are coded NRZ-L (Non Return to Zero &#8211; Low).<br \/>\nA cyclic redundancy check (CRC) and other safety mechanisms provide a secure transmission. For synchronisation a mechanism called &#8220;bit stuffing&#8221; is used. CAN is a multi-master system, i.e. several equal bus nodes can be connected without a bus master supervising the communication. In principle a CAN bus can be realized with copper wire or in fibre optic cable.<br \/>\nThe common CAN implementation with copper wire operates with differential signals, transmitted via two wires: CANHIGH, CANLOW. Therefore CAN has a\u00a0good common mode rejection ratio.<br \/>\nData is transmitted with bits that can either be dominant or recessive. The dominant (0) always overwrites the recessive (1).<br \/>\nThe topology of a CAN network is a line, which can be extended by stubs. The maximum length of a stub is limited to 0,5m.<br \/>\nThe network always has to be terminated on both ends with 120 Ohm each (between CANHIGH and CANLOW). Other locations or values are not allowed.<br \/>\nThe arbitration mentioned before is used to control the bus access of the nodes by prioritization of the CAN-Identifier of the different messages.<br \/>\nEvery node monitors the bus. If more than on node wants access on the bus, the node with the highest priority of the messages ID succeeds and the other nodes retreat until there is &#8220;silence&#8221; on the bus (see below example). Technically the first dominate bit of the ID send overwrites the corresponding recessive<br \/>\nbit of the other IDs. In case that more than one node uses the same CAN-ID an error occurs only at a collision within the rest of the frame.<br \/>\nIn principle a CAN-ID should only be used by a single node.<\/p>\n<figure id=\"attachment_507\" aria-describedby=\"caption-attachment-507\" style=\"width: 416px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-507 size-full\" src=\"https:\/\/eltra.bfenterprise.it\/wp-content\/uploads\/2026\/03\/Canopen-arbitration.png\" alt=\"Canopen arbitration\" width=\"416\" height=\"258\" srcset=\"https:\/\/eltra.bfenterprise.it\/wp-content\/uploads\/2026\/03\/Canopen-arbitration.png 416w, https:\/\/eltra.bfenterprise.it\/wp-content\/uploads\/2026\/03\/Canopen-arbitration-300x186.png 300w\" sizes=\"auto, (max-width: 416px) 100vw, 416px\" \/><figcaption id=\"caption-attachment-507\" class=\"wp-caption-text\">Example of arbitration.<\/figcaption><\/figure>\n<p>Due to the arbitration there is a ranking of the messages. The message with the lowest ID has the highest priority and therefore it has almost instant access on the bus. The exception is that an ongoing transmission will not be interrupted. So time critical messages should be assigned to the high priority CAN-IDs, but even then there is no determination in the time of transmission (non-deterministic transmission).<br \/>\nFor the arbitration all nodes have to be synchronised. Due to the lack of a separate clock signal, the transmission of many identical bits in line would lead to the loss of synchronisation. The so called bit-stuffing is used to prevent this case. After five equal bits a complementary bit will be inserted into the transmission (the application will not notice). So the nodes can keep up resynchronising on the bit edges (see below figure).<\/p>\n<figure id=\"attachment_508\" aria-describedby=\"caption-attachment-508\" style=\"width: 604px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-508\" src=\"https:\/\/eltra.bfenterprise.it\/wp-content\/uploads\/2026\/03\/Canopen-bitstuffing.png\" alt=\"Bitstuffing\" width=\"604\" height=\"258\" srcset=\"https:\/\/eltra.bfenterprise.it\/wp-content\/uploads\/2026\/03\/Canopen-bitstuffing.png 604w, https:\/\/eltra.bfenterprise.it\/wp-content\/uploads\/2026\/03\/Canopen-bitstuffing-300x128.png 300w, https:\/\/eltra.bfenterprise.it\/wp-content\/uploads\/2026\/03\/Canopen-bitstuffing-600x256.png 600w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><figcaption id=\"caption-attachment-508\" class=\"wp-caption-text\">Bitstuffing<\/figcaption><\/figure>\n<p>A CAN network can operate with baud rates up to 1 Mbit\/s.<br \/>\nDue to the necessary synchronisation of the nodes, the maximum delay caused by the length of the cable has to be limited.<br \/>\nThe limitation corresponds with the baudrate. There is a common recommendation of the maximum cable length at several baud rates:<\/p>\n<figure id=\"attachment_509\" aria-describedby=\"caption-attachment-509\" style=\"width: 1183px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-509\" src=\"https:\/\/eltra.bfenterprise.it\/wp-content\/uploads\/2026\/03\/Canopen-cable.png\" alt=\"Canopen cable\" width=\"1183\" height=\"658\" srcset=\"https:\/\/eltra.bfenterprise.it\/wp-content\/uploads\/2026\/03\/Canopen-cable.png 1183w, https:\/\/eltra.bfenterprise.it\/wp-content\/uploads\/2026\/03\/Canopen-cable-300x167.png 300w, https:\/\/eltra.bfenterprise.it\/wp-content\/uploads\/2026\/03\/Canopen-cable-1024x570.png 1024w, https:\/\/eltra.bfenterprise.it\/wp-content\/uploads\/2026\/03\/Canopen-cable-768x427.png 768w, https:\/\/eltra.bfenterprise.it\/wp-content\/uploads\/2026\/03\/Canopen-cable-600x334.png 600w\" sizes=\"auto, (max-width: 1183px) 100vw, 1183px\" \/><figcaption id=\"caption-attachment-509\" class=\"wp-caption-text\">CAN baud rates and recommended cable length limits<\/figcaption><\/figure>\n<p><strong>CANopen<\/strong><\/p>\n<p>CANopen is a specified higher protocol (layer 7 protocol)<\/p>\n<figure id=\"attachment_510\" aria-describedby=\"caption-attachment-510\" style=\"width: 416px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-510\" src=\"https:\/\/eltra.bfenterprise.it\/wp-content\/uploads\/2026\/03\/Canopen-ISO-OSI.png\" alt=\"Canopen ISO-OSI\" width=\"416\" height=\"258\" srcset=\"https:\/\/eltra.bfenterprise.it\/wp-content\/uploads\/2026\/03\/Canopen-ISO-OSI.png 416w, https:\/\/eltra.bfenterprise.it\/wp-content\/uploads\/2026\/03\/Canopen-ISO-OSI-300x186.png 300w\" sizes=\"auto, (max-width: 416px) 100vw, 416px\" \/><figcaption id=\"caption-attachment-510\" class=\"wp-caption-text\">ISO-OSI Model<\/figcaption><\/figure>\n<p>With CANopen it is possible to transfer larger amounts of data, emergency telegrams and process data.<br \/>\nCANopen describes how the communication is performed. That means that parameters to configure a device are transmitted in a defined form (profile).<br \/>\nA CANopen profile defines objects representing the different functions of a device. These objects form a table called object dictionary.<br \/>\nThe communication profile defines the basic services and parameters of a CANopen device (e.g. service data objects SDOs, process data objects PDOs, used CAN-IDs, etc.).<br \/>\nThe device profile defines the specific functions of a device family (e.g. encoders, i\/o devices, &#8230;).<br \/>\nFor encoders the device profile is the encoder profile CiA 406.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CAN physical and transport layer CAN is a field bus. It operates with the CSMA\/CA [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":721,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-1534","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/eltra.bfenterprise.it\/en\/wp-json\/wp\/v2\/pages\/1534","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eltra.bfenterprise.it\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/eltra.bfenterprise.it\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/eltra.bfenterprise.it\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eltra.bfenterprise.it\/en\/wp-json\/wp\/v2\/comments?post=1534"}],"version-history":[{"count":3,"href":"https:\/\/eltra.bfenterprise.it\/en\/wp-json\/wp\/v2\/pages\/1534\/revisions"}],"predecessor-version":[{"id":1541,"href":"https:\/\/eltra.bfenterprise.it\/en\/wp-json\/wp\/v2\/pages\/1534\/revisions\/1541"}],"up":[{"embeddable":true,"href":"https:\/\/eltra.bfenterprise.it\/en\/wp-json\/wp\/v2\/pages\/721"}],"wp:attachment":[{"href":"https:\/\/eltra.bfenterprise.it\/en\/wp-json\/wp\/v2\/media?parent=1534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}