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