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

"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个参数组,覆盖了大量的设备参数和控制信息。此外,通过目标地址和组扩展值,设备能够精确地定位和处理接收到的信息,从而实现精确的控制和反馈。
145 浏览量
3026 浏览量
点击了解资源详情
333 浏览量
145 浏览量
179 浏览量
639 浏览量
2023-08-28 上传

qq410511752
- 粉丝: 1
最新资源
- C语言实现的利润计划模型Winform程序
- Spring5整合Log4j2日志系统所需的jar包指南
- web广告制作的起点:广告压缩技术介绍
- 轻松生成TensorFlow训练数据xml的标图工具
- KeyForge多语言支持插件发布
- 掌握易语言:实现网络时间的自动更新功能
- 解决Android开发常见错误:远程主机关闭连接
- Struts2框架实现增删改查案例解析
- 实时监测生产线数据接口:Java读取与精确计算
- OpenGL绘制杯子与茶壶教程
- 安卓商城实战教程:打造仿淘宝客户端功能
- Android手机工厂模式下的多功能测试指南
- Java实现图片水印功能的源代码分享
- Xeora Brew:自制软件存储库的简易安装指南
- 下载autoscrollviewpager控件实现循环滑动
- 易语言实现的小饭饭网络维护工具源码解析