Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

使用 CAN Explorer 接收和可视化数据

此示例说明如何在 CAN Explorer 中使用图形界面来接收和可视化 CAN 数据。它使用以环回配置形式连接的 MathWorks 虚拟通道。CAN Explorer 配置为使用 MathWorks Virtual 1 Channel 1 接收数据。预先记录的数据在 MAT 文件中提供,并在 MathWorks Virtual 1 Channel 2 上重播,以模拟连接到实际车辆系统时生成的 CAN 流。

打开 CAN Explorer

使用命令 canExplorer 打开 CAN Explorer。您也可以在 MATLAB App 选项卡中找到 CAN Explorer。

选择设备通道

Device List 显示连接到系统的设备的所有可访问 CAN 通道,当前使用的设备通道以蓝色轮廓突出显示。每次启动 CAN Explorer 时,会默认自动选择列表中的第一个设备通道。如果默认未选择 MathWorks Virtual 1 Channel 1,请从 Device List 中选择该通道。

配置数据库文件

将数据库文件添加到 CAN Explorer 以解码传入的报文和信号。

  1. 要打开 Database Configuration 对话框,请在工具条中选择 Databases

  2. 点击 Add 以打开文件选择对话框。选择示例中提供的 CANExplorerDatabase.dbc 文件。

  3. 点击 OK 以保存数据库配置并关闭对话框。

配置通道总线速度

如果所需的网络速度不同于默认值,请配置通道总线速度。

  1. 要打开 Device Channel Configuration 对话框,请在工具条中选择 Device Channel

  2. 此示例使用默认总线速度 500000 位/秒。确认当前设备通道配置,然后点击 OK

在同一对话框中,您可以分别为标准 ID 和扩展 ID 配置报文筛选器,以控制哪些报文通过通道。默认情况下,两个筛选器选项都设置为允许所有报文通过,但您也可以指定允许或阻止特定 ID。

配置信号表

在信号表上添加感兴趣的信号进行查看。在此示例中,您可以查看在 CANExplorerDatabase.dbc 文件中定义的所有信号。

  1. 要打开 Signal Table Configuration 对话框,请在工具条中选择 Signals > Configure Signal Table

  2. 使用 按钮将 Available Signals 窗格中的信号添加到 Configured Signals 窗格中。您可以添加单个信号,通过添加报文来添加报文中的所有信号,或通过添加数据库来添加数据库中的所有信号。对于此示例,在 Available Signals 窗格中选择 CANExplorerDatabase.dbc,然后点击 以添加数据库中所有的信号。

  3. 点击 OK 以保存信号表配置并关闭对话框。

如果您提供信号或报文的搜索文本并点击 FindAvailable Signals 窗格将会更新,以显示与搜索文本不区分大小写的部分匹配的搜索结果。

配置信号示波器

在信号示波器上添加感兴趣的信号进行查看。CAN Explorer 提供 3 个示波器,每个示波器都可以配置为可视化所选信号。示波器的数量是固定的,无法自定义。在此示例中,您可以在顶部信号示波器中查看来自 Message_A 的所有信号,在中间信号示波器中查看来自 Message_BMessage_C 的所有信号,在底部信号示波器中查看来自 Message_D 的所有信号。

  1. 要打开 Top Signal Scope Configuration 对话框,请在工具条中选择 Signals > Configure Top Signal Scope

  2. Available Signals 窗格中选择 Message_A,然后点击 将此报文中的所有信号添加到顶部信号示波器中进行查看。

  3. 点击 OK 以保存顶部信号示波器配置并关闭对话框。

  4. 使用类似的方法,将来自 Message_BMessage_C 的信号添加到中间信号示波器进行查看,并将来自 Message_D 的信号添加到底部信号示波器进行查看。

开始监控

在开始重播之前,在 CAN Explorer 中开始监控,以避免丢失任何数据。点击工具条中的 Start

重播预先记录的 CAN 数据

从 CAN 网络中记录的数据在文件 CANExplorerData.mat 中提供。数据以时间表格式保存,时间范围跨度约为 60 秒。

将 CAN 数据重播到 MathWorks Virtual 1 Channel 2,以便 CAN Explorer 在同一 MATLAB 实例中的 MathWorks Virtual 1 Channel 1 上接收。要开始数据重播,请执行脚本 replayCANData.m。您还可以多次按顺序执行该脚本,以生成超过 60 秒的 CAN 数据用于额外的试验。

探查 Monitor 和 Display 选项

在 CAN Explorer 继续接收数据的同时,您可以使用工具条的 MonitorDisplay 部分中的控件进行试验。

  1. 点击 Pause 以暂停 CAN Explorer 的可视化更新。暂停时,CAN Explorer 继续在后台累积和处理数据。

  2. 点击 Continue 以继续 CAN Explorer 中的可视化更新。

要进一步探查,请执行下列步骤:

  1. 如果您点击 Clear Data,所有累积的数据将从 CAN Explorer 中完全清除。

  2. 默认情况下,Message Table 按时间顺序显示所有 CAN 报文。要查看每个唯一报文的最新实例,请切换 Unique Messages

  3. 默认情况下,Message Table 和 Signal Table 都显示自监控开始以来的时间。要查看自每个表中最后一条报文或信号以来的增量时间,请切换 Delta Time

停止监控

完成实时采集活动后,点击工具条中的 Stop 使设备通道离线。

对数据重播进行清理

通过执行脚本 replayCANDataCleanup.m 进行清理,这将停止用于重播的 MathWorks Virtual 1 Channel 2 并清除不需要的变量。

导出数据以用于其他用途

在工具条中,点击 Export 按钮的上半部分,以时间表格式将接收到的数据导出到 MATLAB 工作区中。

如果您要保留导出的变量以供将来使用:

  • 要将变量保存到 MAT 文件,请使用 save 函数。

  • 要将变量保存到 BLF 文件,请使用 blfwrite 函数。

导出的报文时间表也可以转换为多个单独的信号数据时间表。canSignalTimetable 函数返回一个结构体,其中的每个字段对应时间表中的一个唯一报文。每个字段值是相应报文中定义的所有信号的时间表。