在这篇介绍中,我们介绍了J1939协议的基本知识,其中包括PGN和SPN。
因为这是一篇偏向应用的简介,所有您还将会学习到如何通过DBC文件解码J1939数据、如何记录J1939、典型的应用案例和实用技巧。
下面,来了解下这份简单易懂的J1939介绍吧~
什么是J1939?
简而言之,SAE J1939其实是一套标准,重型车辆ECU间就是按照这套标准在CAN总线上进行通信的。
当今大多数车辆都通过CAN(Controller Area Network)进行ECU通信。但是,CAN总线仅仅只是提供了通信的基础(就像是电话),但是没有提供对话的“语言”来进行更复杂的操作。在大多数大型车辆中,这个“语言”就是【我爱线报网】汽车工程师协会(SAE)定义的SAE J1939标准。那用专业点术语来解释就是:基于CAN这个“物理层”,J1939提供了一个高层协议HLP(higher layer protocol)。
还是有点晕?继续往下看吧~
它是一种广泛应用于重型车辆的标准:简单来说,就是J1939将ECU之间的通信标准化了,或者换句话说:J1939为不同的供应商提供了一种通用的语言。相比之下,乘用车都是使用OEM自定义的专用协议
J1939应用案例
J1939最广为人知的其中一个应用是在重型车辆(例如客车或货车)上的应用(不过,现在在一些基础工业领域还会用到SAE J1939的衍生标准,如:ISO 11783,MilCAN【我爱线报网】,NMEA 2000,FMS):
客货车辆:大巴,轻卡,重卡等林业机械:伐木机、运材车、集木机等矿用车辆:推土机、挖掘机等军用车辆:坦克、运输车辆等农用车辆:拖拉机、收割机等建筑领域:液压移动升降机、起重机等救援机械:救护车、消防车等其他:船、电动公交车、发电设备以及泵类机械等数据标准化是数据记录应用在重型车辆上的关键推动力,下面将进一步介绍。
J1939的历史
1994年:发布了第一批文档(J1939-11,J1939-21,J1939-31)2000年:发布了初始最高级的文档2000年:CAN正式被纳入J1939标准2001年:J1939开始取代以前的SAE J1708 / J1587标准未来的【我爱线报网】J1939
随着重型车辆的远程信息处理技术兴起,J1939在车联网市场中扮演的角色越来越重要。因此,J1939 IoT(物联网)记录器的安全性越来越受到重视。同时,OEM将会从传统CAN逐渐转向CAN FD ,向具有可变数据域速率的J1939协议过渡。
此外,在电动汽车的充电桩领域同样以J1939作为应用层标准。比如国标GBT27930-2015电动汽车非车载传导式充电机与电池管理系统之间的通信协议中,定义了J1939应用层的通信参数组等等。随着电动汽车的稳步发展,J1939应用的节点将会越来越多。
到2020年,车载连接(硬件以及应用可以为驾驶员或者车队带来了各种各样的新功能)的市场预计将达到12【我爱线报网】00亿欧元。
源自:Boston Consulting Group, Connected Vehicles and the Road to RevenueJ1939的4个关键特征
J1939协议中有以下一些典型的特征:
250Kb/s的比特率和29位的扩展IDJ1939的比特率通常为250Kb/s(最近还能支持500Kb/s),并且拥有18位扩展标识符共29位标识符(CAN 2.0B)
广播与请求大多数J1939报文都是以广播的形式在CAN总线上进行传播,而一些数据只能通过请求方式从CAN总线来获得数据
PGN和SPNJ1939报文中,使用18位的PGN(参数组编号,Parameter Group Nu【我爱线报网】mbers)作为一组参数的标号,参数组内有一个或者多个具体的参数;而参数组中的每个具体的参数在J1939中被19位的SPN(可疑参数编号,Suspect Parameter Numbers )标识出来
多字节数的变量和多包报文多字节数变量先发送有效字节的最低位(Intel字节顺序)。根据传输协议支持最大1785字节的PGN
其他J1939特性以下是J1939协议的一组其他特征:保留的PGN: J1939包含大量的标准PGN,但PGN的 00FF00至00FFFF是保留的特殊的PGN:数据字节为0xFF(255)反映N / A数据,而0xFE(254)反映错误
J1939“更高层的协议”介绍(专业术语较【我爱线报网】多)
J1939是基于CAN的,CAN提供了基本的“物理层”和“数据链路层”,这是OSI模型的最低层。
基本上CAN只允许在CAN总线上进行简单通信,但仅此而已。而J1939作为高层协议,可以实现更复杂的通信。
一个更高层的协议使大型、复杂网络之间进行通信成为可能。例如,SAE J1939协议规定了如何处理“ 多包数据报文 ”,即,当需要传输大于8字节的数据时。同样地,它规定了如何将数据解析为人类可读的数据。它通过提供一系列标准来实现这一点。J1939-71这份文档,其中详细说明了如何将大量已经在众多制造商中使用的J1939报文转换为所需的人类可读数据信息(有关更多信息,请参见下文)。
还有许多其他基于C【我爱线报网】AN的更高层协议,例如CANopen,DeviceNet,UDS服务。尽管它们都可以由制造商进行扩展,但它们通常在各自的行业代表一种一定程度的标准。
相比之下,乘用车的车企都会用自定标准。换句话说,您可以使用相同的J1939.dbc文件来解析来自不同车企的两辆卡车发动机转速,但是您不能使用标致207车型的.dbc文件去解析Audi A4车型的数据。
J1939中的PGN和SPN
PGN(参数组编号,Parameter Group Number)
J1939中的PGN包括扩展帧29位CAN ID中的18位。PGN是J1939标准中唯一的帧标识符(J1939-71文档中列出了PGN以及SPN,您可以查看下【我爱线报网】这份文件)。
示例:J1939 PGN 61444(EEC1)
假设您记录了一条J1939报文,其ID为0CF00401。在这里,PGN从第9位开始,长度为18(从索引1开始(indexed from 1))。PGN就是0F004或用十进制来表示就是61444。在SAE J1939-71文档中进行查找,发现它是“ 发动机电子控制器1-EEC1 ”。另外,该文件里面包含了PGN的详细信息,包括优先级、传输速率和相关SPN,详见下图。
在这个PGN中,有七个SPN(例如,发动机转速,RPM),可以在J1939-71文档中查询每个SPN的详细信息。
拆分J1939 PGN
上面只是简单的说明,因为J1939的2【我爱线报网】9位标识符可以进一步细分。CAN ID中包括优先级(3位),PGN(18位)和源地址(8位)。
此外,PGN还可以分为四个部分:保留位(1位),数据页位(1位),PDU格式域(8位)和组扩展域(8位)。
如果想了解更多,我们这有PCAN-Explorer6软件,可用于将CAN ID转换为PGN,并查看PGN子组件计算背后的公式。如果您对J1939 DBC文件感兴趣的话,这可能会让您更容易去理解并且还有可能帮到您。
SPN(可疑参数编号,Suspect Parameter Number)
J1939中的SPN作为数据库中包含的CAN信号(参数)的标识符,SPN按照PGN来分组,可以根据其位起始位置、位长【我爱线报网】度、精度(比例)、偏移量和单位(将SPN数据提取和缩放为物理值所需的信息或者量)来描述。
示例:解析J1939中SPN 190(发动机转速)
假设您记录了原始的J1939报文,如下所示:
通过将CAN ID转换为J1939的PGN,您可以知道这是之前提到的PGN 61444。从J1939-71文档中,您可以查到该PGN中的SPN之一是发动机转速(SPN 190),其详细信息如表所示。
使用这些详细信息,可以提取“发动机转速”物理值数据,可用于绘制图像等。因此,请您注意PGN信息中位于第4和5字节中相关的数据,即十六进制数据字节中的68和13。将十六进制的1368(Intel字节顺序)转换成十进制,即4【我爱线报网】968。为了得到RPM,我们使用偏移量0和0.125 RPM /位的精度对此值进行缩放。最终得到的物理值(即缩放工程值)是621 RPM。
注意上面的一些数据字节是FF或是255,即不可用。虽然PGN理论上是可以支持在此范围内的SPN,但是填充了FF就意味着这特定应用程序不支持这些参数。
SPN 190
发动机转速实际的发动机转速,是通过最小曲轴角度720度除以气缸的数量来计算的
实际上,您不需要通过查PDF的方式去解析J1939数据的内容,这个信息可以存储在一个CAN数据库文件(.dbc文件)中。
示例:J1939 DBC文件
J1939 DBC文件可用于解码大多数重型车辆上的数据。原始的J1939数据【我爱线报网】可以用CAN总线数据记录器记录,并在支持DBC转换的CAN软件工具(例如PCAN-Explorer6软件)中进行分析。这通常能解析市面上40-60%车辆的数据,其他的则是OEM专用的数据,这里就需要逆向工程了。
J1939卡车样本数据:原始值和真实的物理值
下面我们会告诉你真正的J1939数据是什么样的。这是使用CANedge2从重型卡车上记录下来的“原始” J1939数据,而“物理值”是经PCAN-Explorer6软件的J1939 DBC解析插件解析后的输出。
示例:卡车J1939原始的数据(CSV)
用CANedge记录的数据会以一个标准化的二进制格式保存为.mdf4文件,可以通过我们的.mdf【我爱线报网】4文件转换器将其转换为任何文件格式(例如,转换为CSV,ASC,TRC等)。以下是原始J1939框架的CSV版本。请注意,CAN ID和数据字节均采用十六进制格式:
您可以在我们CANedge2的介绍文档中下载完整的原始J1939 .mdf4文件示例。该示例数据还包括一个示例J1939 DBC,以便您可以通过PCAN-Explorer6软件尝试解析J1939报文。
示例:卡车J1939解码后物理值数据(CSV)
一旦J1939原始数据被解码并导出,结果就是如油温,发动机转速,GPS,燃油率和速度之类带有时间戳的参数:
想了解更多J1939记录数据示例,可以联系虹科详细了解~
CANedge J1939记【我爱线报网】录仪介绍
该CANedge记录仪能让您轻松记录J1939数据到8-32 GB的SD卡。只需将其连接到重型车辆上即可开始记录,并可以通过PCAN-Explorer6软件和我们的J1939 DBC来解码数据。
高阶:J1939中请求和多包报文
J1939 请求报文
J1939协议支持各种高级操作,例如请求、多包报文和多路复用:
大多数J1939报文以广播的形式在CAN总线上传播,但有些信息是需要请求的(例如一些J1939诊断故障代码)。这是通过“请求报文”(PGN 59904)来实现的,这是仅有3个数据字节的J1939报文。它的优先级为6,传输速率可变,可以作为全局或特定地址的请求发送。数据字节从第1位到第【我爱线报网】三位中,应包含请求的PGN(Intel字节顺序),这里的J1939请求报文中包含了诊断信息(DM)。对于OBD2来说,您可以利用我们CANedge中的传输列表来建立SAE J1939的请求报文。
J1939 多包信息
PGN和SPN的示例中是基于8个数据字节的J1939报文,这是大多数报文的大小。但是还有其他两种类型的报文:3个数据字节的请求报文和数据字节可变的报文。后者的数据字节超出了CAN总线格式通常的8字节限制。此类消息称为J1939的多帧或多包报文。J1939协议规定了如何拆解、传输和重组数据包的过程,这一过程被称为传输协议(cf. J1939-21),传输多包报文有两种方式:
连接管理(点【我爱线报网】对点传输):适用于特定的设备广播通知报文(使用全局地址):适用于整个网络简单来说,广播通知报文是基于发送ECU发送原始广播通知报文组来建立传输工作的。广播通知报文定义了多包PGN标识符以及要发送的数据字节和数据包的数量,数据包个数最多达255个。每个数据包中的第一个数据字节都用于存放序列号(1到255),然后后面跟7个数据字节。所以最大的传输数据字节数为7字节x 255 = 1785字节。最后的数据包中至少得包含一个字节的数据,后面没有用到的都会填充FF。在广播通知报文模式下,消息之间的间隔为50-200ms。最后,转换软件能将多条报文中的数据组合成为一个字符串,并根据多包报文中的PGN和SP【我爱线报网】N进行解析。
J1939数据记录—应用示例
重型车队远程信息处理来自卡车,公共汽车,拖拉机等的J1939数据可用于车队管理,以降低成本或提高安全性
实时诊断通过将解码后的J1939数据传到PC端,技术人员可以实时分析和诊断车辆
预见性维护可以通过云端的IoT CAN记录仪监控车辆,基于J1939的数据预测并避免故障
重型车辆的黑匣子CAN记录仪可以用作重型车辆的“黑匣子”,为纠纷或诊断等提供数据
您是否有J1939数据想解析?请联系虹科,我们应该能帮到您~
J1939数据记录的6个实用技巧
我们许多终端用户会在现场进行J1939的记录,下面,我们会分享6条实用的记录技巧:
J1939记录仪和J1939数据接口具【我爱线报网】有SD卡的独立J1939数据记录仪非常适合记录车辆数周或数月的数据。WiFi版的J1939记录仪还能支持远程信息处理。如果用J1939 USB-PC接口就得PC端实时传输来自CAN总线的数据。WiFi版的J1939记录仪对于诊断或分析数据就显得尤为方便了。
CLX000支持两种操作模式,CANedge2会非常适合远程信息处理。
连接器与非接触式读取要将CAN分析仪接到用J1939通信的机器(例如卡车)上时,通常可以使用9针J1939连接器。我们能给您提供DB9-J1939连接器,该连接器适合许多重型车辆中使用的9针deutsch连接器。或是,您可能想通过CANCrocodile将CAN记录仪连接到【我爱线报网】CAN总线上。这些方法都能在不干扰CAN总线传输的基础上记录数据,不需要断开任何CAN线。
WiFi与蜂窝(3G / 4G)数据上传对于车队管理和远程信息处理,您通常会通过WiFi或3G / 4G上传数据。利用CANedge2,您可以通过连接WiFi来传输数据,WiFi可以是由WLAN路由器或3G / 4G热点产生的。如果您需要行驶中卡车的数据,那么可以安装CANedge2并用其为一个3G / 4G USB热点供电。这样做的好处是您可以不间断访问该设备,除非设备没有了信号。但是,如果在只需要定期上传数据,那就可以在车辆去特定区域(例如车库,维修店等)时通过WLAN上传数据,从而降低了数据传输成本【我爱线报网】。
软件选择和1939 DBC文件在记录或传输J1939数据时,用于后处理的软件是关键。特别是,该软件应支持基于J1939 DBC解析,这样可以轻松获得人类可读的数据。我们的PCAN-Explorer6软件就支持此功能,并能实时进行DBC解析。此外,在与SAE合作的基础下,我们还能提供J1939 DBC文件的下载。(图片插入:PE6-J1939-长帧报文解析与发送.png)
考虑对请求PGN的需要一些J1939 PGN需要请求才能提供,这意味着您需要通过不断地询问 CAN总线来记录这些信息。CANedge和CLX000能够发送自定义的CAN报文,这些报文可用于定期发送PGN请求。但是,如果您将记录【我爱线报网】仪设置成“只听模式”(silent mode)的话则不能将此功能使能(即,记录仪如果通过CANCrocodile等连接,这项功能也是不能使能的)。
过滤、压缩和加密数据为了优化J1939数据的记录,许多高级配置可能会对此有所帮助。特别是,CANedge的高级过滤器和采样率选项有助于优化记录的数据量,这是最大限度地减少蜂窝带宽使用的关键。其他选项包括只听模式和循环记录,后者能使记录仪始终能够对最新的数据进行优先级排序(在黑匣子记录中很有用)。
由于J1939是标准化的,因此在“存储”(在SD卡上)和“传输”(在上传过程中)中加密数据是至关重要。这样就能减少您在数据处理过程面临的各种安全风险,包括面临【我爱线报网】 GDPR / CCPA的罚款、机密信息的泄露和数据完整性的破坏。
推荐阅读
友情提醒: 请尽量登录购买,防止付款了不发货!
QQ交流群:226333560 站长微信:qgzmt2