“没错,这是一份SAEJ1939协议的简单、实用指南。”—虹科
J1939属于“更高层的协议”J1939是基于CAN的,CAN提供了基本的“物理层”和“数据链路层”,这是OSI模型的最低层。基本上CAN只允许在CAN总线上进行简单通信,但仅此而已。而J1939作为高层协议,可以实现更复杂的通信。一个更高层的协议使大型、复杂网络之间进行通信成为可能。例如,SAEJ1939协议规定了如何处理“多包数据报文”,即,当需要传输大于8字节的数据时。同样地,它规定了如何将数据解析为人类可读的数据。它通过提供一系列标准来实现这一点。J1939-71这份文档,其中详细说明了如何将大量已经在众多制造商中使用的J1939报文转换为所需的人类可读数据信息(有关更多信息,请参见下文)。
还有许多其他基于CAN的更高层协议,例如CANopen,DeviceNet,UDS服务。尽管它们都可以由制造商进行扩展,但它们通常在各自的行业代表一种一定程度的标准。相比之下,乘用车的车企都会用自定标准。换句话说,您可以使用相同的J1939.dbc文件来解析来自不同车企的两辆卡车发动机转速,但是您不能使用标致207车型的.dbc文件去解析AudiA4车型的数据。
J1939是一种广泛应用于重型车辆以及电动充电桩的标准简单来说,就是J1939将ECU之间的通信标准化了,或者换句话说:J1939为不同的供应商提供了一种通用的语言。相比之下,乘用车会使用OEM自定的专用协议。
J1939应用案例
J1939最广为人知的其中一个应用是在重型车辆(例如客车或货车)上的应用(不过,现在在一些基础工业领域还会用到SAEJ1939的衍生标准,如:ISO11783,MilCAN,NMEA2000,FMS):
随着重型车辆的远程信息处理技术兴起,J1939在车联网市场中扮演的角色越来越重要。因此,J1939IoT(物联网)记录器的安全性越来越受到重视。同时,OEM将会从传统CAN逐渐转向CANFD,向具有可变数据域速率的J1939协议过渡。此外,在电动汽车的充电桩领域同样以J1939作为应用层标准。比如国标GBT27930-2015电动汽车非车载传导式充电机与电池管理系统之间的通信协议中,定义了J1939应用层的通信参数组等等。随着电动汽车的稳步发展,J1939应用的节点将会越来越多。
“到2020年,车载连接(硬件以及应用可以为驾驶员或者车队带来了各种各样的新功能)的市场预计将达到1200亿欧元。”源自:BostonConsultingGroup,ConnectedVehiclesandtheRoadtoRevenue
J1939的比特率通常为250Kb/s(最近还能支持500Kb/s),并且拥有18位扩展标识符共29位标识符(CAN2.0B)
大多数J1939报文都是以广播的形式在CAN总线上进行传播,而一些数据只能通过请求方式从CAN总线来获得数据
J1939报文中,使用18位的PGN(参数组编号,ParameterGroupNumbers)作为一组参数的标号,参数组内有一个或者多个具体的参数;而参数组中的每个具体的参数在J1939中被19位的SPN(怀疑参数编号,SuspectParameterNumbers)标识出来
多字节数变量先发送有效字节的最低位(Intel字节顺序)。根据传输协议支持最大1785字节的PGN
以下是J1939协议的一组其他特征:
保留的PGN:J1939包含大量的标准PGN,但PGN的00FF00至00FFFF是保留的特殊的PGN:数据字节为0xFF(255)反映N/A数据,而0xFE(254)反映错误
J1939中的PGN包括扩展帧29位CANID中的18位。PGN是J1939标准中唯一的帧标识符(J1939-71文档中列出了PGN以及SPN,您可以查看下这份文件)。
拆分J1939PGN上面只是简单的说明,因为J1939的29位标识符可以进一步细分。CANID中包括优先级(3位),PGN(18位)和源地址(8位)。此外,PGN还可以分为四个部分:保留位(1位),数据页位(1位),PDU格式域(8位)和组扩展域(8位)。如果想了解更多,我们这有一个非常受欢迎的在线转换器,可用于将CANID转换为PGN,并查看PGN子组件计算背后的公式,可以私信获取在线转换器。如果您对J1939DBC文件感兴趣的话,这可能会让您更容易去理解并且还有可能帮到您。
J1939中的SPN作为数据库中包含的CAN信号(参数)的标识符,SPN按照PGN来分组,可以根据其位起始位置、位长度、精度(比例)、偏移量和单位(将SPN数据提取和缩放为物理值所需的信息或者量)来描述。
示例:解析J1939中SPN190(发动机转速)假设您记录了原始的J1939报文,如下所示:
CANID
数据字节
0CF00401
FFFFFF6813FFFFFF
SPN190发动机转速实际的发动机转速,是通过最小曲轴角度720度除以气缸的数量来计算的
PGN
61444
SPN
190
位开始
24
位长度
16
精度
0.125rpm/位
偏移量
0
最小值
最大值
8031.875
示例:J1939DBC文件实际上,您不需要通过查PDF的方式去解析J1939数据的内容,这个信息可以存储在一个CAN数据库文件(.dbc文件)中。J1939DBC文件可用于解码大多数重型车辆上的数据。原始的J1939数据可以用CAN总线数据记录器记录,并在支持DBC转换的CAN软件工具(例如PCAN-Explorer6软件)中进行分析。这通常能解析市面上40-60%车辆的数据,其他的则是OEM专用的数据,这里就需要逆向工程了。
J1939请求报文J1939协议支持各种高级操作,例如请求、多包报文和多路复用:大多数J1939报文以广播的形式在CAN总线上传播,但有些信息是需要请求的(例如一些J1939诊断故障代码)。这是通过“请求报文”(PGN59904)来实现的,这是仅有3个数据字节的J1939报文。它的优先级为6,传输速率可变,可以作为全局或特定地址的请求发送。数据字节从第1位到第三位中,应包含请求的PGN(Intel字节顺序),这里的J1939请求报文中包含了诊断信息(DM)。对于OBD2来说,您可以利用我们CANedge中的传输列表来建立SAEJ1939的请求报文。
J1939多包信息PGN和SPN的示例中是基于8个数据字节的J1939报文,这是大多数报文的大小。但是还有其他两种类型的报文:3个数据字节的请求报文和数据字节可变的报文。后者的数据字节超出了CAN总线格式通常的8字节限制。此类消息称为J1939的多帧或多包报文。J1939协议规定了如何拆解、传输和重组数据包的过程,这一过程被称为传输协议(cf.J1939-21),传输多包报文有两种方式:1、连接管理(点对点传输):适用于特定的设备2、广播通知报文(使用全局地址):适用于整个网络
简单来说,广播通知报文是基于发送ECU发送原始广播通知报文组来建立传输工作的。广播通知报文定义了多包PGN标识符以及要发送的数据字节和数据包的数量,数据包个数最多达255个。每个数据包中的第一个数据字节都用于存放序列号(1到255),然后后面跟7个数据字节。所以最大的传输数据字节数为7字节x255=1785字节。最后的数据包中至少得包含一个字节的数据,后面没有用到的都会填充FF。在广播通知报文模式下,消息之间的间隔为50-200ms。最后,转换软件能将多条报文中的数据组合成为一个字符串,并根据多包报文中的PGN和SPN进行解析。
下面我们会告诉你真正的J1939数据是什么样的。这是使用CANedge2从重型卡车上记录下来的“原始”J1939数据,而“物理值”是经PCAN-Explorer6软件的J1939DBC解析插件解析后的输出。
示例:卡车J1939原始的数据(CSV)用CANedge记录的数据会以一个标准化的二进制格式保存为.mdf4文件,可以通过我们的.mdf4文件转换器将其转换为任何文件格式(例如,转换为CSV,ASC,TRC等)。以下是原始J1939框架的CSV版本。请注意,CANID和数据字节均采用十六进制格式:
您可以在我们CANedge2的介绍文档中下载完整的原始J1939.mdf4文件示例。该示例数据还包括一个示例J1939DBC,以便您可以通过PCAN-Explorer6软件尝试解析J1939报文。
该CANedge记录仪能让您轻松记录J1939数据到8-32GB的SD卡。只需将其连接到重型车辆上即可开始记录,并可以通过PCAN-Explorer6软件和我们的J1939DBC来解码数据。
来自卡车,公共汽车,拖拉机等的J1939数据可用于车队管理,以降低成本或提高安全性
通过将解码后的J1939数据传到PC端,技术人员可以实时分析和诊断车辆
可以通过云端的IoTCAN记录仪监控车辆,基于J1939的数据预测并避免故障
CAN记录仪可以用作重型车辆的“黑匣子”,为纠纷或诊断等提供数据
您是否有J1939数据想解析?请联系虹科,我们应该能帮到您~
1.J1939记录仪和J1939数据接口
具有SD卡的独立J1939数据记录仪非常适合记录车辆数周或数月的数据。WiFi版的J1939记录仪还能支持远程信息处理。如果用J1939USB-PC接口就得PC端实时传输来自CAN总线的数据。WiFi版的J1939记录仪对于诊断或分析数据就显得尤为方便了。CLX000支持两种操作模式,CANedge2会非常适合远程信息处理。
2.连接器与非接触式读取
要将CAN分析仪接到用J1939通信的机器(例如卡车)上时,通常可以使用9针J1939连接器。我们能给您提供DB9-J1939连接器,该连接器适合许多重型车辆中使用的9针deutsch连接器。或是,您可能想通过CANCrocodile将CAN记录仪连接到CAN总线上。这些方法都能在不干扰CAN总线传输的基础上记录数据,不需要断开任何CAN线。
3.WiFi与蜂窝(3G/4G)数据上传
对于车队管理和远程信息处理,您通常会通过WiFi或3G/4G上传数据。利用CANedge2,您可以通过连接WiFi来传输数据,WiFi可以是由WLAN路由器或3G/4G热点产生的。如果您需要行驶中卡车的数据,那么可以安装CANedge2并用其为一个3G/4GUSB热点供电。这样做的好处是您可以不间断访问该设备,除非设备没有了信号。但是,如果在只需要定期上传数据,那就可以在车辆去特定区域(例如车库,维修店等)时通过WLAN上传数据,从而降低了数据传输成本。
4.软件选择和1939DBC文件
在记录或传输J1939数据时,用于后处理的软件是关键。特别是,该软件应支持基于J1939DBC解析,这样可以轻松获得人类可读的数据。我们的PCAN-Explorer6软件就支持此功能,并能实时进行DBC解析。此外,在与SAE合作的基础下,我们还能提供J1939DBC文件的下载。
5.考虑对请求PGN的需要
一些J1939PGN需要请求才能提供,这意味着您需要通过不断地询问CAN总线来记录这些信息。CANedge和CLX000能够发送自定义的CAN报文,这些报文可用于定期发送PGN请求。但是,如果您将记录仪设置成“只听模式”(silentmode)的话则不能将此功能使能(即,记录仪如果通过CANCrocodile等连接,这项功能也是不能使能的)。
6.过滤、压缩和加密数据
为了优化J1939数据的记录,许多高级配置可能会对此有所帮助。特别是,CANedge的高级过滤器和采样率选项有助于优化记录的数据量,这是最大限度地减少蜂窝带宽使用的关键。其他选项包括只听模式和循环记录,后者能使记录仪始终能够对最新的数据进行优先级排序(在黑匣子记录中很有用)。
由于J1939是标准化的,因此在“存储”(atrest)(在SD卡上)和“传输”(在上传过程中)中加密数据是至关重要。这样就能减少您在数据处理过程面临的各种安全风险,包括面临GDPR/CCPA的罚款、机密信息的泄露和数据完整性的破坏。更多有关保护J1939数据记录的详细信息,请与虹科联系