DeviceNet Overview
DeviceNet is an object-oriented protocol that was developed by Allen Bradley in 1994 for industrial networking. It is one of a number of protocols that uses the CAN protocol to transport messages.
CAN is a simple but robust protocol with that has a number of advantages in harsh, real-time environments, such as vehicles. It is peer to peer, and has the impressive ability of being able to detect and recover from a collision with no retries needed. The collision is non destructive, and the higher priority message gets through untouched.
A good way to describe DeviceNet it is by discussing its layers, from the bottom up.
Physical Layer
The physical media is typically a cable with two twisted pairs, one for data and another for 24 volts power. The data is differential to provide good noise immunity. When a 1 is being sent, the transmit driver is off, and the voltage difference across the data pair rests at 0 volts due to the terminating resistor. When transmitting a 0, the high side data line is pulled up and the low side is pulled down.
The devices are daisy chained on the twisted pair. Because tranmitters rest in the off state, the data line is avalable for any node to send. The bus can be thought of as a balanced wired-OR circuit.
Messaging Layer
The CAN protocol used for messaging is very popular and is a standard peripheral in many processors. One advantage of CAN, compared with other simple networks, is peer-peer capability. This is achieved using an elegant collision detection and resolution method. A collision is non destructive so no time is wasted with retries, and the higher priority sender always wins. Thus, the higher priority message makes it though with no delay. Pretty amazing!
At the maximum speed of 500 kbps, the cable can be up to 100 meters long. The speed and length are limited by the following consideration: To provide the non destructive, priority based collision mechanism, it is necessary for two nodes to begin their transmission within a fraction of a bit-time, even though they may be at opposite ends of the cable.
DeviceNet Layer
DeviceNet is object oriented, with classes of objects, instances of those classes, and attributes within each instance. The class, instance, attribute paradigm is a good match with most object oriented languages. A benefit is that the firmware implementation naturally follows the device model, making it straightforward to code and easy to understand.
Messages are directed to DeviceNet objects by specifying the object class, instance, and attribute. Alternatively, DeviceNet provides for messages without all this addressing in pre-arranged situations where a device basically says "send me your data."
Application Layer
Certain core objects are required to exist in all DeviceNet implementations to provide connection, message routing, and identity functions. Sitting above these objects will be your device-specific objects. For these, you can select from a library of pre-defined DeviceNet objects, as required by your device. For example, you may want to use an S-Analog Sensor object to make a temperature sensor within your device accessible over the network. If you have 2 temperature sensors you would use 2 instances of this object.
To provide interchangeability between similar devices and also between manufacturers, the Open DeviceNet Vendors Association provides Device Profiles for many device types. This is part of what's called CIP, or Common Industrial Protocol. These common standards are the outcome of much collaboration between manufacturers, and provide some relief to the multitude of propriety protocols out there.
Related Information