首页 » 导购 >

车用总线技术 | CAN接口——实时串流传输CAN总线和OBD2数据

2021-06-23 08:16:08来源:盖世汽车

您是否需要低成本的CAN接口将CAN / OBD2数据流传输到PC吗?在本简介中,我们将展示虹科CLX000如何让您通过USB实时传输数据,以及相关用例。并且我们还会解释为什么与Wireshark集成后使CLX000成为最流行的CAN接口之一。

1、CAN / OBD2串流传输如何工作?

使用CLX000,可以从任何基于CAN的应用场景(汽车,卡车,轮船,机器等)中串流式传输CAN总线数据。下面以汽车串流式传输为例。

传输原始CAN / OBD2数据涉及4个步骤:

1、配置CLX000(例如,请求OBD2 PID)

2、通过OBD2适配器将CLX000连接到汽车

3、通过USB线将CLX000连接到PC

4、通过免费软件开始串流式传输

can总线

有关详细信息,可以查看CLX000简介。

2、使用CLX000和Wireshark进行数据串流传输的四大好处

使用CLX000和Wireshark进行CAN / OBD2数据串流传输具有以下优点:

2.1 快速逆向工程

can总线

CLX000可用作Wireshark中的“CAN嗅探器”,用于执行快速反向工程,例如专有的CAN参数或OBD2 PID。

2.2 实时问题诊断

can总线

通过Wireshark中的实时数据流,可以对数据进行过滤和着色以快速放大特定模式然后进行快速诊断。

2.3 实时查看物理值

can总线

Wireshark支持对数据进行实时OBD2和DBC(例如J1939)解码,从而简化了对卡车和汽车等的实时分析。

2.4 通过图像立即反馈

can总线

可以绘制物理值图像,从而以图形方式显示速度/ RPM使其更容易查看物理值的变化。

3、CLX000 CAN / OBD2记录器和接口

CLX000是一款低成本CAN总线数据记录器和接口,具有强大的功能,主要有以下六个功能及特点:

3.1 即插即用

can总线

两分钟内完成配置,通过CAN连接器供电,自动检测比特率。

3.2 独立设备

can总线

将CAN数据记录到8-32GB SD卡——无需PC

3.3 免费软件

can总线

配置CLXOOO,记录数据并转化数据文件

3.4 实时传播

can总线

在Wireshark中轻松串流式传输原始数据以及DBC转换的CAN / OBD2数据

3.5 紧凑

can总线

小巧易携带(6.6 x 4.3 x 2.4 CM),重量<50g

3.6 低成本

can总线

CLX000的性价比高

以下是CLX000的图片:

can总线

4、示例:在Wireshark中串流式传输CAN / OBD2数据

下面将说明一下数据流是以什么形式呈现的:

4.1 串流传输原始CAN数据

将CLX000连接到汽车,可以通过USB实时传输原始CAN数据,然后通过CANvas打开Wireshark,以查看原始输入所显示的CAN帧,其中包括时间戳(timestamp)、CAN ID和数据字节。

can总线

4.2 解码OBD2数据

如果将CLX000设置为请求OBD2 PID,则可以在原始数据流中查看汽车OBD2 PID响应(通常是CAN ID 7E8)。通过右键单击并选择'Decode As / OBD-II’,则可以将原始的OBD2数据转换为易于理解的格式,例如实时显示车速。

can总线

5、8个实用的Wireshark功能

下面我们列出了使用CLX000和免费插件Wireshark中一些强大的可用功能:

5.1 加载CAN DBC文件

利用Wireshark插件,可以使用自己的DBC文件(包括支持J1939 DBC文件)实时转换原始CAN数据。这是一项强大的功能,因为这将能够使我们实时分析/绘制汽车,卡车,拖拉机或机器上的物理值。有关更多信息,可以参考Wireshark DBC转换指南。

can总线

5.2 启用“CAN live”跟踪视图

对于逆向工程和汽车黑客,Wireshark插件启用了功能强大的“ CAN Live”跟踪视图。这将为每个CAN ID显示一行,并实时为每个ID的数据字节着色。它提供了一个极好的工具,可将CAN ID连接到物理事件,并识别专有CAN总线信号的位或者字节位置。有关更多信息,可以参考CAN总线嗅探器简介。

can总线

5.3 自定义列

我们可以轻松调整Wireshark的列结构。要删除列,只需右键单击并单击“Remove Columns”。要将数据字段添加为列,请在详细信息窗格中右键单击它,然后选择“Apply as Column”。这对于添加具有OBD2 / DBC物理值、最小值、最大值、名称等的列十分有用,我们也可以将列重命名为“Column Preferences”。

can总线

5.4 绘制数据图像

要以图形方式实时绘制转换后的OBD2数据,可以使用OBD2解码数据并转到“Statistics/IO Graph”,最多可以添加5个图表。首先,在X轴下启用“'View as time of day”。在Y轴下,将单位设置为“"Advanced...”。在计算字段中,选择“ AVG(*)”,然后在右侧的字段中输入“ obd-ii.mode01_”,这样会打开一个下拉列表,从中可以选择各种模式和参数。选择一个后,点击“Graph”将其绘制。这也适用于以下情况:例如在J1939 DBC文件中,可以在其中实时绘制转换后的CAN总线信号。

can总线

5.5 数据着色

还可以轻松添加条件格式。例如,如果需要快速发现串流中特定CAN报文或物理值,此时着色功能非常好用。通过右键单击窗口中间部分的字段,可以将所有出现的事件涂成红色,其中特定的CAN消息包含特定范围的数据字节。如下图所示,在OBD2数据中,当“Converted value”超过50 km / h时,可以将车速涂成黄色,而当超过60 km / h时,则将其涂成红色。

can总线

5.6 添加过滤器

过滤器能够更好的让我们控制数据流。要添加过滤器,最快的方法是右键单击详细信息窗格中的数据字段,然后选择“'Apply as Filter”。这将更新左上方的文本字段,接下来就可以编辑详细信息以适合我们的需求。假设我们正在串流式传输OBD2的“requests”(ID 7DF)和“responses”(ID 7E8),并且只想看响应报文?只需在过滤器中写入“ can.id == 0x000007e8”。它会变成绿色,表明它是有效的,可以单击Enter,使用“Expression...”按钮,当然还可以使用各种关系运算符构建更高级的过滤器。

can总线

5.7 以自定义格式导出数据

利用Wireshark,可以轻松地以各种自定义格式(包括* .CSV,*。TXT,*。JSON,*。PCAP,*。C,*。PS等)保存数据流。此外,可以将过滤器应用于数据,并且仅保存可见的选择。

can总线

5.8 加载CLX000日志文件

使用该插件,可以加载以独立模式(例如没有PC的时候)记录的CLX000日志文件。这让我们可以使用CLX000日志文件上的所有Wireshark功能,包括OBD2 / DBC转换。这个功能结合导出为自定义格式的功能也非常有用。

can总线