所以,我們將如何繼續(xù)應(yīng)對(duì)未來(lái)的復(fù)雜性呢?
一種方法是建立良好的策略和流程,保持測(cè)試套件和文檔的全流程管理。現(xiàn)有的軟件工程方式已成功構(gòu)建了大型測(cè)試系統(tǒng)。
另外軟件架構(gòu)同樣可以通過(guò)組織和限制設(shè)計(jì)遵循幫助認(rèn)證過(guò)的Patterns,例如,LabVIEW中的Project templates和Actor framework就是這種方法。
當(dāng)然,工具和開(kāi)發(fā)環(huán)境的改進(jìn)也有幫助。例如,通過(guò)LabVIEW NXG與DAQmx驅(qū)動(dòng)程序和DAQ硬件的集成更加緊密,使交互式探索和自動(dòng)化測(cè)量變得更加容易。
此外,專用工具可以通過(guò)減少定制開(kāi)發(fā)的需求來(lái)處理整體流程的復(fù)雜性。像TestStand這樣的專用工具可以處理應(yīng)用程序的標(biāo)準(zhǔn)部分,而只開(kāi)發(fā)您需要的自定義測(cè)試步驟。
通過(guò)NI提供的專用工具,加速軟件開(kāi)發(fā)和實(shí)施周期
第二種方法則是提高我們用于設(shè)計(jì)系統(tǒng)的抽象級(jí)別。對(duì)于目前復(fù)雜的系統(tǒng),我們可以利用人工智能等方式提高抽象級(jí)別,可以減少人為的復(fù)雜性。想象一下你的車,如果您想要加速,使用自動(dòng)變速箱等更高級(jí)別的抽象比標(biāo)準(zhǔn)變速箱更簡(jiǎn)單,因?yàn)闃?biāo)準(zhǔn)變速箱還需要額外的手腳配合進(jìn)行離合換擋。
兩年前,我們?cè)贚abVIEW中引入了Channel Wire,提高了通信并行處理設(shè)計(jì)的抽象級(jí)別。相比低級(jí)語(yǔ)言設(shè)計(jì)起來(lái)更容易,更明顯也更易于理解。實(shí)際上還有更多的工作可以進(jìn)一步提高LabVIEW的抽象級(jí)別。
采用Channel Wire,上位機(jī)與FPGA之間的通信只需要簡(jiǎn)單的連線即可實(shí)現(xiàn)
從歷史上看,我們的開(kāi)發(fā)理念都是首先著眼于使難題成為可能,然后再讓它們變得更容易。NI已經(jīng)創(chuàng)建了跨越處理器和FPGA的測(cè)量應(yīng)用程序,現(xiàn)在是時(shí)候考慮提高抽象級(jí)別以增加便捷性了。
假設(shè)我們可以在LabVIEW中將FPGA表示為一個(gè)盒子。內(nèi)部的圖表代表部署到FPGA中,外部的圖表表示在處理器上運(yùn)行。它們之間的通道表示通信路徑,編譯器使用底層的FIFO和DMA資源來(lái)實(shí)現(xiàn)連接。
Target軟件體系結(jié)構(gòu)對(duì)于簡(jiǎn)化cRIO應(yīng)用和FlexRIO點(diǎn)對(duì)點(diǎn)通信應(yīng)用程序,甚至對(duì)于分布式應(yīng)用程序來(lái)說(shuō)顯示出巨大的前景。
這是我們?yōu)樘岣叱橄蠹?jí)別而進(jìn)行的一個(gè)例子,如果我們能夠真正實(shí)現(xiàn)它,它將成為最先進(jìn)的技術(shù)進(jìn)步。
如圖所示,未來(lái)可在一個(gè)軟件系統(tǒng)開(kāi)發(fā)框架內(nèi),實(shí)現(xiàn)上位機(jī)與FPGA的共同開(kāi)發(fā)
讓我來(lái)嘗試描述我們一項(xiàng)正在進(jìn)行的研究工作,它可以通過(guò)更加模糊且更高級(jí)的處理方式加速我們的設(shè)計(jì)流程。以一個(gè)麥克風(fēng)測(cè)量系統(tǒng)來(lái)舉例。
最開(kāi)始,我們勾勒出設(shè)計(jì)理念,包括展示要測(cè)試的麥克風(fēng),提供激勵(lì)信號(hào)的揚(yáng)聲器,驅(qū)動(dòng)揚(yáng)聲器的波形發(fā)生器,測(cè)量響應(yīng)信號(hào)的數(shù)字化儀器以及設(shè)置增益與頻率。這種草圖經(jīng)常需要改進(jìn),例如,當(dāng)我們?yōu)榱双@得更高的精準(zhǔn)性,需要測(cè)量激勵(lì)信號(hào)。
如果我們可以在LabVIEW中放置一個(gè)抽象設(shè)計(jì)節(jié)點(diǎn)并編輯它的圖標(biāo)來(lái)表示麥克風(fēng),用另一個(gè)圖標(biāo)來(lái)表示揚(yáng)聲器,為聲波添加一些剪貼畫,我們可以快速生成一個(gè)草圖。
作為項(xiàng)目的一部分,它需要一些文檔,但同樣提高系統(tǒng)層級(jí)的話,我們就可以把它當(dāng)做實(shí)施整個(gè)系統(tǒng)的啟動(dòng)點(diǎn)。
如果我們可以注釋導(dǎo)線以顯示激勵(lì)信號(hào),作為連續(xù)步進(jìn)頻率波形,并且對(duì)采集輸出進(jìn)行注釋以顯示要分析的波形流,這將使抽象算法更為清晰。我們還可以顯示將采集到的信號(hào)流分成時(shí)間間隔信息。我們可以標(biāo)記這個(gè)抽象級(jí)別,并通過(guò)將生成節(jié)點(diǎn)擴(kuò)展為波形計(jì)算和波形輸出來(lái)繼續(xù)改進(jìn)設(shè)計(jì)。并將采集節(jié)點(diǎn)擴(kuò)展為模擬輸入,將節(jié)點(diǎn)分割成塊。
現(xiàn)在我們意識(shí)到,只有當(dāng)我們有相同的時(shí)間參考時(shí),這才會(huì)起作用,因此我們引入了一個(gè)開(kāi)始時(shí)間,于是開(kāi)始生成和采集同步。