了解J1939协议和J1939数据记录仪(车辆工程机械中的黑匣子)

news/2024/11/7 19:51:59/

在这里插入图片描述

SAE J1939是由汽车工程师协会(SAE J1939)定义的标准,专门用于提供微处理器系统之间的串行数据通信。虽然CAN存在并且被广泛用于小型车辆,但SAE J1939被设计为大型车辆复杂网络的专用通信和诊断协议。J1939通常应用于重型车辆,如卡车,拖拉机,拖车,农用车辆,船舶,援助和救援以及许多此类越野车辆。今天,它已被世界各地的柴油发动机制造商广泛认可。

SAE J1939是一种基于控制器局域网(CAN)的高层协议(HLP),这是一种专门的内部通信网络,可互连车辆内部的组件。正如CAN总线作为这种通信的硬件一样,J1939可以更好地理解为它所使用的语言。SAE J1939已成功取代了先前存在的SAE J1708和J1587标准。它已成为多个制造商之间的标准通信方法,不仅提供了设定的通信标准,此外还提供了:

• 指定如何处理多数据包信息

• 支持跨大型复杂网络的通信

• 指定如何将数据转换为人们可读的信息

• 定义了自己的诊断接口

在这里插入图片描述

标准CAN总线支持11位或29位报文ID,几乎每个波特率可高达1 Mbps。SAE J1939 仅限于 250kbps 或 最大500 kbps的 29 位报文ID,这是为了最大程度上保证J1939的可靠性。但它可以支持大于8个数据字节的报文。大多数J1939报文在CAN 上广播(BAM),但有些数据只能通过CAN总线请求(CM)才能获得(本文稍后会解释)。J1939 报文由 18 位参数组号 (PGN) 标识,而 J1939 信号称为可疑参数编号 (SPN)。通过 J1939 传输协议,最多支持 1785 字节的 PGN。

关于这个细节,下图应该可以清楚地描绘出 29位CAN标识符如何在 SAE J1939消息格式中的表达方式:

在这里插入图片描述

在这里:

•帧的开始(SOF):如 CAN 中所定义,标记帧的开始,并且始终为主一个显性0。

•远程请求位(RTR):在 SAE J1939 中始终设置一个显性的 0。

其他字段就如在CAN标准中定义那样。这里有趣的是,所有J1939数据包(请求包除外)都包含8个字节的数据和一个包含名为参数组号(PGN)的索引的标准头。其中包含一个名为参数组编号 (PGN) 的索引,嵌入在报文的 29 位标识符中。参数组编号 (PGN) 是指保留位、数据页、PDU 格式和 PDU 特定字段的值(组合成单个 18 位值)。

J1939结构中使用的29位标识符以下面给出的方式表示。在这里,PDU 代表协议数据单元,这是消息格式:

在这里插入图片描述

•优先级:在仲裁过程中控制消息的优先级。“0”具有最高优先级,通常赋予高速控制消息。例如,来自制动器的信息总是优先于来自车辆环境温度的信息。

•扩展数据页和数据页:PGN 中包含这些位,以便计为最高有效位。数据页位扩展了标识符可以表示的可能参数组的数量。数字范围排列在以下四页中:

扩展数据页面 数据页面 描述
0 0 SAE J1939 和 ISO 11783
0 1 SAE J1939 NMEA 2000*
1 0 SAE J1939-保留
1 1 ISO 11992 诊断
(无 J1939 布局)
(在 SAE J1939中仅使用了3个)

•PDU 格式:确定是使用目标地址传输消息还是始终以广播消息的形式传输消息。

•PDU 特定:PDU 特定字段根据 PDU 格式值而改变

▶PDU 格式介于 0 到 239 之间:

▷ 报文是可寻址的,并且 PDU 特定字段包含目标地址。它指定对等通信(CM)
▷ 如果将全局(255)用作目标地址,则该参数组将针对所有设备。在这里,PGN仅由PDU格式形成
▶ PDU 格式介于 240-255 之间:
▷ 只能是广播报文 (BAM)
▷ PDU 格式和 PDU 特定字段中的组扩展构成了所传输参数组的 PGN
▷ 这个组扩展扩展标识符可以表示可能的广播参数组的数量
•源地址:其中包含传输消息的设备的地址。地址是指定用于唯一访问网络上给定设备的特定标签。对于任何给定的网络,每个地址都必须是唯一的。总共有254个不同的地址可用。没有两个不同的设备(ECU)可以使用相同的地址。

SAE J1939 中的 PGN 和 SPN

在这里插入图片描述

参数组编号 (PGN)是 J1939 标准中的唯一帧标识符,用于引用将保留位、数据页、PDU格式和 PDU特定字段的值组合成单个 18 位值。参数组包含了每个报文的 8 字节 CAN 数据字段中的参数分配、重复率和优先级。

参数组编号 可分为两种类型:

  1. 全局参数组编号
    此类PGN识别广播(发送给所有人)的参数组。这里,PDU格式>=240,并且PDU特定字段是组扩展。
  2. 特定参数组编号
    这些用于对等发送(到特定设备)的参数组。如果PDU格式<=239,并且PDU特定字段设置为0,则无论两个 PGN 的类型如何, PDU 格式、PDU 特定字段、数据页和扩展数据页都用于识别相应的参数组。

可疑参数编号 (SPN) 是 SAE 分配给参数组中特定参数的编号。它们用作数据字节中CAN信号的标识符。SPN 也被定义为内部协议信息,用于诊断目的,以报告和识别 控制器应用程序 (CA) 的异常操作。

SPN 是一个 19 位数字,其范围从 0 到 524287。 从520192到524287的范围被保留给专有参数。除字母数字数据外,SPN 解释始终从 LSB 为 MSB(从右到左)。SPN 可能存在于多个 PGN 中。PGN对 SPN 进行分组,它 通过提供以下信息来详细描述参数:

• 数据长度(以字节为单位)

• 规模

• 数据类型

• 单位

• 分辨率

• 偏移

• 范围

• 参考标签(标识)

参数组(PG) 包含具有共同特征的 SPN,它们使用参数组编号(PGN) 在整个网络中传输。

SAE J1939 中的传输协议

如前所述,通过 J1939 传输协议支持高达 1785 字节的 PGN。但是,要发送 超过 8 字节的报文,需要在传输端将较大的报文分解为较小的数据包。每个数据包与 CAN报文一起发送(也称为多数据包传输),并在接收端重新组合。定义报文如何被分解、传输和重建的规则称为 SAE J1939 的传输协议。

SAE J1939 中定义了两种传输协议类型:

  1. 广播通告消息 (BAM):

• 一对多的沟通方式。

• 使用全局目标地址。

• 报文将传输到所有节点。在这里,发射器负责管理整个网络中的整个数据。

• 接收者用任何方式都不能干扰这种通信。即使没有收到任何数据包,接收方也无法示意它。

• 发送者全权负责保持两个数据包传输之间的特定时间间隔(范围从50-200ms)。因此导致整个网络的通信速度比较慢,但它也允许速度较慢的节点跟上通信的步伐。

  1. 连接模式 (CM):

• 点对点的连接。

• 涉及特定设备,其中传输端发送带有指示发送请求(RTS)的控制字节的CM报文,包括字节数,数据包数以及数据被传送的PGN。

• 接收者使用 CM 报文进行响应,该报文在控制字节中包含了“清除发送” (CTS),包括接收方接下来预期的数据包数和要开始的数据包数。

• 在这里,接收方负责控制数据流和各个数据包的流动。但是发射器和接收器都可以在任何时间点终止通信。

• 传输不受时间限制, 每个节点都以其最大速度运行。因此,此模式更快。

SAE J1939 中的诊断故障代码

在J1939标准中,存在特殊的诊断故障代码。ECU中的每个故障都记录为诊断故障代码。它们识别并记录任何SPN 行为异常的任何错误属性,并使用故障指示器来缩小特定错误背后的原因。

在这里插入图片描述

SPN: - 指定有故障的 SPN (0-524,287)

FMI:- 故障模式指示器指定错误的类型/性质 (0-31)

OC :- 发生率计数器,指定给定故障的发生次数 (0-127)

CM: - 通过定义 DTC(0-1)中的字节来排列来指定转换方法

例如:
在这里插入图片描述

J1939 数字附件:

在这篇文章中读到这里,“CAN DBC”可能听起来很熟悉。与 CAN 一样,J1939也可能有自己的数据库文件,这是有道理的。但 SAE 不维护或定义 J1939 的任何 DBC。相反,SAE 维护和销售名为 J1939 数字附件的 excel 文件,以传达为 J1939 创建 DBC 文件所需的所有技术信息。在J1939DA 的帮助下,人们可以根据制造商的产品需要的信息类型创建他们的 DBC 文件。

此外,还有来自不同制造商的许多应用程序都可以读取 DBC 文件,例如“Influx DiaLog”。来自Influx的RebelReXgen 系列 CANbus 数据记录仪支持J1939数据的记录。ReXgen 可以根据J1939过滤器(SA,DA,PGN)记录数据,并且可以根据DM1计数器设置触发。
Rebel系列总线记录仪
Rebel 系列总线记录仪

ReXgen系列总线记录仪
ReXgen系列总线记录仪


http://www.ppmy.cn/news/506185.html

相关文章

Jmeter(十八):硬件性能监控指标

硬件性能监控指标 一、性能监控初步介绍 性能测试的主要目标 1.在当前的服务器配置情况&#xff0c;最大的用户数 2.平均响应时间ART&#xff0c;找出时间较长的业务 3.每秒事务数TPS&#xff0c;服务器的处理能力 性能测试涉及的内容 1.客户端性能测试&#xff1a;web前…

群晖安装青龙面板docker+Faker一键拉库部署+j1900配置

群晖安装docker青龙面板Faker库 系统介绍一、创建挂载文件夹1、我们点击我们的文件管理&#xff08;File Station&#xff09;2、创建挂载子文件夹 二、安装docker三、安装青龙面板1、下载青龙面板镜像2、配置青龙面板3、青龙面板创建完成 四、Faker拉库&#xff08;推荐库&…

J1900低功耗小PC装liunx问题

J1900显卡对Ubuntu支持不太友好&#xff0c; 一、配置一 为 J1900 2G 32G内存 安装Ubuntu 16.04 LTS&#xff0c; 网口有时会自动断开&#xff0c;显卡有问题&#xff0c;无法安装intel驱动&#xff0c; 升级Ubuntu 18 后显卡依然有问题&#xff0c;但是有所好转 安装win…

J1900 安装以及配置ubuntu18.04(1)

安装以及配置ubuntu18.04&#xff08;1&#xff09; 前言安装系统配置系统1、开启ssh2、开启vnc3、挂载硬盘4、开机自启动程序 前言 J1900可以做什么&#xff1f;听过的人已经明白了&#xff0c;听不懂的人还要研究一番。 现有一台小主机配置如下&#xff1a; 配置参数cpuJ19…

Jetson嵌入式系列模型部署-2

目录 前言1. 源码下载2. 环境配置2.1 Jtop(option)2.1.1 配置pip2.1.2 安装jtop2.1.3 使用jtop 2.2 源码配置说明 3. 运行3.1 .pt转.wts3.2 build3.3 run 4. 结语5. 下载链接6. 参考 前言 给大家安利的第一个仓库是tensorrtx。该仓库通过TensorRT的Layer API完成模型的构建工作…

j1900 nas安装windows蓝屏,无网卡连不上网

几年前买的nas黑群晖小主机&#xff0c;一直觉得不好使&#xff0c;放在那隔了几年&#xff0c; 因为在抖音上看别人用windows做nas&#xff0c;就有想法把j1900做个windows系统 系统做好了以后出现了很多问题&#xff0c;比如 网线插着也亮灯&#xff0c;系统里就是没有网络…

j1900软路由安装esxi6.7

前言 准备系统u盘这事就不说了。咱们从装系统开始说。这里有好几个大坑。 装系统 先说&#xff0c;我的软路由配置时J1900&#xff0c;4G内存、32G硬盘。买的配置比较低。这次说装esxi&#xff0c;这32G硬盘就不够看了&#xff0c;所以把机箱拆开看看能不能扩展一下存储。由…

服务器安装ros性能测试,[分享]RouterOS 6.29.1 X86 J1900性能测试 | 霸王硬上弓's Blog...

在X86 J1900上使用ROS 5.2X版本&#xff0c;结果发现和原来的D2550 CPU占用率是差不多的……这不 弄了个ROS 6版本来用用&#xff0c;版本已经升级到6.29.1了。 测试的防火墙规则与之前完全相同。 ROS 5.24版本CPU占用率&#xff1b; LAN TO WAN 100Mbps 纯上行&#xff1a;27%…