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