ISO 11989只规定了CAN总线的物理层和链路层协议,在实际应用中,为保障不同厂家设备的兼容性,需要统一CAN总线的应用层协议。常见的应用层协议有:SAE J1939、CANOpen和DeviceNet。
1. SAE J1939
SAE J1939基于CAN2.0B,通信速率250kbit/s,最多可带30个设备,最大总线长度可达40 m,节点线最长1米。SAE J1939定义了29位Indentifier和数据域的使用方法。定义协议数据单元(PDU = Indentifier+数据域),PDU格式:
PDU | ||||||
PGN | ||||||
优先权 | 扩展数据页 | 数据页 | PDU格式 | PDU特定域 | 源地址 | 数据域 |
P | EDP | DP | PF | PS | SA | Data |
3bit | 1bit | 1bit | 8bit | 8bit | 8bit | 0~8byte |