Selection Criteria for CAN Higher
Layer Protocols
Even though extremely effective in automobiles and small applications, CAN alone is not suitable for machine automation, since its communication between devices is limited to only 8 bytes. As a consequence, higher layer protocols such as CANopen for machine control, DeviceNet for factory automation and J1939 for vehicles were designed to provide a real networking technology that supports messages of unlimited length and allow a master/slave configuration.
In order to explain higher layer protocols let's refer to ISO/OSI Reference Model:

The standard CAN implementation bypasses
the connection between the Data Link Layer and the Application Layer.
The layers above the Data Link Layer are covered by additional software,
which represent per definition a higher layer protocol.
To put in a nut shell, higher layer
protocols are necessary, because
- They enable data transfer of more than 8 bytes per message.
- Embedded systems may require an appropriate communication model based on a Master/Slave configuration.
- They provide network management (Network start-up, node monitoring, node synchronization, etc.).
CANopen
- Is suited for embedded applications.
- Was originally designed for motion control.
- Was developed and is maintained by the CAN-in-Automation User Group.
Like CAN, the CANopen standard is the responsibility of the CiA (CAN-in-Automation). For further detailed information refer to http://www.can-cia.org.
DeviceNet
- Is suited for industrial applications (floor automation).
- Was developed by Allen-Bradley/Rockwell.
- Is maintained by the Open DeviceNet Vendor Association (ODVA).
The DeviceNet specification is only available for ODVA members. For further information refer to http://www.odva.org.
SAE J1939
- Defines communication for vehicle networks (trucks, buses, etc.)
- Is a standard developed by the Society of Automotive Engineers (SAE).
The SAE J1939 Standards Collection can be found exclusively on the Web at http://www.sae.org.
Technical Features
| Feature | CANopen | DeviceNet | SAE J1939 |
| Central Master | Supports Central Master Approach, but can also be used as Multi-Master System. | Supports Multi-Master (theoretically) according to specs, but in reality works only with a central PLC (Scanner). | Totally distributed system. |
| Slave-to-Slave Communication | Yes. | Theoretical yes (according to specs), but not in reality. | Yes. |
| Max. Number Of Nodes | 127 | 63 | 255 |
| Baud Rates [kBit/sec] | 10 - 1000 | 125, 250, 500 | 250 |
Fields of Application
| Application Field | CANopen | DeviceNet | SAE J1939 |
| Factory Automation | Many
benefits for optimized high-performance applications. Very complex for simple centralistic controlled applications. |
Easy integration, since DeviceNet was designed for factory automation. | No. |
| Trucks (Buses, Fire trucks, mobile cranes, etc.), Railways | Widely used in Europe and Canada. | No. | De-facto standard for Diesel engine control. |
| Agriculture | Sometimes used in internal networks. | No. | The derivative ISOBUS is standard. |
| Maritime | Supported by many manufacturers. | No. | The derivative NMEA2000 is supported by many manufacturers. |
| Medical Systems | De-facto standard for the main players in the business and their component vendors. | No. | No. |
| Embedded Networking | Very suitable. Gaining quite some popularity in North America. | Theoretically yes, but difficult to implement. | No. |

