应用层处理通过网络发送和接收的参数组(pg)。J1939协议使用广播消息,或通过CAN总线发送的没有定义目标的消息。同一网络上的设备可以不经许可或特殊请求就访问这些消息。如果设备需要特定的消息,请在消息标识符中包含设备目的地址。
该消息包含一组定义相关消息的参数。例如,发送给引擎控制器的消息可以同时包含引擎转速和RPM。这些参数在CAN标识符中由参数组号(PGN)表示。参数组使用29位标识符,消息结构如下:
参数 | 优先级 | 保留 | 数据页 | PDU格式 | PDU特定 | 源地址 |
---|---|---|---|---|---|---|
大小 | 3位 | 1位 | 1位 | 8位 | 8位 | 8位 |
前三位表示消息在网络上的优先级。零是最高优先级。
下一个位保留给将来使用。对于发送消息,将此设置为零。
下一位是数据页,它扩展了标识符中可能的pg的最大数量。
接下来的8位是协议数据单元(PDU)格式,它指定消息是针对单个设备还是广播。如果PDU小于240,则向指定的设备发送消息;如果PDU大于240,则向整个网络发送消息。
接下来的8位是PDU特定的,包含了当PDU格式小于240时设备的地址。如果PDU格式大于240,则PDU具体包含组扩展,或该参数组中的扩展广播消息数。
最后8位为源地址,即发送参数组的设备地址。
协议应用层在CAN网络上传输PG。PG长度最多可达1785字节,不受can报文长度的限制。但是,大于8字节的pg必须使用传输协议传输。