4. dSPACE HIL系统软件栈

dSPACE HIL系统的软件栈不是单一工具,而是一条从“硬件描述”到“实时运行”再到“自动化验证”的完整工具链。理解每个工具的定位与协同关系,是搭建可复用、可维护HIL工程的前提。本节围绕ConfigurationDesk、ControlDesk、AutomationDesk、MotionDesk四个核心工具,说明它们在工程配置流程中的角色、输入输出以及相互依赖关系。

一、工具定位:各司其职的四层分工

ConfigurationDesk是硬件配置与实时模型集成的入口。它负责描述SCALEXIO或MicroAutoBox等实时硬件的I/O通道、板卡类型、信号方向与电气属性,并将Simulink模型、FMU或C代码集成到实时工程中,最终生成可下载到实时处理器的应用。可以把它理解为“把被控对象模型和真实I/O绑定在一起”的配置层。

ControlDesk是实验与测量层。它面向测试工程师,提供虚拟仪表盘、信号记录、参数在线标定、故障注入和总线监控等功能。ControlDesk不修改实时工程本身,而是通过变量描述文件访问实时应用中的信号与参数,因此它的前提是ConfigurationDesk已经生成了正确的变量描述和实时应用。

AutomationDesk是自动化测试层。它用图形化测试序列或Python脚本描述测试用例,调用ControlDesk的接口读写变量、触发故障、采集数据并自动判定结果。AutomationDesk的价值在于把重复的手动操作固化为可回归的测试资产,适合ECU功能测试、诊断测试和回归测试。

MotionDesk是三维场景与传感器仿真层。它通过实时接口接收车辆位置、姿态等状态,渲染出虚拟交通场景,并可模拟摄像头、雷达、激光雷达等传感器的原始数据。MotionDesk通常与ConfigurationDesk中的车辆动力学模型配合,用于ADAS或自动驾驶相关HIL测试。

dSPACE HIL 软件栈协同关系与工程配置流程 ① ConfigurationDesk — 硬件配置与实时模型集成 I/O通道与板卡配置 SCALEXIO / MicroAutoBox Simulink / FMU 模型集成 被控对象 + 传感器模型 变量描述文件生成 .sdf / .a2l 等 实时应用下载 RTOS 可执行文件 变量描述 + 实时应用 ② ControlDesk — 实验、测量与在线标定 虚拟仪表盘 信号显示 / 参数标定 数据记录与回放 Measurement / Recorder 故障注入与总线监控 CAN / LIN / FlexRay 手动测试执行 实时交互 变量访问接口 ③ AutomationDesk — 自动化测试与回归验证 图形化测试序列 Test Sequence Python 脚本扩展 自定义判定逻辑 测试报告生成 Pass / Fail 判定 回归测试 夜间批量执行 ④ MotionDesk — 三维场景与传感器仿真 接收车辆位姿 → 渲染交通场景 → 输出摄像头/雷达/激光雷达原始数据 → 回注实时模型 传感器数据回注

二、协同关系:数据流与控制流

四个工具之间存在明确的数据依赖。ConfigurationDesk生成的变量描述文件是ControlDesk和AutomationDesk访问实时信号的“字典”;没有它,ControlDesk无法识别实时应用中的变量名、地址和数据类型。ControlDesk在运行阶段提供变量访问通道,AutomationDesk则通过该通道实现自动化读写。MotionDesk通过实时接口与ConfigurationDesk中的车辆模型交换位姿和传感器数据,形成闭环。

从工程配置顺序看,典型流程是:先在ConfigurationDesk中完成硬件与模型配置并下载实时应用;再用ControlDesk建立实验工程,导入变量描述文件,搭建仪表盘并验证信号连通性;随后在AutomationDesk中编写测试序列,调用ControlDesk接口完成自动化测试;若涉及ADAS场景,则在MotionDesk中配置场景并与实时模型联调。

三、工程配置流程中的关键操作

以SCALEXIO实时系统为例,ConfigurationDesk中的关键操作包括:新建工程并选择硬件平台;在硬件配置视图中添加I/O板卡(如DS2655、DS2680等),设置通道方向、电压范围、采样率;在模型集成视图中导入Simulink模型,将模型端口与硬件通道绑定;配置实时任务周期,通常底盘HIL测试中常用1ms或0.5ms步长;最后生成实时应用并下载。

ControlDesk中的关键操作包括:新建实验工程,导入ConfigurationDesk生成的变量描述文件;在Layout编辑器中放置仪表、示波器、按钮和滑块,将控件绑定到具体变量;配置Measurement Recorder记录关键信号;使用Bus Navigator监控CAN或FlexRay报文。一个实用的做法是先在ControlDesk中手动验证所有关键信号的可读可写,再进入自动化阶段。

AutomationDesk中的关键操作包括:新建测试工程,导入变量描述;用Test Sequence编辑器搭建“初始化—激励—采集—判定—复位”的测试步骤;在判定步骤中设置期望值与容差;调用ControlDesk的Measurement接口保存数据;最后生成HTML或PDF测试报告。对于复杂逻辑,可用Python脚本扩展,例如解析DBC文件、动态生成测试用例或计算统计指标。

四、配置样例:底盘ESC HIL测试的变量绑定

以下示例展示ConfigurationDesk中一个轮速传感器信号的通道绑定配置片段,以及ControlDesk中对应的变量访问方式。参数为教学示例,实际工程需根据硬件手册和模型接口调整。

# ConfigurationDesk 通道绑定示例(示意)
Hardware: SCALEXIO DS2655
Channel:  WheelSpeed_FL
Direction: Input
VoltageRange: 0..5 V
SampleTime: 1 ms
ModelPort:  vehicle/wheel_speed/fl_raw
Scaling:  0..5 V  ->  0..150 km/h
VariableName: WheelSpeed_FL_kmh

# ControlDesk 变量访问示例(示意)
Read:  WheelSpeed_FL_kmh
Write: BrakePressure_FL_bar
Record: WheelSpeed_FL_kmh, BrakePressure_FL_bar, VehicleSpeed_kmh

完成绑定后,在ControlDesk中观察WheelSpeed_FL_kmh是否随信号发生器变化;若数值始终为0或满量程,应检查通道方向、电压范围与模型端口映射是否一致。确认无误后,再在AutomationDesk中编写“轮速阶跃—制动压力响应—滑移率判定”的测试序列。

建议在ConfigurationDesk中为每个信号建立清晰的命名规范,例如“信号名_单位_方向”,这样在ControlDesk和AutomationDesk中检索变量时能显著减少误绑定。

五、常见协同问题与排查思路

若ControlDesk中看不到变量,首先确认变量描述文件是否与当前下载的实时应用版本一致;若变量可读但数值异常,检查ConfigurationDesk中的缩放系数和通道方向;若AutomationDesk执行超时,检查ControlDesk实验是否处于运行状态以及变量访问权限;若MotionDesk场景无响应,检查实时接口的IP配置和端口映射。这些问题大多源于工具链之间的版本或接口不一致,而非单个工具本身故障。