The best way to understand how these two specifications are related is to refer to the Open System Interconnection (OSI) model. The OSI model specifies a seven layer framework for implementing communication protocols, which is shown as follows from top to bottom:
The CAN specification defines the Physical and Data-link layers of the communication system. The CAN specification was developed by Bosch (ISO 11898-1) and fully defines the Data link layer. There are different standards for the CAN physical layer (refer to the link below). Using the CAN specification, the network designer has the means to transmit and receive frames from the CAN bus. It is up to the designer to specify how is the data going to be transferred using frames.
The CAN specification provides a robust communication channel with built-in error detection and confinement. DeviceNet uses the CAN standard as the foundation for a higher level communication protocol. DeviceNet is often referred to as a CAN application layer protocol. The main goal of the DeviceNet specification is to allow interconnection and interchangeability between DeviceNet devices from different vendors. To accomplish that goal DeviceNet defines the following:
- CAN Physical Layer - A single standard is defined for the CAN physical connections. The standard used is High-speed CAN (ISO 11898-2). The specification also includes the bus power voltages, number of devices that can be connected, the types of connectors allowed, cable lengths and baud rates.
- CAN Data Link Layer - The specification is left unchanged. The standard CAN controllers (Intel 82527, for example) can be used with DeviceNet devices.
- Application layer - The main contribution of the DeviceNet specification is the way data is organized and transferred between devices. DeviceNet specifies an object model that devices need to implement. This way all devices present a consistent interface to the rest of the network, hiding the internal details of the device.
In terms of application programming, a developer writing an application using NI-CAN will manipulate frames and needs to have detailed knowledge of the other devices in the network, to be able to address them using the arbitration IDs. This is sufficient for small, "closed" networks, such as an automobile network, where the main goal is a fast and extremely reliable communication network.
Using NI-DNET, the developer opens communication objects with other devices on the network. The DeviceNet specifications provides the means to detect the devices on the network and route messages from one node to the other. In this case, the NI-DNET driver is capable of communicating with any DeviceNet compliant device. This allows for functionally equal devices from different vendors to be interchangeable.
There are other CAN application layer protocols, such as: CAL (CAN Application Layer), CANopen, PCAL, SDS (Smart Distributed System) and CAN Kingdom. National Instruments products only support DeviceNet.