Main Content

CAN FD Transmit

将 CAN FD 报文传输到所选 CAN FD 设备

  • CAN FD Transmit block

库:
Vehicle Network Toolbox / CAN FD Communication

描述

CAN FD Transmit 模块使用指定的 CAN 设备将报文传输到 CAN 网络。CAN FD Transmit 模块可以在给定时间步内传输单个报文或报文数组。要从信号总线传输报文数组,请使用 Bus Creator (Simulink)Vector Concatenate, Matrix Concatenate (Simulink) 模块。

注意

您需要 Vehicle Network Toolbox™ 和 Simulink® 软件的许可证才能使用此模块。

CAN FD Transmit 模块有一个输入端口。此端口接受使用 CAN FD Pack 模块打包的 CAN 报文。它没有输出端口。

CAN 是 P2P 网络,因此在物理总线上发送报文时,必须至少存在一个其他节点,才能正确地确认报文。如果没有其他节点,传输会被视为错误帧而失败,随后设备将不断重试传输。

其他支持的功能

CAN FD Transmit 模块支持使用 Simulink 加速模式。使用此功能,可以加快 Simulink 模型的执行速度。有关详细信息,请参阅加速 (Simulink)

CAN FD Transmit 模块支持使用代码生成和 packNGo 函数将所需的源代码和依赖共享库打包。

代码生成

Vehicle Network Toolbox 提供的 Simulink 模块支持您生成代码,使包含这些模块的模型可在加速、快速加速、外部和已部署模式下运行。

使用 Simulink Coder 进行代码生成

您可以将 Vehicle Network Toolbox、Simulink Coder™ 和 Embedded Coder® 软件结合使用,以在您用来实现模型的主机端生成代码。有关代码生成的详细信息,请参阅生成代码编译 (Simulink Coder)

共享库依存关系

这些模块生成的代码可移植性有限。它使用预编译的共享库(如 DLL)来支持特定类型设备的 I/O。使用此模块,您可以使用 Simulink Coder 支持的 packNGo 函数来设置和管理模型的编译信息。packNGo (Simulink Coder) 函数允许您将模型代码和依赖共享库打包到一个 zip 文件中进行部署。您不需要在目标系统上安装 MATLAB®,但需要 MATLAB 支持目标系统。

要设置 packNGo,请执行以下代码:

set_param(gcs,'PostCodeGenCommand','packNGo(buildInfo)');

在此示例中,gcs 是您要编译的当前模型。编译模型会创建一个与模型同名的 zip 文件。您可以将此 zip 文件移至另一台机器,并在该机器中编译 zip 文件中的源代码以创建可独立于 MATLAB 和 Simulink 运行的可执行文件。生成的代码使用 C 和 C++ 编译器进行编译。有关详细信息,请参阅代码编译自定义 (Simulink Coder)

注意

在 Linux® 平台上,您需要将用于解压缩库的文件夹添加到环境变量 LD_LIBRARY_PATH

端口

输入

全部展开

要传输的 CAN FD 报文,由 CAN FD Pack 模块打包,以 CAN_FD_MESSAGE_BUS 类型的 Simulink 信号总线形式输入。

数据类型: CAN_FD_MESSAGE_BUS

参数

全部展开

提示

在配置 CAN FD Transmit 模块参数之前,请先配置模型中的 CAN FD Configuration 模块。

选择用于将 CAN FD 报文传输到网络的 CAN 设备和通道。此列表显示系统上安装的所有设备。它显示供应商名称、设备名称和通道 ID。默认值为系统上第一个可用的设备。

注意:使用 PEAK-System 设备时,多个使能子系统中的 CAN FD Transmit 模块可能会跳过某些报文。请尽可能将使能子系统替换为不同类型的条件子系统,例如 if-action、switch-case-action 或触发子系统;或重新设计您的模型,以便所有 CAN FD Transmit 模块都包含在一个使能子系统中。

编程用法

模块参数:Device
类型:字符向量、字符串

以下参数定义传输选项。

当启用基于事件的传输时,仅在检测到报文数据变化的那些时间步传输报文。当输入数据与给定报文 ID 的最近传输相匹配时,不会重新传输报文。

事件传输和周期性传输可以同时启用,共同工作。如果两者都没有选择,默认行为是在每个时间步传输当前输入。

编程用法

模块参数:EnableEventTransmit
类型:字符向量、字符串
值:'off' | 'on'
默认值:'off'

选择此选项可在配置的通道上以指定的报文周期定期传输报文。无论 Simulink 模型时间步大小(基础采样时间)或模块执行采样时间如何,周期均基于真实时间。这相当于 MATLAB 函数 transmitPeriodic 的功能。

周期性传输是非缓冲操作。在每个时间周期内,只有 CAN FD Transmit 模块输入中的最后一条 CAN 报文或最后一组报文会被发送。

编程用法

模块参数:EnablePerioicTransmit
类型:字符向量、字符串
值:'off' | 'on'
默认值:'off'

指定以秒为单位的周期。此值用于以指定的周期传输报文。默认情况下,此值为 1.000 秒。

编程用法

模块参数:MessagePeriod
类型:字符向量、字符串
值:双精度值
默认值:'1.000'

扩展功能

版本历史记录

在 R2018a 中推出