硬件在環 (HIL) 測試在目標微控制器上運行測試用例代碼,而不是使用模擬軟件層作為硬件。對嵌入式開發人員來說,HIL測試對于驗證來自 HAL 的硬件訪問是否按預期工作非常有用,甚至可以測試系統的所有輸出是否按預期工作。下圖顯示了HIL設置的示例。
硬件在環 (HIL) 測試可以包含幾個不同的組件。首先是被測設備,通常稱為 DUT。DUT 將訪問對驗證系統是否正常工作至關重要的信息,例如:
? 微控制器寄存器值
? 引腳 I/O 狀態
? 溝通渠道
? 產品與來自傳感器、執行器等的信號相關
現在,開發人員可以檢查并手動監控這些信號,但這將是一個非常耗時的過程。相反,開發人員可以構建他們的HIL測試工具來包含能夠自動采樣期望狀態的工具。
這就把我們帶到了第二個組件:調試器。測試控制器使用調試器來將應用程序和測試代碼加載到目標微控制器上,而且還通過調試器通信端口來控制這些測試。大多數現代調試器充當虛擬通信端口,嵌入式開發人員可以用最少的軟件創建測試命令控制通道來管理微控制器。控制器可以請求遙測、記錄值,甚至監控軟件跟蹤和事件歷史。
接下來,開發人員通常會有一個與產品交流的渠道。例如,如果產品是汽車產品,那么可能會有產品響應需要測試的CAN消息。另一個例子是具有通信端口的設備。無論通信接口是什么,都需要有一個工具可以將通信轉換成測試腳本可以控制的comm端口。
HIL中包含的另一個有用的工具是邏輯分析器,它對于驗證HAL和配置表非常有用。微控制器上的每個GPIO引腳都可以連接到邏輯分析儀,然后以預定速率或當系統中發生事件時進行采樣。對于引腳數少的器件,這很簡單,不需要昂貴的硬件。然而,如果所用的微控制器有100個或更多的引腳,邏輯分析儀硬件可能會很貴。使用相同的處理器開發套件(可能每個引腳都有一個頭部),只需一點軟件就可以用作邏輯分析儀。
嵌入式開發人員也可能發現他們的系統需要模擬或數字輸入,或者他們的系統輸出模擬或數字信號。在這些情況下,使用ADC或DAC將使測試工具能夠訪問這些信號,以便在執行測試用例時可以記錄這些信號。
最后,這將我們帶到運行測試套件并且必須監控整個測試過程的主機。LDRA等公司提供了幾種不同的測試工具,但是開發者也可以編寫自己的Python腳本來測試和驗證他們的系統。在許多情況下,團隊的發展方向取決于幾個因素,例如:
可用預算
可用時間
項目可用的團隊成員
必須確定至少一個覆蓋基礎和用戶交互的最小測試集。集成硬件在環測試可以幫助嵌入式開發人員進行單元測試、回歸測試和功能測試。