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 库结构与模块分类
打开 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 中的仪表盘和示波器就是通过这一机制实时刷新数据的。
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 即可稳定运行模型,并支持在线调参与信号观测。