Higher Layer Protocols
The CAN standard defines the hardware (“the physical layer” – there are several) and the communication on a basic level (“the data link layer”). The CAN protocol itself just specifies how to transport small packets of data from point A to point B using a shared communications medium. It contains nothing on topics such as flow control, transportation of data larger than can fit in a 8-byte message, node addresses, establishment of communication, etc.
In order to manage the communication within a system, a higher layer protocol (HLP) is required. The term HLP is derived from the OSI model and its seven layers. The HLP typically specifies things like:
- Start-up behaviour
- How to distribute message identifiers among the different nodes in a system
- How to translate the contents of the data frames
- Status reporting within the system
Different Higher Layer Protocols
The are many (several dozens) higher layer protocols for the CAN bus. The most common ones are listed below. In addition, you may want to read the articles below explaining the differences between between the major HLPs.
Comparison between SDS, DeviceNet and CAN Kingdom >>
It was written some time ago, but the comparison is still valid.
Here is a paper explaining the differences between CAN Kingdom and CANopen >>