硬件在环 (HIL) 测试在目标微控制器上运行测试用例代码,而不是使用模拟软件层作为硬件。对嵌入式开发人员来说,HIL测试对于验证来自 HAL 的硬件访问是否按预期工作非常有用,甚至可以测试系统的所有输出是否按预期工作。下图显示了HIL设置的示例。
硬件在环 (HIL) 测试可以包含几个不同的组件。首先是被测设备,通常称为 DUT。DUT 将访问对验证系统是否正常工作至关重要的信息,例如:
• 微控制器寄存器值
• 引脚 I/O 状态
• 沟通渠道
• 产品与来自传感器、执行器等的信号相关
现在,开发人员可以检查并手动监控这些信号,但这将是一个非常耗时的过程。相反,开发人员可以构建他们的HIL测试工具来包含能够自动采样期望状态的工具。
这就把我们带到了第二个组件:调试器。测试控制器使用调试器来将应用程序和测试代码加载到目标微控制器上,而且还通过调试器通信端口来控制这些测试。大多数现代调试器充当虚拟通信端口,嵌入式开发人员可以用最少的软件创建测试命令控制通道来管理微控制器。控制器可以请求遥测、记录值,甚至监控软件跟踪和事件历史。
接下来,开发人员通常会有一个与产品交流的渠道。例如,如果产品是汽车产品,那么可能会有产品响应需要测试的CAN消息。另一个例子是具有通信端口的设备。无论通信接口是什么,都需要有一个工具可以将通信转换成测试脚本可以控制的comm端口。
HIL中包含的另一个有用的工具是逻辑分析器,它对于验证HAL和配置表非常有用。微控制器上的每个GPIO引脚都可以连接到逻辑分析仪,然后以预定速率或当系统中发生事件时进行采样。对于引脚数少的器件,这很简单,不需要昂贵的硬件。然而,如果所用的微控制器有100个或更多的引脚,逻辑分析仪硬件可能会很贵。使用相同的处理器开发套件(可能每个引脚都有一个头部),只需一点软件就可以用作逻辑分析仪。
嵌入式开发人员也可能发现他们的系统需要模拟或数字输入,或者他们的系统输出模拟或数字信号。在这些情况下,使用ADC或DAC将使测试工具能够访问这些信号,以便在执行测试用例时可以记录这些信号。
最后,这将我们带到运行测试套件并且必须监控整个测试过程的主机。LDRA等公司提供了几种不同的测试工具,但是开发者也可以编写自己的Python脚本来测试和验证他们的系统。在许多情况下,团队的发展方向取决于几个因素,例如:
可用预算
可用时间
项目可用的团队成员
必须确定至少一个覆盖基础和用户交互的最小测试集。集成硬件在环测试可以帮助嵌入式开发人员进行单元测试、回归测试和功能测试。