The application layer deals with parameter groups (PGs) sent and received over the network. J1939 protocol uses broadcast messages, or messages sent over the CAN bus without a defined destination. Devices on the same network can access these messages without permission or special requests. If a device requires a specific message, include the device destination address in the message identifier.
The message contains a group of parameters that define related messages. For example, a message sent to the engine controller can contain both engine speed and RPM. These parameters are represented in the CAN identifier by a parameter group number (PGN). Parameter groups use 29-bit identifiers with this message structure:
|Parameter||Priority||Reserved||Data Page||PDU Format||PDU Specific||Source Address|
|Size||3 bits||1 bit||1 bit||8 bits||8 bits||8 bits|
First three bits represent the priority of the message on the network. Zero is the highest priority.
The next bit is reserved for future use. For transmit messages, set this to zero.
The next bit is the data page, which extends the maximum number of possible PGs in the identifier.
The next 8 bits are the protocol data unit (PDU) format, which specifies whether the message is targeted for a single device or is broadcast. If the PDU is less than 240, then the message is sent to a specific device and if it over 240, it is sent to the entire network.
The next 8 bits are the PDU specific, which contains the address of the device when the PDU format is less than 240. If PDU format is greater than 240, PDU specific contains group extension, or the number of extended broadcast messages in this parameter group.
The last 8 bits contain the source address, which is the address of the device sending the parameter groups.
The protocol application layer transmits the PG on the CAN network. PG length can be up to 1785 bytes and is not limited by the length of a CAN message. However, PGs larger than 8 bytes must be transmitted using a transport protocol.