ISO 11989只规定了CAN总线的物理层和链路层协议,在实际应用中,为保障不同厂家设备的兼容性,需要统一CAN总线的应用层协议。常见的应用层协议有:SAE J1939、CANOpen和DeviceNet。
- SAE J1939
SAE J1939基于CAN2.0B,通信速率250kbit/s,最多可带30个设备,最大总线长度可达40 m,节点线最长1米。SAE J1939定义了29位Indentifier和数据域的使用方法。定义协议数据单元(PDU = Indentifier+数据域),PDU格式:
优先权P:值越小,报文的优先权越高。
参数组编号PGN:参数组编号唯一标识一个参数组,表征报文的内容和用途,确定报文的类型和传播数据需要的帧数目。
扩展数据页EDP与数据页DP:没啥特别解释的,分类用的。
PDU格式PF:PDU有两种类型PDU1和PDU2,PDU1向特定地址发送报文,PDU2向全局地址发送报文。当PF为0239时,表征报文为PDU1;当PF为240255时,表征报文为PDU2。
特定域PS:功能由PF决定,当PF为PDU1时,PS表示目标地址;当PF为PDU2时,与PF的4个最低有效位能够共同确定4096个PDU2格式参数组。
源地址SA:发送消息的电控单元(ECU)地址。
数据