Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To use the NMEA2000 name, a device must pass a certification process.

PGNs

 

In J1939 messages, data is marked by an identifier called a PGN (Parameter Group Name). The content of a specific PGN is always in a fixed form. Many different working groups have defined their own PGNs and these should be used if possible. However, manufacturer or application specific PGN definitions are possible, too.

It should be noted that contrary to CANopen, the J1939 standards do not describe any data handling or storing. Thus, it is up to the user application to define which data is sent or where it comes from; or where received data is stored and how it is handled.

Transport protocols

 

J1939 contains a transport layer for single frame messages which is used by default for all PGNs with 8 or less bytes of data. For longer messages the ISO 11783 multipacket protocol is used. NMEA2000 also defines the Fast Packet transport layer as an alternative. There are other transport protocol options in other standards building on J1939, but these are not included in the stack.

Regardless of transport protocol, the handling is similar: Data is written or read from an array, the stack handles the transport itself automatically.

 

Single Frame

Multi Packet

Fast Packet

in ISO J1939

In ISO J1939

NMEA2000

8 byte

Up to 1785 bytes

Up to 233 byte

 

 

Faster than Multi Packet but no handshaking

Transport protocol options

Address claim

 

Many J1939 devices do not use fixed nodeIDs to identify themselves on the network. Instead, they use an address claim mechanism:

·       When a device goes active on the network, it tries to claim a certain identity.

·       Other devices on the network may deny this claim.

o   I.e., when they have already claimed it themselves.

·       The devices will then increment its wanted ID and try again.

The same device may end up with a different ID, depending on which other devices are on the network and their boot order. It is up to the applications then, to make sure the correct data is communicated between devices.