4. ConfigurationDesk工程创建与硬件拓扑配置
ConfigurationDesk 是 dSPACE 实时仿真工程的核心配置工具,它承担着从"硬件描述"到"可运行模型"之间的桥梁作用。一个 SCALEXIO 实时仿真系统能否正常启动、I/O 通道能否被模型正确访问,几乎完全取决于 ConfigurationDesk 工程中的硬件拓扑配置是否准确。本节将围绕"新建工程 → 添加设备 → 配置板卡与通道 → 设置节点与网络"这条主线,完成一个最小可运行工程的搭建,并说明每一步背后的工程含义。
一、理解 ConfigurationDesk 工程的组织结构
在动手操作之前,先要建立对工程结构的整体认知。ConfigurationDesk 工程采用"工程(Project)— 设备(Device)— 板卡(Board)— 通道(Channel)"四级层次组织硬件资源,同时通过"节点(Node)"和"网络(Network)"描述软件侧的模型部署与通信关系。硬件拓扑描述的是"物理上有什么、插在哪里、通道编号是多少",而节点与网络描述的是"模型跑在哪个核上、通过什么总线交换数据"。两者必须严格对应,否则会出现通道映射失败或实时任务无法调度的问题。
二、新建工程与添加设备
启动 ConfigurationDesk 后,选择 File → New Project,指定工程名称与存储路径。建议工程名使用英文与下划线组合,例如 MinimalRT_Project,避免中文路径导致后续编译工具链报错。新建完成后,工程树中只有一个空的 Project 节点。
接下来添加设备。右键工程节点选择 Add Device,在设备库中选择 SCALEXIO DS6001。DS6001 是 SCALEXIO 系统的实时处理器单元,内部包含处理器板卡和 I/O 扩展底板。添加后,ConfigurationDesk 会自动识别该设备可用的插槽与板卡类型。此时需要确认设备属性中的 IP 地址与主机网卡处于同一网段,例如主机设为 192.168.1.10,DS6001 设为 192.168.1.20,子网掩码 255.255.255.0。这一步是后续下载工程的前提,若网段不一致,Real-Time 连接会直接失败。
三、配置板卡与通道
在 DS6001 设备下添加 DS2655 FPGA Base Board。DS2655 是一款常用的 FPGA 基础板,支持模拟输入、模拟输出、数字 I/O 等多种通道组。添加板卡后,需要为其分配插槽(Slot)。在最小工程中,我们将其插入 Slot1。
板卡添加完成后,展开板卡节点可以看到默认的 Channel Group。以模拟输入为例,DS2655 的 AI 通道组默认包含 8 个通道(Ch0~Ch7),每个通道可独立配置电压范围、分辨率与采样率。在最小工程中,我们做如下配置:
- AI.Ch0:电压范围 ±10 V,16 bit 分辨率,采样率 10 kHz,用于采集电机电流信号;
- AI.Ch1:电压范围 ±10 V,16 bit 分辨率,采样率 10 kHz,用于采集转速信号;
- AO.Ch0:电压范围 ±10 V,16 bit 分辨率,更新率 10 kHz,用于输出 PWM 占空比指令;
- AO.Ch1:电压范围 ±10 V,16 bit 分辨率,更新率 10 kHz,用于输出转矩指令。
这里需要特别注意采样率与模型步长的关系。模型步长设为 1 ms,对应 1 kHz 的基频。若 I/O 采样率设为 10 kHz,则每个模型步长内会采集 10 个点。在最小工程中,为了简化处理,通常将 I/O 采样率与模型步长保持一致,即都设为 1 kHz,避免引入额外的降采样或滤波逻辑。因此实际配置中,建议将上述通道的采样率统一改为 1 kHz,与模型步长对齐。
四、设置节点与网络
硬件拓扑配置完成后,进入软件映射阶段。在 ConfigurationDesk 中,节点(Node)代表一个可独立运行的实时任务,网络(Network)代表节点之间的数据交换通道。对于 DS6001 这类多核处理器,通常将模型计算与 I/O 处理分配到不同核心上,以提高实时性。
在最小工程中,我们创建两个节点:
- RT_Model:绑定到 Core0,运行 Simulink 生成的模型代码,步长 1 ms;
- IO_Handler:绑定到 Core1,负责 I/O 通道的采集与输出刷新。
两个节点之间通过共享内存网络 RT_IO_Net 交换数据。在 ConfigurationDesk 中,需要为每个节点分配输入输出端口,并将这些端口与硬件通道建立映射关系。例如,将 RT_Model 的输入端口 u_motor_current 映射到 AI.Ch0,将输出端口 y_pwm_duty 映射到 AO.Ch0。映射完成后,ConfigurationDesk 会生成对应的硬件抽象层代码,模型通过该层访问实际通道。
五、最小可运行工程的验证
完成上述配置后,点击 Build 按钮生成实时工程。构建过程会依次执行:硬件描述解析 → 通道映射检查 → 代码生成 → 编译链接。若配置有误,构建日志会明确指出问题所在,例如"Channel AI.Ch0 not mapped"或"Node RT_Model has no core assigned"。
构建成功后,通过 Real-Time → Connect 连接 DS6001,然后点击 Download 将工程下载到实时硬件。下载完成后,在 ControlDesk 中观察模型输出信号。若 AO.Ch0 能够输出预期的 PWM 占空比波形,且 AI.Ch0 采集到的电流信号与信号源一致,则说明最小可运行工程搭建成功。