加载中...


硬件在环(HIL)测试是验证控制系统设计的关键手段,但很多团队在搭建测试环境时往往无从下手——采购的板卡不知道如何配置,Simulink模型部署频频报错,实时性达不到毫秒级要求。更让人头疼的是,一套进口HIL系统的授权费用动辄百万,而国产方案虽然价格友好,却缺乏系统性的搭建指南。今天凯云咨询为大家分享一套完整的HIL测试环境搭建流程,覆盖硬件选型、平台部署、模型部署、接口配置和系统调试全环节,帮助研发团队快速构建稳定可靠的半实物仿真测试平台。
硬件在环测试的本质是将真实的控制器与虚拟的被控对象连接,在实时仿真环境中验证控制算法的正确性。与纯软件仿真相比,HIL测试能够暴露真实硬件的电气特性、通讯协议和时序问题;与实物测试相比,HIL测试成本更低、安全性更高,且便于边界条件和故障注入测试。
一个完整的HIL测试系统通常包含四个核心部分:实时仿真机、接口板卡、被测控制器和试验管理软件。实时仿真机负责运行被控对象的数学模型,要求具备确定性的实时性能;接口板卡负责物理信号与数字信号之间的转换,包括模拟量、数字量、通讯总线等类型;被测控制器(DUT)是被测试的真实硬件;试验管理软件则负责测试用例管理、数据采集和自动化执行。

在HIL测试中,常用的接口板卡类型包括1553B总线板卡、CAN总线板卡、ARINC429总线板卡、模拟量输入输出板卡、数字量输入输出板卡等。每种板卡对应不同的通讯协议和应用场景:
| 板卡类型 | 通讯协议 | 典型应用场景 | 实时性要求 |
|---|---|---|---|
| 1553B总线板卡 | MIL-STD-1553B | 航电系统、飞控系统 | ≤1ms周期 |
| CAN总线板卡 | CAN 2.0A/B | 汽车电子、工业控制 | ≤10ms周期 |
| ARINC429板卡 | ARINC429 | 民用航空、地面站系统 | ≤100ms周期 |
| 模拟量板卡 | ±10V/0-20mA | 传感器信号仿真、执行器驱动 | ≤1ms采样 |
| 数字量板卡 | TTL/CMOS | 离散信号监控、故障注入 | ≤100μs |
在正式搭建HIL测试环境之前,必须完成测试需求的详细分析。这包括明确被测控制器的类型(ECU、FCU、MCU等)、待验证的功能指标、信号接口清单、实时性要求以及测试用例规模。建议制作一份完整的接口信号映射表,列出所有模拟量、数字量和通讯总线的定义,包括信号名称、物理范围、工程单位和采样周期等关键参数。
以某型号电机控制器HIL测试项目为例,测试需求通常包括:电机转速控制范围验证、扭矩响应测试、过流保护功能验证、CAN通讯协议一致性测试等。根据这些需求,可以推算出所需的接口资源——两路模拟量输出(电压0-10V对应转速0-3000RPM)、一路模拟量输入(电流0-20mA)、两路数字量输出(使能信号、故障指示)、一路CAN总线接口。

基于测试需求分析结果,可以编制硬件设备清单。核心设备包括实时仿真机、接口板卡、信号调理单元、接线端子板和连接线缆。在采购时需要关注几个关键技术指标:实时仿真机的处理器主频和实时内核性能、接口板卡的通道数和采样率、总线板卡的协议栈支持情况。
国产HIL平台近年来发展迅速,以凯云ETest为代表的国产测试平台已经能够提供从RTOS实时内核到应用层软件的全栈解决方案。相比进口品牌动辄数百万元的报价,国产方案在保证实时性能的前提下,大幅降低了HIL测试的入门门槛。值得注意的是,选型时不能只看硬件参数,还需要关注配套软件的成熟度、驱动兼容性和技术支持能力。

实时仿真机的软件环境是HIL系统稳定运行的基础。推荐采用双系统架构:宿主机安装Windows或Linux系统用于开发环境,实时目标机运行专用实时操作系统(如RTLinux、Xenomai或VxWorks)确保确定性调度。在安装过程中需要配置的事项包括:BIOS设置(禁用CPU节能模式、启用HPET定时器)、实时内核编译参数优化、定时器精度校准等。

以RTLinux实时内核为例,关键配置步骤如下:首先在BIOS中将ACPI设置为S0 Only模式,防止系统进入休眠状态;然后编译内核时启用CONFIG_PREEMPT_RT选项,将调度延迟控制在微秒级;最后通过cyclictest工具验证实时性能,目标延迟应小于100微秒。
实时仿真软件负责模型的编译、部署和实时运行。以国产SimuRTS实时仿真软件为例,安装流程包括:安装许可证管理服务、配置仿真引擎、添加目标机节点、验证网络连接等步骤。首次使用时需要在目标机上部署实时代理程序(Agent),该程序负责接收主机下发的模型和指令。
配置过程中有几个容易出错的环节需要特别注意:一是防火墙设置,必须开放模型部署端口和数据监控端口;二是时间同步机制,主机和目标机之间应采用NTP或PTP协议保持时钟同步;三是资源隔离,确保实时仿真任务独占CPU核心,避免与其他进程争抢资源。
将被控对象模型部署到实时仿真机上运行,是HIL测试的关键步骤。首先需要对Simulink模型进行规范化处理:检查模型是否包含非连续状态模块(如带延迟的模块)、确认采样时间设置是否合理、清理不必要的可视化模块(如Scope显示)。模型结构建议采用原子子系统(Atomic Subsystem)封装,便于后续模块化和代码生成。

代码生成配置是模型部署的核心环节。以Embedded Coder为例,需要设置以下关键参数:系统目标文件选择ert.tlc或rtwin.tlc(针对实时Windows目标);代码生成策略选择"普通模式"或"加速模式";数据管理方面需要配置模型参量(Parameter)和信号(Signal)的存储类别,建议使用标定格式(a2l)便于后期参数调整。
配置完成后,点击"Build Model"按钮生成C代码。如果模型中使用了不支持的模块(如自定义S-Function未提供源码),编译过程会报错,需要根据错误提示进行修复。
代码生成完成后,需要将编译产物部署到实时仿真机。以SimuRTS为例,部署流程如下:第一步,在主机端打开模型对应的.srp工程文件;第二步,选择目标机IP地址和端口号;第三步,点击"下载"按钮将实时可执行文件发送到目标机;第四步,在目标机端启动实时仿真引擎,加载模型并初始化参数。
模型加载成功后,可以通过试验管理软件监控模型的运行状态。关键监控指标包括:CPU负载(应控制在70%以下)、模型执行周期偏差(应小于0.1%)、内存使用量等。如果发现模型运行异常(如信号跳变、输出饱和),需要回到Simulink模型检查算法逻辑或参数设置。

1553B总线是航电系统中广泛使用的通讯协议,板卡配置涉及硬件跳线设置和软件驱动安装两个层面。以国产1553B板卡为例,硬件跳线需要设置基地址和中断号(推荐使用PCIe插槽自动分配模式);软件驱动安装后会在系统中创建虚拟串口,通过API函数可以控制BC/RT/BM三种工作模式。
1553B板卡的关键配置参数包括:

配置完成后需要进行总线通讯测试:发送一条BC-RT消息,验证RT设备能否正确响应。如果通讯失败,需要检查终端电阻连接(总线两端需要120欧姆终端电阻)、信号质量以及板卡驱动日志。
CAN总线板卡的配置相对简单,主要涉及波特率和验收过滤器设置。常用波特率有125Kbps、250Kbps、500Kbps和1Mbps,具体选择取决于总线长度和节点数量——总线越长,波特率应越低以保证信号质量。
验收过滤器的作用是只接收需要的CAN报文,减少CPU负载。配置时需要填写期望接收的报文ID列表,包括标准帧(11位ID)和扩展帧(29位ID)。此外还需要设置消息接收队列深度和超时时间,确保在高负载情况下不丢帧。
CAN报文解析需要对应的dbc数据库文件,文件中定义了每条报文包含的信号名称、起始位、长度和字节序。加载dbc文件后,板卡驱动会自动解析原始CAN帧为结构化信号数据,便于后续模型处理。
ARINC429是民用航空领域的主流总线协议,板卡配置需要关注发送间隔和标签号过滤。ARINC429协议规定发送间隔必须大于一定时间(通常为5ms),否则接收端可能无法正确解析。标签号过滤类似于CAN总线的验收过滤器,只接收特定标签号的429报文。
ARINC429信号的物理层特性也需要注意:发送差分电压为±10V,传输速率为12.5Kbps或100Kbps两种。板卡通常提供四个发送通道和四个接收通道,每个通道可以独立配置速率和奇偶校验方式。
模拟量输入输出板卡的配置主要涉及量程设置和校准。模拟量输入常见量程包括±10V、0-10V、±5V、0-5V、0-20mA、4-20mA等,选择时需要匹配传感器的输出范围;模拟量输出的量程选择则需要匹配执行器的输入要求。配置完成后建议使用高精度万用表进行校准验证,确保AD/DA转换精度在规格范围内。
数字量板卡的配置相对简单,主要设置初始状态和故障注入功能。数字量输出可以配置上电初始状态(高或低),数字量输入可以配置去抖动时间和故障注入模式(开路、短路到电源、短路到地)。在测试故障处理逻辑时,故障注入功能非常有用。

完成上述配置后,需要进行系统级的联调测试。首先进行接口信号闭环验证:给模拟量输出通道施加激励信号,用万用表测量实际输出电压是否在误差范围内(通常为±0.1%FS);给数字量输出通道写1或写0,用万用表或示波器验证输出状态是否正确;发送CAN/1553B测试报文,验证板卡能否正确接收并解析。
接口信号验证通过后,进行模型和控制器联合调试。将控制器的输出信号接入板卡输入端口,板卡输出信号接入控制器输入端口,观察闭环运行是否稳定。重点关注:控制器的指令输出与仿真模型输入是否一一对应、仿真模型输出与控制器反馈采集是否一致、闭环系统的响应是否符合预期。

HIL测试环境的价值最终体现在测试用例的执行上。测试用例开发应遵循结构化管理原则:测试用例库按功能模块分类、每个测试用例包含清晰的输入条件、预期结果和判定准则。推荐使用表格形式管理测试用例,便于版本追踪和覆盖率统计。
自动化测试脚本可以将测试用例转化为可执行程序。以Python为例,通过测试框架(如pytest)调用HIL平台的API接口,实现测试用例的自动执行、结果记录和报告生成。自动化测试的优势在于:执行效率高、重复性好、结果可追溯,特别适合回归测试和长期稳定性测试场景。
实时性是HIL测试的核心指标,常见问题表现为模型执行周期抖动超标或CPU负载过高。排查思路如下:第一步,使用实时性能分析工具(如rtla或cyclictest)定位延迟来源;第二步,检查是否有非实时线程抢占CPU资源,必要时调整进程优先级;第三步,优化模型计算量,将复杂算法拆分为多个计算周期执行;第四步,考虑升级硬件配置或增加多核并行。
CAN或1553B总线丢帧通常由以下原因导致:接收队列溢出(消息产生速率高于处理速率)、总线错误(终端电阻缺失或信号质量差)、驱动配置错误(中断未使能或缓冲区设置过小)。解决思路是逐项排查:首先检查总线物理连接和终端电阻;其次验证驱动配置参数;最后优化消息接收处理逻辑,必要时采用多线程或DMA方式提升处理能力。
模型仿真结果与理论预期存在偏差时,需要系统性排查:检查模型初始条件是否正确加载、验证参数标定文件是否同步更新、确认信号类型和单位是否匹配、检查Simulink模型是否存在代数环或采样时间冲突。对于复杂模型,建议先进行开环仿真验证,确认各子模块输出正确后再进行闭环测试。


硬件在环测试环境的搭建是一项系统工程,涉及硬件选型、软件部署、模型开发和系统集成的多个环节。本文详细介绍了从测试需求分析到系统联调的完整流程,重点讲解了1553B/CAN/ARINC429等通讯总线板卡的配置方法,以及Simulink模型在实时仿真机上的部署步骤。希望通过本文的分享,能够帮助研发团队避开工搭建过程中常见的问题,加速HIL测试能力的建设进程。
如果您在HIL测试环境搭建过程中遇到具体的技术问题,或者想了解凯云ETest/SimuRTS平台的详细功能特性,欢迎联系凯云咨询的技术团队。我们可以提供从方案咨询、平台选型到现场部署的全流程支持服务,助力您的半实物仿真测试能力快速落地。
