Vehicle Network Toolbox

使用 CAN、J1939 和 XCP 协议与车载网络通信

 

Vehicle Network Toolbox™ 提供用来发送、接收、编码和解码 CAN、CAN FD、J1939 和 XCP 报文的 MATLAB® 函数和 Simulink® 模块。该工具箱支持您使用行业标准 CAN 数据库文件识别和解析特定信号,然后使用 CAN Bus Monitor 可视化解码的信号。使用 A2L 描述文件,可以在 CAN 或以太网上通过 XCP 连接到 ECU。您可以访问 MDF 文件中存储的报文和测量数据。

该工具箱可以简化与车载网络的通信,并帮助您监视、筛选和分析实时 CAN 总线数据,或录制报文供以后分析和重播。您可以在虚拟 CAN 总线上模拟报文流,或连接到实时网络或 ECU。Vehicle Network Toolbox 支持 Vector、Kvaser、PEAK-System 和 National Instruments® 的 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 FD 协议将 MATLAB 连接到车载网络。

发送和接收 CAN 数据包

标准 CAN 报文中包含多种属性,用来存储 CAN 报文标识符(标准 11 位或扩展 29 位)、时间戳,以及最多 8 个字节的 CAN 数据。配置用于 CAN FD 传输的通道可以承载最多包含 64 字节数据的报文。

借助工具箱中的传输和接收函数和模块,用户可通过 CAN 通道发送和接收 CAN 报文。对于大型数据集,您可以记录 CAN 报文以供离线分析。

MATLAB 代码,以时间表格式接收 CAN 报文及其信号。

从 CAN 报文中构建和提取信号

Vehicle Network Toolbox 提供了用于编码和解码 CAN 报文的函数和模块。CAN 报文数据可能含有表示多个信号的数据。利用解包函数和模块,用户可以指明起始位、信号长度、数据类型以及字节顺序。打包函数和模块提供了相同的选项,可构建数据以用于 CAN 报文传输。

Simulink 模型,使用 CAN Unpack 模块来解码 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 文件中的测量和事件信息。

用于从 ECU 从设备采集测量数据的模型。该模型使用 XCP Configuration 和 XCP Transport Layer 模块(左上)以及 XCP Data Acquisition 模块(左下)设置 PWM 信号采集(右)。

使用 J1939 协议通信

Vehicle Network Toolbox 提供一系列函数和模块,可通过 J1939(一种基于 CAN 的高层级协议,常用于重型卡车行业)进行通信。通过 J1939 进行通信时,您可以使用 MATLAB 函数或 Simulink 模块设置通信。具体来说,您可以使用工具箱提供的函数和模块将数据库 (.dbc) 文件与 J1939 通信关联,以指定 CAN 接口硬件,以及传输和接收 J1939 参数组。您可以使用与连接关联的数据库文件所定义的参数组,对网络上的信号数据进行编码和解码。另外,您可以适当配置 Simulink,使其作为带地址声明的网络节点运行。

使用 J1939 Transmit 和 J1939 Receive 模块收发 J1939 数据的模型。该模型还使用 J1939 Network Configuration、J1939 CAN Transport Layer Configuration 和 J1939 Node Configuration 模块来设置通信。

可视化 CAN 流

该工具箱提供了 Vehicle Network CAN Bus Monitor,可用于对特定 CAN 通道上的活动流进行可视化。您可以在使用 MATLAB 或 Simulink 执行其他任务的同时使用该 App。对于与 CAN 通道关联的 CAN 数据库文件,该 App 对报文进行解码,并以正确的工程单位显示报文数据。

如果网络流包含您的应用所不需要的信息,您可以将某个 CAN 通道限定为只接收特定标识符范围的 CAN 报文。利用工具箱中的过滤函数和掩码设置,您可以只接收应用所需的报文

Vehicle CAN Bus Monitor显示的网络实时 CAN 总线流。此处显示原始数据;可适当配置,以在 CAN 通道与 .dbc 数据库文件关联时显示解码的数据。

使用 Vector CAN 数据库文件

借助 Vehicle Network Toolbox,您可以在 MATLAB 或 Simulink 中将 Vector CAN 数据库文件关联到 CAN 通道或报文,从而能够使用特定于应用的报文和信号名称(如 EngineMsg 和 EngineRPM)以及经过换算的工程单位来编码和解码 CAN 报文。工具箱支持行业标准数据库文件,从而简化了与 CAN 总线的交互,因为数据库不仅指定了报文列表和分量信号,还为关联的信号指定了位打包和解包规则。数据库中,报文的信号数据类型、起始位、长度和字节顺序都是预定义的,因此您可以集中精力分析信号,而无需耗费时间另行定义。

代码示例:显示如何使用 CAN 数据库文件中存储的信息查看报文。

使用 A2L 描述文件

Vehicle Network Toolbox 支持您在 MATLAB 或 Simulink 中使用行业标准 A2L(亦称 ASAP2)描述文件通过 XCP 协议与 ECU 通信。使用 A2L 描述文件,您能够从 MATLAB 程序或 Simulink 模型访问内部 ECU 参数。A2L 描述文件包含有关特定参数关联内存地址、存储结构以及数据类型的信息。该文件还包含将存储值(如系统参数、传感器特性和校正因子)转换为物理单位(如 RPM 和摄氏度)的规则。有了这些数据,您可以轻松执行标定和测量任务,而无需解析数据和解码内存地址。

代码示例,显示如何访问 A2L 文件中存储的信息以用于 XCP 连接。其中使用 Vector 免费提供的 XCP 从站仿真器,以及 Vector Virtual CAN 通道。

使用 MDF 文件

使用 Vehicle Network Toolbox,您可以轻松从测量数据格式 (MDF) 文件导入数据。该工具箱支持 3.0 和更高版本的 MDF 标准。在 MATLAB 中创建 MDF 对象时,您可以查看关于该文件的基本属性,包括初始时间戳、数据大小、通道组和通道名称信息。要读取 MDF 文件的子集,您可以指定通道名称或开始时间和停止时间。默认情况下,结果以时间表格式输出,以便您轻松运用带时间戳的数据。

对于无法装入内存的大型 MDF 文件,您可以创建 MDF 数据存储,并根据您指定的参数分批预览数据。您还可以创建数据存储,以便使用一组相似的 MDF 文件。

代码示例,显示如何在命令行界面预览 MDF 文件,然后在变量编辑器中检查数据。

使用虚拟通道

您可以使用虚拟 CAN 和 CAN FD 通道来测试和仿真网络通信。使用虚拟通道,您可以在环回配置中测试模型,而无需使用物理硬件。Vehicle Network Toolbox 支持两种虚拟通道:MathWorks 虚拟通道和第三方 CAN 接口硬件供应商的虚拟通道。Vector 和 Kvaser 等第三方供应商的虚拟通道需要安装相应的供应商驱动程序或硬件支持包。MathWorks 虚拟通道为本工具箱附带,不需要额外的驱动程序或支持包。

Simulink 模型,使用 MathWorks 虚拟通道收发 CAN 数据,无需任何硬件。

使用 CDFX 文件

利用 Vehicle Network Toolbox 提供的 cdfx 函数访问 ASAM 标定数据格式 (CDFX) 的数据。使用 CDF 文件中的标定数据作为 Simulink 模型的输入。

Simulink 模型,使用 MathWorks 虚拟通道收发 CAN 数据,无需任何硬件。

最新特性

MDF

在 Linux 平台上访问 MDF 文件

Simulink 中基于事件的传输

仅在检测到报文数据更改时才传输 CAN 报文

关于这些特性和相应函数的详细信息,请参阅发行说明