PDU
应用或网络层提供被同化为协议数据单元(PDU)的信息串。PDU提供了一个框架,用于组织对发送的每个CAN数据帧至关重要的信息。SAE J1939 PDU由七个字段组成:(1)P、(2)EDP、(3)DP、(4)PF、(5)PS(可以是目标地址或组扩展)、(6)SA和(7)数据。这些字段被打包成一个或多个CAN数据帧,并通过物理介质发送到其他网络设备。每个CAN数据帧只有一个PDU。
某些参数组(PG)定义需要8个以上的数据字节,因此需要一个以上的CAN数据帧来发送相应的数据。传输协议(TP)消息用于传输具有超过8个数据字节的PG。
一些CAN数据帧字段被有意排除在J1939 PDU定义之外,因为它们完全由ISO 11898-1定义和控制,并且对于数据链路层之上的所有OSI层都是不可见的。以这种方式控制的字段包括SOF、SRR、IDE、RTR、FDF、r0、CRC、ACK和EOF字段。七个PDU字段如图1所示。
P
这三个位用于优化仅在总线上传输的消息延迟。它们应该被接收器全局屏蔽(忽略)。任何消息的优先级可以从最高的0(000b)设置为最低的7(111b)。所有面向控制的消息的默认值为3(011b)。所有其他信息、专有、请求和ACK消息的默认值为6(110b)。这允许在未来随着新的PGN的分配和公交流量的变化而提高或降低优先级。将每个PGN添加到应用程序层文档时,会为其分配一个推荐值。然而,优先级字段应可重新编程,以便OEM在需要时进行网络调整。
EDP
EDP与DP一起用于确定CAN数据帧的CAN ID结构。所有SAE J1939信息应在传输时将EDP设置为零。见表3,了解EDP和DP的定义用途。EDP设置为1的未来定义可以扩展PDU格式字段、定义新的PDU格式或增加地址空间。
DP
DP与EDP结合使用,以确定CAN数据帧的CAN ID结构。当EDP设置为零时,DP在PGN描述的第0页和第1页之间进行选择。
PF
PDU格式是一个8位字段,它定义PGN是否具有PDU1或PDU2格式,并且是用于确定分配给数据字段的PGN的字段之一。PGN用于标识或标记命令、数据、某些请求、确认和否定确认。PGN识别或标记可能需要一个或多个CAN数据帧来传递信息的信息。如果有超过8个数据字节的信息,则需要发送多数据包消息。如果有8个或更少的数据字节,则使用单个CAN数据帧。PGN可以表示一个或多个参数,其中参数是一段数据,例如发动机转速。即使PGN标签可以用于一个参数,建议对多个参数进行分组,以便使用数据字段的所有8个字节。
专有PGN的定义已经确立,允许使用PDU1和PDU2格式。专有信息的解释因制造商而异。例如,即使两个不同的引擎可能使用相同的源地址,制造商“A”的专有通信可能与制造商“B”的不同。
PS
PDU特定字段是一个8位字段,其定义取决于PF字段。根据PF字段,它可以是目标地址(DA)或组扩展(GE)。如果PF字段的值低于240,则PS字段为DA。如果PF字段值为240至255,则PS域包含GE值。
DA
此字段定义消息要发送到的特定地址。请注意,任何其他设备都应忽略此消息。全局DA(255)要求所有设备作为消息接收方进行监听和相应响应。
GE
GE字段与PF字段的四个最低有效位(注意,当设置了PF字段的4个最高有效位时,表示PS字段是GE)一起为每个数据页提供4096个PGN。这4096个PGN仅可使用PDU2格式。此外,在每个数据页中提供240个PGN,仅用于PDU1格式。总共有8672个PGN可使用当前可用的两个数据页定义。
可用PGN的总数可按公式1计算:
(240+(16 x 256))x 2=8672
SA
源地址字段为8位长。网络上只有一个设备具有给定的SA。因此,SA字段确保CAN ID是唯一的,符合CAN的要求。地址管理和分配详见SAE J1939-81。SAE J1939-81中规定了防止SA重复的程序。有关SA分配,请参阅SAE J1939数字附件。