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 higher layer protocol 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
Higher Layer Protocol Types
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 the major HLPs.
- ISO 11783 (also known as ISOBUS)
- J1939: Introduction and Standards overview
- NMEA 2000®
Other Related Protocols and Standards
There are a number of protocols and standards closely related to CAN, but which are not higher layer protocols. Read about some of them below:
Article: Comparison between SDS, DeviceNet and CAN Kingdom, It was written some time ago, but the comparison is still valid.
Article: Here is a paper explaining the differences between CAN Kingdom and CANopen.