vehicle network toolbox™ 提供用来发送、接收、编码和解码 can、can fd、j1939 和 xcp 报文的 matlab® 函数和 simulink® 模块。该工具箱支持您使用行业标准 can 数据库文件识别和解析特定信号,然后使用 can 资源管理器和 can fd 资源管理器可视化解码的信号。使用 a2l 描述文件,可以在 can 或以太网上通过 xcp 连接到 ecu。您可以访问 mdf 文件中存储的报文和测量数据。
该工具箱可以简化与车载网络的通信,并帮助您监视、筛选和分析实时 can 总线数据,或录制报文供以后分析和重播。您可以在虚拟 can 总线上模拟报文流,或连接到实时网络或 ecu。vehicle network toolbox 支持 vector、kvaser、peak-system 和 ni® 的 can 接口设备。
开始:
在 matlab 和 simulink 中发送和接收 can 和 can fd 报文
配置 can 和 can fd 通道
利用 matlab 中的 can 通道函数和 simulink 中的 can 配置模块,您可以定义与 vector can 接口硬件之间的连接,从而使用 can 或 can fd 标准建立与 can 总线的物理连接。vehicle network toolbox 提供了 can 通道函数来查询和配置 can 接口硬件设置,如总线速度和收发机设置。此外,您还可以验证其他 can 通道属性,例如可用的报文数量,以及通道上接收或传输的报文数量。如果将 vector can 数据库文件连接到 can 通道,接收到的报文会自动以存储在数据库中的信息显示。定义 can 通道后,您便可以在通道上发送和接收 can 报文。
发送和接收 can 报文
标准 can 报文中包含多种属性,用来存储 can 报文标识符(标准 11 位或扩展 29 位)、时间戳,以及最多 8 个字节的 can 数据。配置用于 can fd 传输的通道可以承载最多包含 64 字节数据的报文。
借助工具箱中的传输和接收函数和模块,可通过 can 通道发送和接收 can 报文。对于大型数据集,您可以记录 can 报文以供离线分析。
从 can 报文中构建和提取信号
vehicle network toolbox 提供了用于编码和解码 can 报文的函数和模块。can 报文数据可能含有表示多个信号的数据。利用解包函数和模块,您可以指定起始位、信号长度、数据类型以及字节顺序。打包函数和模块提供了相同的选项,可组装数据以用于 can 报文传输。
记录和重播 can 报文
使用工具箱的 can log 模块,您可将模型接收的 can 报文保存到 mat 文件。然后,您可以使用 can replay 模块在另一个 simulink 模型中重播报文。can replay 模块会保留所记录数据的时间戳,因此重播的数据与录制的数据具有相同的定时特征。
使用 xcp 协议通信
vehicle network toolbox 提供一系列函数和模块,可在 can 或以太网总线上通过 xcp 汽车标定协议与 ecu 进行通信。使用 xcp 与 ecu 通信时,matlab 或 simulink 是主设备,ecu 是从设备。要与多个 ecu 通信,您可以打开多个 xcp 通道。对于每个 ecu,您可以在该 ecu 中的特定内存位置读写数据。当可以安全访问 ecu 时,您可以使用种子-密钥安全机制来开放对 ecu 的访问。该工具箱还提供了一些函数和模块,用于链接 a2l 数据库文件,以及创建和查看 xcp 通道的动态 daq 和 stim 测量列表。建立这些列表依据的是所链接 a2l 文件中的测量和事件信息。
使用 j1939 协议通信
vehicle network toolbox 提供一系列函数和模块,可通过 j1939(一种基于 can 的高层级协议,常用于重型卡车行业)进行通信。通过 j1939 进行通信时,您可以使用 matlab 函数或 simulink 模块设置通信。具体来说,您可以使用工具箱提供的函数和模块将数据库 (.dbc) 文件与 j1939 通信关联,以指定 can 接口硬件,以及传输和接收 j1939 参数组。您可以使用与连接关联的数据库文件所定义的参数组,对网络上的信号数据进行编码和解码。另外,您可以适当配置 simulink,使其作为带地址声明的网络节点运行。
可视化 can 和 can fd 流
该工具箱包括 can 资源管理器和 can fd 资源管理器,可用于对特定 can 通道上的活动流进行可视化。您可以在使用 matlab 或 simulink 执行其他任务的同时使用这些 app。对于与 can 通道关联的 can 数据库文件,这些 app 会对报文进行解码,并以正确的工程单位显示报文数据。
如果网络流包含您的应用所不需要的信息,您可以将某个 can 通道限定为只接收特定标识符范围的 can 报文。利用工具箱中的过滤函数和掩码设置,您可以只接收应用所需的报文。
使用 vector can 数据库文件
借助 vehicle network toolbox,您可以在 matlab 或 simulink 中将 vector can 数据库文件关联到 can 通道或报文,从而能够使用特定于应用的报文和信号名称(如 enginemsg 和 enginerpm)以及经过换算的工程单位来编码和解码 can 报文。工具箱支持行业标准数据库文件,从而简化了与 can 总线的交互,因为数据库不仅指定了报文列表和分量信号,还为关联的信号指定了位打包和解包规则。数据库中预定义了报文的信号数据类型、起始位、长度和字节顺序,从而简化了信号分析。
使用 mdf 文件
使用 vehicle network toolbox,您可以轻松地导入和导出测量数据格式 (mdf) 文件。该工具箱支持 3.0 和更高版本的 mdf 标准。在 matlab 中使用 mdf 文件时,您可以查看该文件的基本属性,包括初始时间戳、数据大小、通道组和通道名称信息。您还可以使用 matlab 创建 mdf 文件,或将时间表数据写入现有 mdf 文件。
要读取 mdf 文件的子集,您可以指定通道名称或开始时间和停止时间。默认情况下,结果以时间表格式输出,以便您轻松运用带时间戳的数据。
对于无法装入内存的大型 mdf 文件,您可以创建 mdf 数据存储,并根据您指定的参数分批预览数据。您还可以创建数据存储,以便使用一组相似的 mdf 文件。
使用虚拟通道
您可以使用虚拟 can 和 can fd 通道来测试和仿真网络通信。使用虚拟通道,您可以在环回配置中测试模型,而无需使用物理硬件。vehicle network toolbox 支持两种虚拟通道:mathworks 虚拟通道和第三方 can 接口硬件供应商的虚拟通道。vector 和 kvaser 等第三方供应商的虚拟通道需要安装相应的供应商驱动程序或硬件支持包。mathworks 虚拟通道为本工具箱附带,不需要额外的驱动程序或支持包。
使用 cdfx 文件
利用 vehicle network toolbox 提供的 cdfx
函数访问 asam 标定数据格式 (cdfx) 的数据。使用 cdf 文件中的标定数据作为 simulink 模型的输入。