NI VeriStand是一款用于配置實(shí)時測試系統(tǒng)應(yīng)用的軟件環(huán)境,如硬件在環(huán)(HIL)測試系統(tǒng)等。當(dāng)向NI VeriStand添加實(shí)時I/O接口時,用戶能夠快速配置多種標(biāo)準(zhǔn)模擬、數(shù)字和通信總線接口。另外,用戶還可以使用NI VeriStand,通過基于FPGA 的I/O接口創(chuàng)建用戶自定義的I/O硬件。本文說明了使用基于FPGA I/O接口的益處,以及如何同NI VeriStand一起使用它們。
1. 什么是基于FPGA的I/O接口?
現(xiàn)場可編程門陣列(FPGA)是一種可重復(fù)編程硅片,具有專用集成電路(ASIC)等硬件邏輯實(shí)現(xiàn)的卓越執(zhí)行性能和可靠性,以及基于軟件或固件實(shí)現(xiàn)的靈活性。利用可配置邏輯塊和可編程連線資源,用戶無需在物理層上更改設(shè)備,即可對FPGA進(jìn)行配置,以實(shí)現(xiàn)自定義硬件功能。相反的,用戶在軟件中開發(fā)數(shù)字計(jì)算任務(wù),并將其編譯成比特流文件,其中包含F(xiàn)PGA邏輯和連線組件如何進(jìn)行配置和連接等信息的。
2. 為什么在實(shí)時測試應(yīng)用中使用FPGA?
利用用戶自定義的基于FPGA的I/O接口,可以創(chuàng)建自定義I/O設(shè)備,實(shí)現(xiàn)信號處理、仿真、觸發(fā)和控制等任務(wù),為用戶提供I/O接口,很好地滿足應(yīng)用需要。此外,由于I/O接口基于FPGA,用戶還可以輕松地重新配置接口特性,以滿足新的要求,或者在不更改硬件設(shè)置的情況下創(chuàng)建能夠用于多項(xiàng)應(yīng)用的測試系統(tǒng)。
自定義I/O是在實(shí)時測試應(yīng)用中使用FPGA的最主要原因之一。超過100款的C系列信號調(diào)理模塊為用戶應(yīng)用提供專用接口。將信號調(diào)理模塊的多樣性與基于FPGA的I/O設(shè)備的靈活性相結(jié)合,用戶可以快速創(chuàng)建具有自定義定時和觸發(fā)功能的I/O接口,從而完全滿足用戶的實(shí)時測試要求。
另外,用戶還可以使用FPGA完成數(shù)據(jù)預(yù)處理和后處理,從而減少執(zhí)行實(shí)時測試應(yīng)用程序的微處理器的負(fù)擔(dān)。例如,F(xiàn)PGA可以采集來自編碼器的數(shù)字信號,并根據(jù)此信號計(jì)算出速度和加速度,然后將這些信息傳輸給實(shí)時測試應(yīng)用程序。
另外,在實(shí)時測試應(yīng)用中使用FPGA還可以幫助你增加高速閉環(huán)控制功能。例如,用戶可以在FPGA上運(yùn)行一個運(yùn)動控制器,同時由實(shí)時應(yīng)用程序?yàn)榭刂破魈峁┰O(shè)定值。這樣,閉環(huán)控制的響應(yīng)速度能夠大大提高,實(shí)現(xiàn)更加精確的系統(tǒng)控制。無刷直流電機(jī)的控制是此方法的一個應(yīng)用實(shí)例。
此外,用戶還可以用FPGA來仿真HIL測試中的各種傳感器。FPGA是傳感器仿真的理想選擇,主要因?yàn)镕PGA能夠適應(yīng)多種類型傳感器的精確定時要求。用戶能夠?qū)崿F(xiàn)納秒級分辨率的傳感器仿真,更加真實(shí)地模擬傳感器對于信號的響應(yīng)。在許多情況下,傳感器的功能不受響應(yīng)速度的影響。FPGA的物理并行性使其成為實(shí)現(xiàn)真實(shí)器件行為仿真的理想選擇。NI VeriStand外接式附件社區(qū)提供FPGA傳感器仿真外接式附件供下載。
關(guān)于FPGA在實(shí)時測試應(yīng)用中使用優(yōu)勢的更多信息,請參考FPGA技術(shù)介紹:五大優(yōu)勢和FPGA – 深層分析。
3. 自定義FPGA特性與NI VeriStand的協(xié)作方式
在典型應(yīng)用中,開發(fā)人員負(fù)責(zé)完成自定義FPGA邏輯的編程、FPGA邏輯與實(shí)時處理器上執(zhí)行的應(yīng)用程序之間的通信機(jī)制,以及實(shí)時應(yīng)用程序中的數(shù)據(jù)預(yù)處理和后處理。NI VeriStand提供的框架實(shí)現(xiàn)了后面兩個部分,即通信機(jī)制和數(shù)據(jù)處理,從而減少了實(shí)時測試應(yīng)用程序使用FPGA所需的開發(fā)工作量。要在NI VeriStand上應(yīng)用FPGA特性,用戶只需開發(fā)FPGA特性,然后使用XML文件描述用戶的FPGA特性與NI VeriStand實(shí)時測試應(yīng)用程序之間的接口,從而減少了開發(fā)工作量。
用戶從NI LabVIEW軟件中的模板項(xiàng)目開始著手創(chuàng)建NI VeriStand FPGA特性,此模板包含了與用戶NI VeriStand應(yīng)用程序接口所需要的代碼。用戶可以使用LabVIEW來定義此框架中的自定義FPGA功能,編譯FPGA特性,為FPGA特性編輯XML文件。完成以上步驟以后,用戶只需要選擇XML文件即可將此特性添加到NI VeriStand系統(tǒng)定義中。XML文件告訴NI VeriStand如何與用戶特性接口,以及自動提供它的輸入、輸出和在NI VeriStand系統(tǒng)瀏覽器中的參數(shù),從而用戶可以設(shè)置數(shù)值以及與其它實(shí)時任務(wù)的連接,就像對其他任何硬件接口進(jìn)行操作一樣。例如,如果用戶定義了一個帶PWM輸出的FPGA特性,那么可以使用NI VeriStand系統(tǒng)瀏覽器來設(shè)置通道參數(shù),例如周期和初始值等,并將占空比輸入映射到用戶實(shí)時測試應(yīng)用程序中的另一個通道中,如圖1所示。
圖1. 在系統(tǒng)瀏覽器中配置NI VeriStand FPGA特性
用戶在部署NI VeriStand實(shí)時應(yīng)用程序時,NI VeriStand將用戶編譯的FPGA特性自動下載至硬件接口。
圖2. NI VeriStand FPGA 特性模板
定時引擎
定時引擎通過NI VeriStand系統(tǒng)瀏覽器進(jìn)行配置,使FPGA與NI VeriStand實(shí)時應(yīng)用程序以及系統(tǒng)中的其它硬件I/O設(shè)備實(shí)現(xiàn)同步。在用戶的NI VeriStand實(shí)時應(yīng)用程序部署完成之后,加載用戶的FPGA特性,同時定時引擎等待來自NI VeriStand的啟動條件。
圖3. 初始化定時引擎
在用戶的實(shí)時應(yīng)用程序確認(rèn)啟動觸發(fā)之前,NI VeriStand設(shè)置循環(huán)速率(μs)、寫入RTSI和使用外部定時參數(shù)。這三個參數(shù)完成定時引擎的同步模式(主、從或不同步)配置,并設(shè)置用戶特性與NI VeriStand實(shí)時應(yīng)用程序之間的通訊速率。
NI VeriStand – 生成PXI FPGA時鐘子VI以生成時鐘,此時鐘用來為下文討論的通信循環(huán)以及同步處理定時。在主模式下,F(xiàn)PGA利用在其上運(yùn)行的循環(huán)計(jì)時器對通信循環(huán)進(jìn)行計(jì)時,并將時鐘導(dǎo)入到實(shí)時系統(tǒng)集成(RTSI)總線上,以便同步其它硬件設(shè)備。在從模式下,F(xiàn)PGA監(jiān)控RTSI總線,并用RTSI0上獲取的時鐘對通信循環(huán)進(jìn)行定時。在非同步模式下,F(xiàn)PGA用自帶的循環(huán)計(jì)時器對通信循環(huán)進(jìn)行計(jì)時,并且不向RTSI總線導(dǎo)出任何信號。
除了實(shí)現(xiàn)硬件同步,定時引擎還能實(shí)現(xiàn)與NI VeriStand實(shí)時應(yīng)用程序的同步。圖4所示為通信循環(huán)的一部分。
圖4. NI VeriStand與FPGA同步
NI VeriStand – 等待FPGA時鐘子VI用作通信循環(huán)的循環(huán)計(jì)時器,等待來自NI VeriStand – 生成PXI FPGA時鐘子VI的時鐘信號。另外,在主機(jī)模式下,NI VeriStand在確認(rèn)啟動控制之前,先確認(rèn)產(chǎn)生IRQ。在確認(rèn)產(chǎn)生IRQ之后,NI VeriStand – 與主機(jī)同步子VI在通信循環(huán)的每個迭代中確認(rèn)一個中斷。如果FPGA被設(shè)置為主機(jī),NI VeriStand實(shí)時應(yīng)用程序的執(zhí)行將通過此IRQ信號由FPGA進(jìn)行定時。
通信循環(huán)
通信循環(huán)負(fù)責(zé)發(fā)送和接收NI VeriStand實(shí)時應(yīng)用程序的數(shù)據(jù)。由于NI VeriStand按照硬件計(jì)時單點(diǎn)方式更新通道,F(xiàn)PGA必須按照NI VeriStand引擎中的主控制循環(huán)所規(guī)定的速率運(yùn)行通信循環(huán)。欲了解NI VeriStand引擎的更多信息,請參考NI VeriStand幫助。
通信循環(huán)的定時由NI VeriStand – 等待FPGA時鐘子VI來實(shí)現(xiàn),此子VI作為循環(huán)計(jì)時器,等待前述的NI VeriStand – 生成PXI FPGA時鐘子VI來生成時鐘。
圖5. 數(shù)據(jù)通信循環(huán)
如圖5所示,采取64位數(shù)據(jù)包格式的數(shù)據(jù),通過DMA先入先出內(nèi)存緩沖(FIFO),發(fā)送至NI VeriStand實(shí)時應(yīng)用程序,另外,通過DMA FIFO來接收來自NI VeriStand實(shí)時應(yīng)用程序的、采取64位數(shù)據(jù)包格式的數(shù)據(jù)。
發(fā)送至NI VeriStand的第一個數(shù)據(jù)包包含了來自NI VeriStand – 與主機(jī)同步子VI的信息,該信息解釋了FPGA循環(huán)是否在此之后運(yùn)行。發(fā)送至主機(jī)的其他數(shù)據(jù)包中包含了由FPGA執(zhí)行的測量或計(jì)算數(shù)據(jù)。數(shù)據(jù)包通過寫入到For循環(huán)中的NI VeriStand – 發(fā)送數(shù)據(jù)包至主機(jī)子VI進(jìn)行發(fā)送,此VI負(fù)責(zé)寫入到DMA_READ FIFO。DMA_READ FIFO在項(xiàng)目瀏覽器中進(jìn)行定義,并且必須指定其深度,使其中的元素數(shù)目至少等于每次迭代傳輸?shù)臄?shù)據(jù)包大小。
數(shù)據(jù)通過DMA_WRITE FIFO發(fā)送至FPGA,DMA_WRITE FIFO也在項(xiàng)目瀏覽器中進(jìn)行定義。另外,必須規(guī)定其深度,使其中的元素數(shù)目至少等于每次迭代傳輸?shù)臄?shù)據(jù)包大小。通過For循環(huán)中的NI VeriStand – 接收主機(jī)數(shù)據(jù)包子VI讀取FPGA上的DMA_WRITE FIFO。配置For循環(huán)時,必須使其迭代次數(shù)與While循環(huán)的每次迭代所需讀取的數(shù)據(jù)包數(shù)目相同。然后,分割數(shù)據(jù)包,并發(fā)送至用戶FPGA的適當(dāng)部分。在圖5中,黃色標(biāo)題的子VI代表I/O資源。此循環(huán)中采集或生成的所有I/O均與NI VeriStand以及系統(tǒng)中的其它硬件設(shè)備同步。
并行處理循環(huán)
并行處理循環(huán)是NI VeriStand構(gòu)架中的自定義FPGA特性的最后一部分。這些循環(huán)之所以稱為并行,是因?yàn)樗鼈兯捎玫臅r鐘不是NI VeriStand通信循環(huán)以及系統(tǒng)中其它硬件的定時時鐘。這些循環(huán)可以簡單地從自定義定時I/O上采集或生成數(shù)據(jù),或者負(fù)責(zé)完成自定義測量和生成,例如PWM I/O。另外,它們也可以用來協(xié)助處理從NI VeriStand發(fā)送至FPGA的數(shù)據(jù)。圖6所示的模板實(shí)例包含了PWM輸入和輸出。
圖6. 并行PWM循環(huán)
如圖5和6所示,并行處理循環(huán)通過局部變量完成通信循環(huán)的數(shù)據(jù)發(fā)送/接收。通信循環(huán)只按照自己的運(yùn)行速率更新這些本地變量,并且只將本地變量的當(dāng)前值(無緩沖)發(fā)送至NI VeriStand主機(jī)。并行循環(huán)的數(shù)據(jù)被通信循環(huán)抽選,但是并行循環(huán)的定時并不受通信循環(huán)的影響。
5. 后續(xù)步驟
對于實(shí)時測試應(yīng)用,基于FPGA的I/O接口具有許多優(yōu)勢。利用這些接口,用戶能夠創(chuàng)建自定義I/O設(shè)備,實(shí)現(xiàn)信號處理、仿真、觸發(fā)和控制等任務(wù)的合并,另外這些I/O設(shè)備可以方便地重新進(jìn)行配置,以滿足新的要求,或者創(chuàng)建能夠用于多種應(yīng)用程序的測試系統(tǒng),而無需更改硬件設(shè)置。NI VeriStand提供了一個實(shí)現(xiàn)通信機(jī)制和數(shù)據(jù)處理的框架,從而降低了在實(shí)時測試應(yīng)用中使用FPGA所需要的開發(fā)工作量,使用戶能夠集中于FPGA功能的開發(fā)。然后,用戶可以像處理其它硬件I/O接口一樣,將FPGA特性無縫地插入到NI VeriStand中,并使用基于配置的環(huán)境完成其余的實(shí)時測試應(yīng)用。
評論