3. RTI实时接口软件体系

RTI(Real-Time Interface)是 dSPACE 为 MicroAutoBox 提供的实时接口软件层,它把 Simulink 模型中的信号、参数、任务与硬件 I/O 连接起来,使模型能够直接编译为运行在实时处理器上的可执行程序。理解 RTI 的体系结构,是后续完成原型部署、信号观测和参数在线标定的前提。

RTI 的定位与组成

RTI 并不是一个独立运行的软件,而是嵌入在 MATLAB/Simulink 环境中的一组模块库、编译脚本和运行时支撑代码。它主要由三部分构成:RTI 模块库(如 rti1401、rti1006 等,对应不同硬件平台)、RTW 目标配置(Real-Time Workshop 的 dSPACE 目标)、以及运行时接口(负责与 ControlDesk 等工具通信)。在 MicroAutoBox 上,常用的模块库是 rti1401,它提供 DS1401 系列处理板的 I/O 访问能力。

RTI 模块库中的模块与普通 Simulink 模块外观相似,但行为不同:它们不参与仿真计算,而是在代码生成阶段被替换为对硬件寄存器的读写操作。例如,一个 DS1401ADC 模块在仿真时可能输出常量,但在生成代码后,它会变成从 ADC 寄存器读取电压值的函数调用。

RTI 与 MATLAB/Simulink 的集成关系

RTI 与 Simulink 的集成体现在三个层面:建模层、代码生成层和部署层。建模层中,用户在 Simulink 画布上拖入 RTI 模块,像连接普通模块一样连接信号;代码生成层中,RTI 通过 rtwbuild 命令触发,将模型转换为 C 代码,并调用 dSPACE 提供的编译器生成 .ppc 或 .sdf 文件;部署层中,生成的可执行文件通过 RTI 的下载机制传输到 MicroAutoBox 并启动运行。

这一集成关系的关键在于目标配置。在 Simulink 的 Configuration Parameters 中,需要选择 ds1006.tlc 或 rti1401.tlc 作为系统目标文件,并设置 Generate code only 为关闭状态,使 RTI 能够自动完成编译和下载。若目标文件选择错误,生成的代码将无法在 MicroAutoBox 上运行。

RTI 实时接口软件体系与主机-目标通信架构 主机端(Host PC) MATLAB / Simulink 模型 + RTI 模块库 RTW 代码生成 rti1401.tlc 目标 ControlDesk 在线标定/观测 编译器 生成 .ppc / .sdf RTI 接口层 RTI 模块库(rti1401) 运行时接口(RTI Runtime) 通信驱动(TCP/IP, UDP) MicroAutoBox 实时处理器 DS1401 I/O 板卡(ADC/DAC/DIO) 实时内核(RTOS) 模型 数据 下载 回传 版本兼容性管理矩阵(示例) MATLAB 版本 RTI 版本 ControlDesk 版本 兼容状态 R2021b RTI 2021-B ControlDesk 6.3 ✓ 已验证 R2023a RTI 2021-B ControlDesk 6.3 ✗ 不兼容

RTI 库结构与模块分类

打开 Simulink Library Browser,在 dSPACE RTI 库下可以看到按功能分组的模块。以 rti1401 为例,主要分为以下几类:

  • I/O 模块:DS1401ADC(模拟输入)、DS1401DAC(模拟输出)、DS1401DIO(数字输入输出)、DS1401PWM(PWM 输出)等,直接映射到硬件通道。
  • 通信模块:DS1401CAN(CAN 收发)、DS1401SER(串口)、DS1401UDP(以太网 UDP)等,用于与外部 ECU 或上位机交换数据。
  • 中断与任务模块:DS1401INT 用于配置中断源和采样周期,决定模型的执行时序。
  • 标定与观测模块:DS1401PARAM 用于定义可在线修改的参数,DS1401SIGNAL 用于标记需要观测的信号。

每个模块都有对应的参数对话框,例如 DS1401ADC 需要设置通道号、电压范围(如 ±10V 或 0–5V)、采样时间。这些参数在代码生成时被写入硬件配置结构体,运行时由 RTI 运行时库解析并初始化寄存器。

实时目标与主机通信机制

MicroAutoBox 与主机之间的通信通过以太网实现,底层使用 dSPACE 的 RTI 通信协议。主机端的 ControlDesk 或 RTI 下载工具通过 TCP/IP 连接到目标板的 IP 地址(默认 192.168.0.1),端口通常为 1234(下载)和 1235(标定/观测)。

通信过程分为三个阶段:下载阶段,主机将编译生成的 .sdf 文件通过 TCP 传输到目标板,目标板将其写入 Flash 或 RAM;启动阶段,目标板加载可执行代码,初始化 RTI 运行时环境,并等待主机发送启动命令;运行阶段,主机通过 UDP 或共享内存机制周期性地读取目标板上的变量值,同时可以写入新的参数值。ControlDesk 中的仪表盘和示波器就是通过这一机制实时刷新数据的。

在实际部署中,建议将主机与 MicroAutoBox 置于同一网段,并关闭主机的防火墙或为 RTI 通信端口添加例外规则。若连接失败,可先在命令行执行 ping 192.168.0.1 确认物理链路,再检查 ControlDesk 中的目标配置是否指向正确的 IP 和端口。

版本兼容性管理

RTI 的版本必须与 MATLAB/Simulink 版本、ControlDesk 版本以及 MicroAutoBox 的固件版本保持兼容。dSPACE 通常以“MATLAB 版本 + RTI 版本”的组合发布兼容性列表。例如,RTI 2021-B 官方支持 MATLAB R2020b 至 R2021b,若强行在 R2023a 上使用,可能在代码生成阶段报错,提示 rtwbuild 无法找到目标文件,或生成的代码在目标板上运行异常。

管理版本兼容性的实用做法是:在项目启动前,先查阅 dSPACE 官方发布的 Release Notes 和 Compatibility Matrix,确认三者的版本组合;在 Simulink 中执行 ver 命令查看已安装的 RTI 版本;在 ControlDesk 中通过 Help → About 查看版本号。若版本不匹配,优先升级 RTI 或降级 MATLAB,而不是尝试修改目标配置文件。

检查项 查看方式 兼容要求
MATLAB 版本 命令行输入 ver 在 RTI 支持列表内
RTI 版本 Simulink 库中查看 rti1401 属性 与 MATLAB 匹配
ControlDesk 版本 Help → About 与 RTI 通信协议一致
目标板固件 ControlDesk 连接后查看 不低于 RTI 要求的最低版本

完成上述配置后,一个典型的 RTI 部署流程是:在 Simulink 中搭建模型并插入 RTI 模块 → 设置 Configuration Parameters 中的目标文件为 rti1401.tlc → 点击 Build Model 生成代码并自动下载 → 在 ControlDesk 中建立变量映射并启动实时运行。若每一步都按兼容性要求执行,MicroAutoBox 即可稳定运行模型,并支持在线调参与信号观测。