SAE J1939协议详解:CAN2.0B、优先级与参数组

5星 · 超过95%的资源 需积分: 50 3 下载量 192 浏览量 更新于2024-09-09 1 收藏 390KB PDF 举报
"SAE J1939协议是应用于重型车辆和工程机械领域的通信协议,基于Controller Area Network (CAN) 2.0B标准。它定义了如何在这些设备之间高效地交换数据,包括诊断、控制和状态信息。协议规定设备必须使用扩展帧格式,并通过优先级、数据页、PDU等机制来组织和处理信息。" 在深入探讨SAE J1939协议之前,我们首先要明白CAN 2.0B协议的基础。CAN 2.0B支持标准帧和扩展帧,其中扩展帧提供了更多的标识符空间,以容纳更复杂的通信需求。SAE J1939协议主要依赖扩展帧格式,因为它能提供更大的灵活性和更高的数据容量。 协议数据单元(PDU)是J1939的核心组成部分,它由七个关键元素构成: 1. 优先级:一个3位字段,用于确定报文的处理优先级,数值越小,优先级越高。默认情况下,控制报文的优先级设为3,其他报文为6。 2. 保留位:1位字段,通常设置为0,用于未来扩展。 3. 数据页:1位字段,当所有参数组已分配时,该位设为0。 4. PDU格式:8位字段,根据PF(参数组功能)值的不同,决定了PDU的类型。PDU1用于向特定目标地址或全局地址发送数据,PDU2则用于全局广播。 5. PDU特定域:8位字段,其含义由PF决定。在PDU1中,PS(PDU特定域)表示目标地址(DA),而在PDU2中,PS与PF的低4位组合形成组扩展值(GE)。 6. 源地址:8位字段,标识发送数据的设备,确保每个节点有唯一的标识。 7. 数据域:根据需要可存储0到8字节的数据。若数据量超过8字节,需使用多帧传输。 报文的发送遵循小端模式,即先发送低字节。报文类型主要包括: - 命令报文:用于从源地址向特定目标或全局地址发送控制命令。 - 请求报文:用于请求特定目标或全局地址的信息。 - 广播/响应报文:最常见,用于在总线上广播数据或响应其他设备的请求。 - 确认报文:有两种形式,一是CAN帧的ACK位确认,二是应用层的确认,确认收到数据。 J1939协议通过这些机制确保了在复杂系统中的高效通信,允许车辆和设备之间的无缝协作。例如,通过PDU的结构,可以实现对480个PDU1参数组和8192个PDU2参数组的管理,总共8672个参数组,覆盖了大量的设备参数和控制信息。此外,通过目标地址和组扩展值,设备能够精确地定位和处理接收到的信息,从而实现精确的控制和反馈。
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部