系列文章目录
前言
一、说明
CAN 通信管理器可用于采集和可视化 CAN 数据,对指定的信号和报文进行过滤。
使用此 App,您可以:
- 配置设备通道和采集属性。
- 应用 CAN 数据库配置。
- 预览数据。
- 将数据导出到 MATLAB® 工作区
- 将 App 设置导出为 MATLAB 脚本。
打开 CAN Explorer App
- MATLAB 工具条:在 App 选项卡的测试和测量下,点击该 App。
- MATLAB 命令提示符:输入
canExplorer
。
二、使用 CAN Explorer 接收和可视化 CAN 数据
此示例说明如何使用 CAN Explorer 接收和可视化 CAN 数据。它使用以环回配置形式连接的 MathWorks® 虚拟通道。CAN 通信管理器配置为使用 MathWorks Virtual 1 Channel 1 接收数据。预先记录的数据在 MAT 文件中提供,并在 MathWorks Virtual 1 Channel 2 上回放,以模拟连接到实际车辆系统时生成的 CAN 流。
2.1 打开 CAN 通信管理器
使用命令 canExplorer
打开 CAN 通信管理器。您也可以在 MATLAB® 的 App 选项卡中找到 CAN 通信管理器。
2.2 选择设备通道
当该 App 首次打开时,它会显示连接到系统的设备的所有可访问 CAN 通道。从可用设备中选择 MathWorks Virtual 1 Channel 1。然后该 App 完成打开,如下所示,选中的设备以蓝色轮廓突出显示。
2.3 配置数据库文件
将数据库文件添加到 CAN 通信管理器以解码传入的报文和信号。
- 要打开“数据库配置”对话框,请在工具条中选择数据库。
- 点击添加以打开文件选择对话框。选择示例中提供的
CANExplorerDatabase.dbc
文件。 - 点击确定以保存数据库配置并关闭对话框。
2.4 配置通道总线速度
如果所需的网络速度不同于默认值,请配置通道总线速度。
- 要打开“设备通道配置”对话框,请在工具条中选择设备通道。
- 此示例使用默认总线速度 500000 位/秒。确认当前设备通道配置,然后点击确定。
在同一对话框中,您可以分别为标准 ID 和扩展 ID 配置报文过滤器,以控制哪些报文通过通道。默认情况下,两个过滤器选项都设置为允许所有报文通过,但您也可以指定允许或阻止特定 ID。
2.5 配置信号表
在信号表上添加感兴趣的信号进行查看。在此示例中,您可以查看在 CANExplorerDatabase.dbc
文件中定义的所有信号。
- 要打开“信号表配置”对话框,请在工具条中选择信号 > 配置信号表。
- 使用 → 按钮将可用信号窗格中的信号添加到配置信号窗格中。您可以添加单个信号,通过添加报文来添加报文中的所有信号,或通过添加数据库来添加数据库中的所有信号。对于此示例,在可用信号窗格中选择
CANExplorerDatabase.dbc
,然后点击 → 以添加数据库中所有的信号。 - 点击确定以保存信号表配置并关闭对话框。
如果您提供信号或报文的搜索文本并点击查找,可用信号窗格将会更新,以显示与搜索文本不区分大小写的部分匹配的搜索结果。
2.6 配置信号示波器
在信号示波器上添加感兴趣的信号进行查看。CAN 通信管理器提供 3 个示波器,每个示波器都可以配置为可视化所选信号。示波器的数量是固定的,无法自定义。在此示例中,您可以在顶部信号示波器中查看来自 Message_A
的所有信号,在中间信号示波器中查看来自 Message_B
和 Message_C
的所有信号,在底部信号示波器中查看来自 Message_D
的所有信号。
- 要打开“顶部信号示波器配置”对话框,请在工具条中选择信号 > 配置顶部信号示波器。
- 在可用信号窗格中选择
Message_A
,然后点击 → 将此报文中的所有信号添加到顶部信号示波器中进行查看。 - 点击确定以保存顶部信号示波器配置并关闭对话框。
- 使用类似的方法,将来自
Message_B
和Message_C
的信号添加到中间信号示波器进行查看,并将来自Message_D
的信号添加到底部信号示波器进行查看。
2.7 开始监控
在开始回放之前,在 CAN 通信管理器中开始监控,以避免丢失任何数据。点击工具条中的开始。
2.8 回放预先记录的 CAN 数据
从 CAN 网络中记录的数据在文件 CANExplorerData.mat
中提供。数据以时间表格式保存,时间范围跨度约为 60 秒。
将 CAN 数据回放到 MathWorks Virtual 1 Channel 2,以便 CAN 通信管理器在同一 MATLAB 实例中的 MathWorks Virtual 1 Channel 1 上接收。要开始数据回放,请执行脚本 replayCANData.m
。您还可以多次按顺序执行该脚本,以生成超过 60 秒的 CAN 数据用于额外的试验。
2.9 探查“监控”和“显示”选项
在 CAN 通信管理器继续接收数据的同时,您可以使用工具条的监视器和显示部分中的控件进行试验。
- 点击暂停以暂停 CAN 通信管理器的可视化更新。暂停时,CAN 通信管理器继续在后台累积和处理数据。
- 点击继续以继续 CAN 通信管理器中的可视化更新。
要进一步探查,请执行下列步骤:
- 如果您点击清除数据,所有累积的数据都将从 CAN 通信管理器中完全清除。
- 默认情况下,“报文表”按时间顺序显示所有 CAN 报文。要查看每个唯一报文的最新实例,请切换唯一报文。
- 默认情况下,“报文表”和“信号表”都显示自监控开始以来的时间。要查看自每个表中最后一条报文或信号以来的增量时间,请切换增量时间。
2.10 停止监控
完成实时采集活动后,点击工具条中的停止使设备通道离线。
2.11 对数据回放进行清理
通过执行脚本 replayCANDataCleanup.m
进行清理,这将停止用于回放的 MathWorks Virtual 1 Channel 2 并清除不需要的变量。
2.12 导出数据以用于其他用途
在工具条中,点击导出按钮的上半部分,以时间表格式将接收到的数据导出到 MATLAB 工作区中。
如果您要保留导出的变量以供将来使用:
- 要将变量保存到 MAT 文件,请使用
save
函数。 - 要将变量保存到 BLF 文件,请使用 blfwrite 函数。
导出的报文时间表也可以转换为多个单独的信号数据时间表。canSignalTimetable 函数返回一个结构体,其中的每个字段对应时间表中的一个唯一报文。每个字段值是相应报文中定义的所有信号的时间表。
三、限制
- 由于性能原因,在 App 中保存或显示的报文数量有限制。
- 虽然 App 配置会保存以在同一用户下次打开时使用,但您无法保存或导出 App 配置以与其他用户共享。
- CAN 通信管理器仅支持 CAN 协议。对于 CAN FD 协议数据,请使用 CAN FD 通信管理器。
- 这些 App 不支持 J1939 数据。