2. dSPACE HIL系统构成与量产验收接口
dSPACE HIL 系统在量产验收场景中并不是一台孤立的实时仿真机,而是一条从“模型计算”到“ECU 引脚”的完整信号链。理解这条链路上每个环节的职责与接口边界,是后续配置、排障和验收判定的基础。本节围绕实时仿真机、I/O 板卡、故障注入单元、被测 ECU 接口以及总线仿真与残余总线仿真五个部分,说明它们在工程配置中的关键要点。
实时仿真机:模型与硬件的交汇点
实时仿真机(如 SCALEXIO 或基于 DS1006/DS6001 处理器的机箱)承担两件事:以固定步长求解被控对象模型,以及通过内部高速总线与 I/O 板卡交换数据。量产验收对实时性的要求通常比研发阶段更严格,因为验收用例往往包含大量边界工况和故障注入组合,模型负载更高。
工程配置中需要明确三个参数:仿真步长、模型分区和任务优先级。以某 48V 混动控制器验收为例,电机模型与电池模型若放在同一核上,步长 100 μs 时单核负载可能超过 80%;此时应将电池模型拆分到第二核,通过共享内存交换母线电压与电流,使每核负载降到 55% 以下。判断依据是 dSPACE ConfigurationDesk 中的实时负载统计:若某核执行时间接近步长,即使平均负载不高,也会因抖动导致 I/O 采样时刻漂移,进而使验收结果不可复现。
I/O 板卡:信号类型与电气匹配
I/O 板卡是模型变量与 ECU 引脚之间的物理层。选型时先按信号类型分类:模拟输入(DS2002/DS2004)、模拟输出(DS2102/DS2103)、数字输入输出(DS4002/DS4003)、PWM 与频率量(DS5202)、以及 CAN/LIN/FlexRay 通信板卡(DS4302/DS4340 等)。
量产验收中常见的配置错误是量程与增益不匹配。例如 ECU 的氧传感器输出为 0~5 V,若 I/O 板卡配置为 ±10 V 量程,则 12 位分辨率下每 LSB 对应约 4.9 mV,而实际有效信号只占量程的一半,量化误差被放大。正确做法是将板卡量程设为 0~5 V,使每 LSB 降到约 1.2 mV。另一个要点是参考地与屏蔽:模拟输出与 ECU 传感器地之间若存在共模电压,应在配置中启用差分输出或加装隔离模块,否则验收时会出现随工况漂移的偏置。
故障注入单元:从“断开”到“精确劣化”
故障注入单元(FIU)是量产验收区别于普通功能测试的核心部件。它通常以继电器矩阵或半导体开关阵列的形式串接在 I/O 板卡与 ECU 之间,实现开路、对地短路、对电源短路以及通道间短路。
工程配置的关键在于故障路径的拓扑定义。以节气门位置传感器为例,需要同时支持信号线开路、信号线对 5 V 短路、信号线对地短路三种故障。若 FIU 只提供单刀单掷继电器,则“对地短路”需要额外一路接地继电器,且必须保证故障注入期间 ECU 端仍能检测到合理的线束阻抗。配置时应记录每个故障通道的默认状态(常闭或常开),并确保上电初始化阶段所有故障继电器处于“无故障”位置,否则 ECU 会在验收开始前就进入降级模式。
被测 ECU 接口:线束与信号定义
ECU 接口部分最容易在验收阶段暴露问题,因为量产 ECU 的引脚定义往往与研发样件不同。工程上需要一份信号映射表,把模型变量、I/O 板卡通道、FIU 通道和 ECU 引脚一一对应。表中至少应包含:信号名称、方向、电气类型、量程、对应板卡通道号、FIU 通道号、ECU 连接器针脚号。
实际配置时,建议先用万用表在断电状态下核对 ECU 各引脚与 HIL 线束的连通性,再上电检查静态电平。例如某 ECU 的 KL15 使能脚在 HIL 侧应由数字输出驱动,若误接到模拟输出,则上电后 ECU 可能因使能电压不足而无法唤醒。这类问题在验收报告中应记录为“接口配置缺陷”,而不是 ECU 故障。
总线仿真与残余总线仿真
总线仿真指 HIL 系统模拟整车网络中的其他节点,向被测 ECU 发送 CAN/LIN 报文;残余总线仿真则是在真实总线拓扑中,HIL 只替代部分节点,其余节点为真实 ECU 或负载。两者的配置差异主要体现在终端电阻和报文调度上。
残余总线仿真时,HIL 接入点通常位于总线末端,需要正确配置 120 Ω 终端电阻。若 HIL 侧未启用终端电阻,而真实网络两端已有终端,则总线负载阻抗偏低,报文波形幅度下降,验收时表现为偶发 CRC 错误。配置工具中应明确每个 CAN 通道的终端电阻使能状态,并在验收前用示波器观察 CAN_H/CAN_L 差分波形,确认显性电平约 2 V、隐性电平约 0 V。
报文调度方面,量产验收用例常要求按特定周期发送报文,并支持报文丢失、延迟、数据篡改等故障。dSPACE 的 CAN 配置工具允许为每条报文设置发送周期和抖动范围。例如某验收用例要求发动机转速报文以 10 ms 周期发送,抖动不超过 ±1 ms,则应在配置中把周期设为 10 ms、抖动设为 1 ms,并在验收脚本中记录实际发送时间戳,用于判断是否满足时序要求。