虹科 J1939协议栈
虹科 J1939协议栈
虹科 J1939协议栈具备将SAE J1939标准集成到用户设备中的完整功能。该协议栈具备多样化的配置选项,能够针对目标产品进行个性化定制。其示例代码有助于简化启动流程,让用户更专注于自身应用程序的部署。该协议栈支持开放式的CAN驱动(CANpie),便于用户灵活采用任何市面上已有的CAN控制器。
与CANopen从站协议栈的桥接功能便于支持兼容多协议的设备。此外,由于该设备中所有协议都以相同方式处理参数,因此节省了更多配置参数所需的开发时间。


产品特性
- 符合SAE J1939规范的功能特性
- 模块化软件架构,具备多样化配置选项
- 可在不影响代码结构的情况下定制目标产品
- 优化以满足低资源需求(ROM/RAM)
- 适配多种CAN控制器
- 标准化CAN驱动接口(CANpie FD)
- 周期性发送与接收J1939报文
- 传输协议(TP.DT和TP.BAM)
- 支持大数据量传输
- 通过地址声明设置节点地址
- 监控J1939报文超时情况
- 支持CANopen从站协议栈的桥接功能
供货范围
- J1939协议栈提供C99标准源代码
- 多种demo的即用型案例
- 相关手册及产品资料
- 按照公司进行站点授权,无后续license费用
- 提供12个月邮件及电话技术支持
订货信息
项目编号 | 产品信息 |
---|---|
50.04.002 | J1939协议栈 协议栈以C99源代码形式提供,包含示例项目及产品资料 |
50.10.zzz | CANpie FD驱动 为对应微控制器提供的CAN功能实现接口 |
技术规范
J1939规格包含多份文档,可通过SAE官网(www.sae.org)获取入门所需资料如下:
- SAE J1939-21(数据链路层):通信协议定义概述
- SAE J1939-71(车辆应用层):车辆动力系统细节规范
- SAE J1939DA(数字附录):包含所有PGN与信号的Excel文件
关于J1939协议
J1939协议基础
J1939是汽车和商用车行业广泛使用的一项通信标准,可实现车辆各系统间的交互。该协议由美国汽车工程师学会(SAE)制定。
J1939通过CAN总线为不同的商用车控制单元提供了一种可靠且标准化的通信方法。在J1939协议中,控制单元被称为电子控制单元(ECU)。一种网络中最多可按逻辑处理254个ECU。最初版的J1939标准采用经典扩展帧格式(CEFF),使用29位标识符,这意味着用户数据中只能传输8个字节。
J1939提供了面向连接的(连接模式数据传输)和非连接式的(广播公告报文)两种传输协议,用于支持更大容量的数据传输。这两种传输协议的最大数据容量均限制为1785字节。
J1939协议规范中的所有信号均被分配给一个参数组(PG),每个参数组有且仅有一个编号(参数组编号,PGN)。PGN是一个18位的值,可在CAN报文的29位标识符中进行传输。CAN物理层指定的比特率为250 kbit/s和500 kbit/s。

应用案例
J1939在汽车诊断中的应用:
SAE J1939-73规范(应用层——诊断)可用于汽车诊断领域。PGN,又称诊断报文(DM)在很大程度上与统一诊断服务(UDS)的功能范围一致。然而,与UDS不同的是,J1939诊断报文由ECU独立发送。诊断报文中包含一种诊断故障码(DTC),有助于检测受干扰信号、故障原因和故障频次。DM报文可快速准确地检测故障,是现代车辆维护的重要手段。
J1939在安全领域中的应用:
SAE J1939-76规范(功能安全通信协议)是为关键安全应用而开发的。为了传输关键安全数据,在发送包含关键数据的报文(安全数据报文,SDM)之前会发送一条附加消息(安全头报文,SHM)。然后,这两条报文(SHM和SDM)就会构成一个安全数据组(SDG)。
目前,由于CRC多项式较弱,无法按照功能安全标准进行认证,因此不建议使用SAE J1939-76。
J1939在其他行业中的应用:
- 除商用车外,J1939还广泛应用于农业、海事等领域。在这些标准的发展中,动力系统(柴油发动机)始终是核心连接要素。
- ISO 11783规范(农业和林业用拖拉机和机械)定义了农业车辆中的通信,即拖拉机与所安装设备之间的通信。ISO 11783标准扩展了J1939传输协议针对大量数据传输的功能。
- NMEA 2000标准用于海事领域。快速分组协议可传输比J1939协议更多的数据。该标准还具有用于ECU监控的动态机制。
- ISO 11992规范(道路车辆——牵引车和挂车之间电气连接数字信息交换)定义了道路车辆中牵引车和挂车之间的消息交换。该标准基于J1939协议,但在物理层使用125 kbit/s的比特率。
常见问题 FAQs
能否在同一应用中同时使用J1939和CANopen协议?
J1939和CANopen协议可以在同一网络中同时使用。请注意在集成系统时,CANopen报文(11位标识符)在仲裁阶段具有更高的优先级。
能否通过J1939访问CANopen对象字典?
对于必须同时支持J1939和CANopen协议的设备,用J1939报文访问CANopen对象字典需借助一个标准化接口。参数组CAM11和CAM21定义了SDO访问,CANopen紧急报文通过参数组EMCY提供支持。参数组列于J1939DA中,规格在CiA 510中定义。