3、HIL测试基础:硬件在环(HIL)测试原理、HIL在嵌入式系统验证中的作用、HIL与仿真/实机测试的对比、HIL测试环境组成

在TinyML设备的研发流程中,功耗曲线采集与阈值验收是衡量模型能否在真实硬件上落地运行的关键环节。然而,直接使用最终产品进行功耗验证往往面临周期长、场景不可控、故障复现困难等挑战。硬件在环(Hardware-in-the-Loop,HIL)测试正是为解决这一矛盾而生的方法论。HIL将真实的嵌入式目标板(Device Under Test, DUT)接入一个能够模拟外部物理环境与传感器信号的闭环系统中,使被测设备在“半真实”条件下运行,从而在实验室环境中获得高保真的功耗数据与行为响应。本章将系统阐述HIL测试的基本原理、作用定位、与纯仿真及纯实机测试的差异,以及构建一套HIL测试环境所需的完整组成要素。

HIL测试环境组成与信号闭环架构 实时仿真机 (NI PXI / Speedgoat) 传感器信号模型 (温度/加速度/光强) 负载/功耗场景脚本 (唤醒/推理/通信) 数据采集与日志 (时间戳/事件标记) 信号调理 DAC/ADC 电平转换 隔离保护 可编程负载 电流/电压采样 (INA226/示波器) 被测设备 DUT (TinyML 开发板/产品) MCU + 传感器 (Cortex-M55 / 低功耗) TinyML推理引擎 (TFLM / CMSIS-NN) 无线通信模块 (BLE / LoRa) 模拟信号 激励/传感 DUT响应/功耗反馈 采集数据回传 上位机监控 功耗曲线实时显示 阈值判定与报警 测试报告生成 以太网/PXI触发线 可编程电源 (3.3V/5V 动态供电)

上图展示了HIL测试环境的核心架构。与纯软件仿真不同,HIL系统中存在真实的物理硬件(DUT),但DUT所感知的外部世界(传感器输入、通信对象、负载变化)则由实时仿真机精确生成。这种“虚实结合”的架构,使得功耗测试可以在完全可控、可重复的条件下进行,同时保留了硬件真实电气特性对功耗的影响。

3.1 HIL测试的核心原理:闭环实时仿真

HIL测试的本质是构建一个“实时闭环”。其基本工作流程如下:实时仿真机运行被控对象或环境模型(例如,一个模拟温度传感器输出的电压信号),通过I/O接口(如DAC)将信号输出至信号调理板卡,再接入DUT的传感器引脚。DUT运行TinyML推理程序后,产生控制输出或通信响应,这些响应通过DUT的GPIO、UART或无线接口回传给仿真机。仿真机根据DUT的响应更新模型状态,并生成下一时刻的输入信号,如此循环往复,形成一个时间上严格同步的闭环系统。

在TinyML功耗测试场景中,这个闭环的关键在于“时间同步”与“功耗采样”。仿真机不仅要生成传感器波形,还要在特定时刻触发DUT进入休眠、唤醒、推理、通信等不同功耗状态。同时,高精度电流采样模块(如INA226或示波器电流探头)以1kHz~1MHz的采样率记录DUT的瞬时电流,并将数据与仿真机的事件日志(如“推理开始”、“无线发送”)进行时间戳对齐。这样,测试人员就能获得一条完整的、带有事件标注的功耗曲线,从而精确计算每个工作阶段的平均功耗、峰值功耗和持续时间。

核心要点:HIL的“实时性”是区别于普通离线仿真的关键。仿真机必须在严格的时间约束内(通常为微秒级)完成模型计算、I/O更新和通信处理。如果仿真机无法满足实时性要求,DUT会感知到输入信号的延迟或抖动,导致功耗曲线失真。因此,HIL系统通常采用专用的实时操作系统(如NI Linux Real-Time或Simulink Real-Time)和确定性硬件(如FPGA或专用I/O板卡)。

3.2 HIL在嵌入式系统验证中的作用

HIL测试在嵌入式系统开发流程中扮演着“承上启下”的角色。它位于纯模型在环(MIL)和纯实机测试之间,承担着三重核心作用:

  • 早期硬件验证:在最终产品尚未组装完成时,HIL可以提前验证MCU、传感器驱动、电源管理固件的正确性。例如,在PCB打样之前,使用HIL模拟传感器接口,验证TinyML模型的输入预处理代码是否能够正确解析模拟信号。
  • 极限与故障场景注入:实机测试中难以安全或重复地模拟传感器短路、信号毛刺、电源跌落等异常情况。HIL可以通过编程方式精确注入这些故障,观察DUT的功耗行为是否异常(例如,是否因故障导致电流尖峰或死锁)。
  • 自动化回归测试:在修改固件或调整模型参数后,HIL环境可以自动运行预设的功耗测试用例,快速对比不同版本固件的功耗曲线差异,确保优化没有引入新的功耗回归。

对于TinyML设备而言,HIL还有一个独特价值:它可以在真实硬件上评估不同神经网络模型(如量化后的INT8模型与原始FP32模型)的功耗差异,而无需等待完整的传感器数据采集。通过仿真机生成标准化的传感器输入(如特定频率的振动波形),可以公平地对比不同模型在相同输入下的推理功耗。

3.3 HIL与仿真/实机测试的对比

为了更清晰地理解HIL的定位,下表从多个维度对比了三种测试方法的差异:

对比维度 纯软件仿真(MIL/SIL) 硬件在环(HIL) 纯实机测试
硬件参与度 无真实硬件,MCU指令在PC上模拟 真实MCU/传感器板卡,外部环境由仿真机模拟 完整产品原型,连接真实传感器与网络
环境可控性 完全可控,但无法反映硬件电气特性 高度可控,可精确生成任意波形与故障 受环境限制,难以重复相同条件
功耗数据真实性 基于模型估算,误差较大(>20%) 真实硬件功耗,精度高(误差<5%) 最真实,但难以分离变量
测试速度 极快,可并行运行大量用例 较快,可自动化批量执行 慢,需要人工搭建场景
故障注入能力 容易,但不够真实 容易且真实,可注入电气级故障 困难且危险
成本 低(仅软件许可) 中高(仿真机+板卡+开发板) 高(需要完整产品及测试场地)

从上表可以看出,HIL在“可控性”与“真实性”之间取得了最佳平衡。对于TinyML功耗阈值验收而言,HIL是唯一能够在实验室环境中,以高精度电流采样和可重复的传感器激励,验证设备是否满足“平均功耗<1mW”或“峰值电流<50mA”等硬性指标的测试方法。

3.4 HIL测试环境的组成要素

构建一套完整的TinyML HIL功耗测试环境,需要以下五个核心组成部分。每个部分都有其特定的选型考量与工程实践要点。

3.4.1 实时仿真与I/O系统

这是HIL环境的大脑。常见方案包括NI PXI平台、dSPACE SCALEXIO或基于Speedgoat的Simulink实时系统。对于TinyML测试,仿真机需要具备高速DAC(用于生成模拟传感器信号)、数字I/O(用于模拟PWM或中断触发)以及高速通信接口(如CAN、UART或以太网)。选型时需关注I/O更新速率(至少1kHz)和定时精度(抖动<1μs)。

3.4.2 信号调理与功率接口

仿真机输出的信号往往不能直接连接到DUT。信号调理板卡负责电平转换(如将仿真机的±10V输出转换为DUT的0~3.3V)、阻抗匹配和电气隔离。在功耗测试中,还需要一个高侧电流采样电路或专用的功耗测量模块(如TI INA226、是德科技N6705C),用于采集DUT的供电电流。该模块的采样率应至少为100kS/s,以捕捉MCU唤醒时的瞬态电流尖峰。

3.4.3 被测设备(DUT)与夹具

DUT是TinyML开发板或最终产品的主控板。为了准确测量功耗,需要设计专用的电源测试夹具,将DUT的供电引脚与测量模块串联。夹具应尽量短且使用开尔文四线制连接,以减少导线电阻对低功耗测量的影响。同时,DUT上应预留测试点(TP),便于示波器探头直接测量关键节点电压。

3.4.4 上位机监控与数据采集软件

上位机运行测试管理软件(如NI LabVIEW、Python脚本或自定义C#程序),负责:① 配置测试场景(定义传感器波形参数);② 控制仿真机运行;③ 实时显示功耗曲线;④ 执行阈值判定(如检测到电流超过设定值则报警);⑤ 生成测试报告。软件架构应支持用户自定义阈值规则,例如“在推理阶段,平均电流不得超过5mA,持续时间不得超过50ms”。

3.4.5 可编程电源

用于为DUT和信号调理板卡供电。在TinyML功耗测试中,推荐使用支持动态电压调节和电流回读的电源(如Keithley 2450或Rohde & Schwarz NGM200)。该电源不仅提供能量,还能作为独立的电流测量仪器,与专用采样模块交叉验证数据。

工程经验:在搭建HIL环境时,务必先校准电流测量链路。使用精密电阻(如0.1%精度)作为负载,验证采样模块在1μA~100mA范围内的测量误差。校准记录应作为测试环境的一部分存档,确保后续所有功耗数据的可信度。

3.5 案例拆解:基于HIL的TinyML唤醒词识别功耗验收

以下通过一个实际案例,展示HIL测试在TinyML功耗阈值验收中的完整应用流程。

背景与目标:某智能门锁产品采用Cortex-M4F内核MCU,运行唤醒词识别模型。产品规格书要求:在电池供电模式下,平均待机功耗<10μA,唤醒后完成一次识别(含特征提取+推理)的总能耗<200μJ,且峰值电流不超过50mA。研发团队需要验证固件V2.3版本是否满足该阈值。

HIL环境配置:

  • 仿真机:NI PXIe-8880,运行VeriStand实时引擎。
  • 信号调理:PXI-6733(16位DAC,生成模拟麦克风信号),PXI-6229(数字I/O,模拟按键触发)。
  • 功耗测量:是德科技N6705C直流电源分析仪,采样率200kS/s,电流分辨率100nA。
  • DUT:目标开发板,通过专用夹具连接至N6705C的输出通道。

测试过程:

  1. 场景定义:在VeriStand中创建测试序列:① 仿真机输出静音噪声(20μV RMS)持续10秒;② 输出唤醒词“小智同学”的音频波形(1秒);③ 等待DUT返回识别结果标志位;④ 循环100次。
  2. 执行与采集:N6705C同步记录整个过程的电流曲线。同时,DUT的GPIO引脚在推理开始时拉高,该信号作为数字输入接入仿真机,用于在时间轴上标记“推理开始”和“推理结束”事件。
  3. 数据分析:测试完成后,使用Python脚本处理N6705C导出的CSV数据。脚本根据GPIO事件时间戳,将功耗曲线分割为“待机段”、“唤醒段”、“推理段”和“通信段”。计算各段的平均电流、积分电荷量(mAh)和峰值电流。
  4. 阈值判定:将计算结果与规格书阈值对比。结果显示:平均待机电流为9.2μA(合格),单次识别能耗为185μJ(合格),但峰值电流达到63mA(超标)。

问题定位与复盘:通过分析峰值电流出现的时间点,发现其恰好与DUT的Flash写入操作重叠。进一步检查代码,发现固件在推理完成后立即将日志写入Flash,导致电流尖峰。优化方案是将日志写入延迟至系统进入低功耗模式后,利用电容储能完成写入。修改后重新测试,峰值电流降至41mA,全部指标通过验收。

案例启示:HIL环境的价值不仅在于“测出问题”,更在于通过精确的时间戳对齐和可重复的激励,快速定位问题根源。如果没有HIL,这种偶发的Flash写入电流尖峰很难在实机测试中被稳定捕获。

3.6 常见误区与总结复盘

在实施HIL测试时,工程师常陷入以下误区,需要特别警惕:

误区一:忽视仿真机与DUT之间的“地环路”问题。仿真机、电源和DUT如果接地不当,会形成地环路,引入50Hz工频干扰,严重污染低电流测量结果。解决方案是使用隔离型信号调理模块,并确保DUT供电采用单点接地。

误区二:将HIL等同于“高级仿真”。HIL的精度受限于I/O板卡的位数、采样率和实时性。如果仿真机生成的传感器信号本身带有较大噪声或延迟,DUT的功耗行为会偏离真实场景。因此,在测试前应对仿真机输出进行频谱分析,确保信号质量。

误区三:只关注平均功耗,忽略瞬态功耗。TinyML设备的峰值电流往往出现在Flash写入、无线发射或MCU唤醒瞬间。如果采样率不足(例如仅1kS/s),这些持续几十微秒的尖峰会被完全遗漏,导致阈值验收“假通过”。建议至少使用100kS/s的采样率,并配合硬件触发功能捕获瞬态事件。