• <noframes id="6fok0"><bdo id="6fok0"><listing id="6fok0"></listing></bdo>
    <ruby id="6fok0"></ruby>

    <progress id="6fok0"></progress>
  • <progress id="6fok0"></progress>
    <ruby id="6fok0"><table id="6fok0"></table></ruby>
  • <progress id="6fok0"><u id="6fok0"><form id="6fok0"></form></u></progress>

    24小時(shí)聯(lián)系電話(huà):18217114652、13661815404

    中文

    您當前的位置:
    首頁(yè)>
    電子資訊>
    技術(shù)專(zhuān)題>
    自動(dòng)化硬件在環(huán)測試的...

    技術(shù)專(zhuān)題

    自動(dòng)化硬件在環(huán)測試的低成本解決方案


    自動(dòng)化硬件在環(huán)測試的低成本解決方案

    在當今快節奏的世界中,電子產(chǎn)品的迭代以閃電般的速度旋轉,我們經(jīng)常忘記開(kāi)發(fā)中最關(guān)鍵的方面之一:測試??偸呛苋菀缀雎詼y試,因為它是阻止我們發(fā)布產(chǎn)品的最后階段。在產(chǎn)品開(kāi)發(fā)中,我們不斷發(fā)現自己處于足夠好經(jīng)過(guò)詳盡測試的陣營(yíng)中。這種情況通常會(huì )發(fā)生,因為我們沒(méi)有時(shí)間進(jìn)行測試、重新測試,然后再進(jìn)行更多測試。

    手動(dòng)測試與自動(dòng)測試

    在行業(yè)中,擁有自動(dòng)化測試設置(主要用于生產(chǎn)級測試)是很常見(jiàn)的。然而,對于產(chǎn)品開(kāi)發(fā)來(lái)說(shuō),這并不常見(jiàn)。如上所述,設置復雜的自動(dòng)化測試設備的成本和開(kāi)發(fā)時(shí)間需要高水平的努力。這種類(lèi)型的成本和努力僅適用于具有非常復雜測試配置的大批量或小批量生產(chǎn)(例如,要進(jìn)行多次環(huán)境測試的小批量航天器系統)。對于世界其他地方,我們求助于基本的、乏味的手動(dòng)測試。這種測試可以包括ADC/DAC驗證、協(xié)議檢查、功耗測試等。不管測試類(lèi)型如何,希望只需要做一兩次,然后就可以翻墻了到測試組。

    意外后果和自動(dòng)化

    現實(shí)情況是,在我們的開(kāi)發(fā)過(guò)程中,無(wú)論是在硬件設計/重新設計階段,還是在嵌入式軟件開(kāi)發(fā)階段,我們都會(huì )無(wú)意中造成一些問(wèn)題。一些示例可能是跨焊盤(pán)的焊橋或驅動(dòng)程序代碼滲入其他驅動(dòng)程序代碼可能導致某些內容損壞。不管結果如何,很明顯,測試不會(huì )只發(fā)生一次或兩次。問(wèn)題出現了,在船上進(jìn)行第十次返工后,詳盡的測試通常會(huì )太累而無(wú)法執行。這個(gè)問(wèn)題的顯而易見(jiàn)的答案是讓自動(dòng)化系統執行詳盡的回歸測試。但是對于沒(méi)有錢(qián)和時(shí)間來(lái)開(kāi)發(fā)詳盡的自動(dòng)化測試系統的嵌入式工程師來(lái)說(shuō),有什么解決方案呢?

    廉價(jià)的解決方案

    對于嵌入式系統,有一個(gè)低成本但非??蓴U展和實(shí)用的自動(dòng)化測試解決方案。雖然它并不完美,但它將為設計工程師提供最高的投資回報。這個(gè)概念是使用一個(gè)簡(jiǎn)單的設備來(lái)驅動(dòng)模擬信號、讀取模擬信號、生成各種協(xié)議串行流和分析波形。

    運行示例

    讓我們考慮一個(gè)可以在此存儲庫中找到的真實(shí)示例。為簡(jiǎn)單起見(jiàn),我們的嵌入式目標將是Arduino Du o。以下是我們完整的測試設置:

    1:測試硬件配置

    2Analog Discovery 2 Arduino Duo 一起使用

    這里的想法是為了證明:

    主機命令 Analog Discovery 2 驅動(dòng)模擬信號到 Arduino

    Arduino 讀取并存儲 ADC

    主機通過(guò) UART (USB) 接收 ADC

    主機驗證通過(guò) Analog Discovery 2 發(fā)送的內容與 Arduino 發(fā)送的遙測數據相匹配

    為什么我們要自動(dòng)化這樣的事情?假設我們在 ADC 附近返工了一塊電路板,或者有人更改了與 ADC 接口的驅動(dòng)程序。我們是否 100% 確信在電源上打開(kāi)幾個(gè)旋鈕的簡(jiǎn)單手動(dòng) ADC 讀數足以測試我們的硬件/軟件?如果沒(méi)有,為什么不讓自動(dòng)化覆蓋每一個(gè)排列和每一個(gè)角落情況,這樣我們就不必這樣做了?只是為了更好的衡量,為什么不將同一件事運行 100 ……僅僅因為我們可以!這可能會(huì )變得更加復雜和復雜(例如,協(xié)議測試、ADC 過(guò)濾測試等),但本文將只介紹基礎知識。

    該測試紙條t是非?;镜?。假設您的 Arduino(即被測嵌入式設備)已加載了正確的編程文件并且一切都已正確連接,您將在您的計算機上運行測試腳本,如下所示:

    python -m pytest test_arduino_hil.py

    這將觸發(fā) Analog Discovery 2 掃描 Arduino ADC 的電壓范圍,并驗證輸入電壓是否與從 ADC 讀取的輸出電壓相匹配。該腳本不是使用臺式電源手動(dòng)清掃,而是通過(guò)一個(gè)命令為您完成。對于這樣一個(gè)簡(jiǎn)單的例子,似乎沒(méi)有必要,但是當以類(lèi)似回歸的方式組合測試時(shí),這個(gè)過(guò)程會(huì )帶來(lái)好處。
    將其與我們的 CI/CD 系統相結合,我們可以看到以下階段正在運行和通過(guò):

    3Gitlab 中的 CI/CD 階段

    上圖的階段是:

    docker_build:搭建環(huán)境。在這種情況下,我們在 Linux PC 和基于 ARM 的設備(例如 Raspberry Pis)上使用 docker 映像

    arduino_load_test:編譯并加載了Arduino的代碼和驗證一切工作。

    arduino_hil_test:在物理 Arduino 上運行硬件循環(huán)測試。

    如果我們仔細查看測試部分,我們可以看到這些測試是由 Gitlab 捕獲和解析的:

    4Gitlab 中的 CI/CD 測試

    5Gitlab 中的硬件在環(huán)測試結果

    我們現在有一個(gè)軟件設置,允許我們在本地和遠程(使用我們的 CI/CD 系統)測試我們的設計。這使設計工程師能夠繼續專(zhuān)注于設計而不是測試和調試。

    在本文中,我們回顧了使用自動(dòng)化測試同時(shí)和事后驗證設計的概念。無(wú)論是小的返工還是重大的設計更改,在排除意外后果(即修復一件事,破壞另一件事)時(shí),進(jìn)行自動(dòng)化回歸測試都會(huì )帶來(lái)好處。鼓勵的過(guò)程是在設計開(kāi)發(fā)過(guò)程(類(lèi)似于測試驅動(dòng)開(kāi)發(fā))的同時(shí)編寫(xiě)這些測試腳本。將這些自動(dòng)化測試與 CI/CD 系統相結合增加了額外的好處,以證明我們的電路板正在遠程目標上工作,并且可以由任何人隨時(shí)隨地進(jìn)行測試。

    請輸入搜索關(guān)鍵字

    確定
    色鲁99热99re超碰精品_91精品一区二区三区无码吞精_亚洲国产欧洲综合997久久_一级a性色生活片久久无
  • <noframes id="6fok0"><bdo id="6fok0"><listing id="6fok0"></listing></bdo>
    <ruby id="6fok0"></ruby>

    <progress id="6fok0"></progress>
  • <progress id="6fok0"></progress>
    <ruby id="6fok0"><table id="6fok0"></table></ruby>
  • <progress id="6fok0"><u id="6fok0"><form id="6fok0"></form></u></progress>