概覽
現場可編程門陣列(FPGA)技術提供了專用硬件電路所特有的可靠性、真正的并行執行和閃電般的快速閉環控制" title="閉環控制">閉環控制性能。本文給出了關于可重配置" title="可重配置">可重配置的基于FPGA的硬件目標平臺在閉環控制應用中使用的常見問題(FAQ)的解答。
?
圖1.NI CompactRIO是一個小而堅固的基于FPGA的控制系統
?
什么是現場可編程門陣列(FPGA)?
一個FPGA是一種包含有一個可重配置的門陣列邏輯電路矩陣的設備。通過配置,FPGA的內部電路以一定方式相連接,從而創建了軟件應用的一個硬件實現。與處理器不同,FPGA使用專用硬件進行邏輯處理,而不具有操作系統。FPGA在本質上是完全并行的,故不同的處理操作不必競爭相同的資源。因此,增加額外的處理時,應用某一部分的性能不會受影響。而且,多個控制循環可以以不同的速率在單個FPGA設備上運行。基于FPGA的控制系統" title="控制系統">控制系統可以加強關鍵互鎖邏輯,也可以通過設計防止操作人員強奪I/O" title="I/O">I/O。然而,不同于擁有固定硬件資源的硬連接的印制電路板(PCB)設計,基于FPGA的系統可以完全重新連接其內部電路,以支持控制系統在現場部署后可以重新配置。FPGA設備提供了專用硬件電路所特有的性能與可靠性。
單個FPGA可以通過在單個集成電路(IC)芯片上集成數百萬個邏輯門以代替數以千計的分立元件。一個FPGA芯片的內部資源包括一個被I/O組塊環圍的可配置邏輯組塊(CLB)矩陣。在FPGA矩陣內,信號通過可編程的互連開關和連線傳遞。
?
?
圖2.FPGA芯片的內部構造
?
與基于處理器的系統相比,基于FPGA的控制系統有何特點?
與基于處理器的控制系統相似,FPGA已經被應用于各種類型工業控制系統的實現,包括模擬處理控制、離散邏輯、批處理控制系統或基于狀態機的控制系統。然而,基于FPGA的控制系統還是與基于處理器的系統存在顯著的差別。
為FPGA設備編譯控制應用程序時,受益于專用硬件電路的性能與可靠性優勢,最終得到的高度優化硅實現可以支持真正的并行處理。由于FPGA芯片上不存在操作系統,所以代碼實現方式確保了最優的性能與可靠性。
除了提供高可靠性,FPGA設備還可以以極快的循環速率執行確定性的閉環控制。對于大多數基于FPGA的控制應用,其速率受限于傳感器、傳動裝置和I/O模塊,而不是FPGA的處理性能。例如,包含在LabVIEW FPGA模塊中的比例積分微分(PID)控制算法以300納秒(0.000000300秒)的速率運行。PID控制常用于模擬過程數值的調節,如壓力、溫度、作用力、位移、流體流動或電流等。
?
?
圖3.在LabVIEW FPGA中執行PID控制
?
基于FPGA的控制系統提供速率超過1 MHz的確定性的閉環控制性能。事實上,許多算法可以在單個FPGA時鐘(40 MHz)周期內執行完成。由于是并行處理,所以易于實現多速率控制系統。因為在FPGA上的專用硬件子系統內運行控制邏輯,故在增加額外處理時,應用的運行速度不會因此降低。在許多情況下,FPGA硬件中一個軟件定義的門陣列可以用于替代一個昂貴且耗時的自定義印制電路板(PCB)布線圖。
FPGA可以以數字的方式處理非常高速的信號,并時常用于重新配置I/O模塊的功能特性。例如,一個數字輸入模塊可以用于僅讀入每條數字線的真/假狀態。另外,該同一個FPGA可以被重新配置,以執行這些數字信號的處理和測量脈寬、執行數字濾波或甚至測量來自一個積分編碼器傳感器的位置和速率信息。
基于FPGA的系統時常將運動控制和電機驅動整流集成到單個基于FPGA的控制應用中。相比之下,基于微處理器的系統通常將電機驅動整流分配給獨立的硬件,因為電機電流或扭矩控制需要較高的循環速率(通常為20 kHz)與門驅動整流信號的精確定時。
?
?
圖4.基于微處理器的控制(左)與基于FPGA的控制(右)
?
我如何利用LabVIEW FPGA模塊編程實現我的控制應用?
LabVIEW FPGA模塊支持您使用高層次的圖形化數據流編程方法,以創建您的模擬或數字控制邏輯的一個高度優化的門陣列實現。您可以使用常規的LabVIEW編程技術開發您的FPGA應用。當您以如CompacRIO機箱或R系列智能DAQ設備等FPGA硬件為目標平臺時,LabVIEW編程面板簡化為僅包含專為工作于FPGA之上而設計的函數。與傳統LabVIEW相比,其主要的編程差別在于FPGA設備使用整型算術而不是浮點算術。而且,也不存在多線程或優先權的概念,因為每個循環運行于獨立的專用硬件,并不使用共享資源,這樣使得每個循環以“時間關鍵(time critical)”的優先權并行執行。
LabVIEW FPGA面板包含廣泛的知識產權(IP)庫。下表列舉了一些用于開發基于FPGA的控制系統的關鍵功能模塊。如欲了解更多細節,敬請查閱LabVIEW FPGA模塊用戶手冊。
?
?
表1.LabVIEW FPGA中用于控制的關鍵函數
?
?
LabVEIW編譯器如何將我的圖形代碼轉換為FPGA電路?
LabVIEW FPGA模塊利用一個自動的多步驟過程,將您的LabVIEW應用編譯到FPGA硬件。在后臺,您的圖形代碼被轉化為基于文本的VHDL代碼。然后調用業界標準的Xilinx ISE編譯器工具,該VHDL代碼被優化、精簡和綜合到由LabVIEW設計的硬件電路實現。這一過程也對設計施加了定時限制,以力圖實現FPGA資源(有時稱為“結構”)的有效利用。
在FPGA編譯過程中執行了大量的優化工作,以精簡數字邏輯并創建LabVIEW應用的一個最優實現。然后,該設計被綜合至一個高度優化的硅實現,它提供了真正的并行處理能力以及專用硬件所特有的性能與可靠性。
最終結果是一個包含門陣列配置信息的比特流文件。當您運行該應用時,該比特流被加載" title="加載">加載至FPGA芯片,并用于重新配置門陣列邏輯。該比特流也可以被加載至非易逝性閃存,當目標平臺加電時被同時加載。FPGA芯片上不存在操作系統,但可以利用內置于FPGA應用的啟動邏輯鏈來開始和停止運行。
?
?
圖5.LabVIEW FPGA編譯過程
?
FPGA運行速度很快,但是更快速的循環速率如何改進控制系統的性能?
一般而言,控制系統的速率影響其性能、穩定性、健壯性和抗干擾等特性。更快速的控制系統通常更為穩定、易于調整、并不易受條件變化和干擾影響。
為提供穩定、健壯的控制,一個控制系統必須能夠測量其過程變量,并在一個固定的時段內設置傳動裝置輸出命令。可快速變化的系統(工廠車間)需要快速控制系統,以確保在可接受范圍內的可靠性能。作為一個指導原則,控制循環的速率應當至少高于系統(工廠車間)的時間常數的十倍。時間常數是系統速率的一個度量。
例如,在響應來自一個H-橋驅動裝置的24伏輸出時,DC電機的電流可能以1安培/秒的速率變化。為了精確控制電機電流,控制系統必須快速對電流進行采樣并頻繁調整傳動裝置的輸出。如欲了解更多信息,請參閱在線文檔PID嵌入式控制指南。
?
?
圖6.典型的閉環控制系統
?
NI提供哪些可用的FPGA硬件目標平臺?
?
NI提供大量用于部署基于FPGA的控制應用的高性能平臺。此部分將介紹幾個關鍵的平臺。如欲得到NI所提供的可重配置硬件目標平臺的完整列表,敬請訪問ni.com/fpga。
CompactRIO可重配置嵌入式系統是一個面向要求最高穩固性和可靠性的工業應用的小尺寸、模塊化系統。CompactRIO專為惡劣環境設計,它具有極寬的工作溫度范圍、高沖擊與振動評級和若干工業認證與評級。CompactRIO評級為海軍環境,I類,2級,適合危險場所,并提供高達2300伏的隔離。與所有來自NI的FPGA目標平臺相似,CompactRIO使用C系列工業I/O模塊,以實現與工業控制傳感器與傳動裝置的低成本直接連接。此外,世界范圍內有許多第三方廠商提供C系列I/O與通信模塊。如欲獲得關于利用CompactRIO執行控制的指南,敬請下載CompactRIO機器自動化白皮書。
?
?
圖7.CompactRIO可重配置嵌入式系統
?
NI R系列智能數據采集(DAQ)設備是面向PCI與PXI/CompactPCI總線的插入式板卡,其板上FPGA硬件用于用戶定義的信號處理與控制。多達8個模擬輸入、8個模擬輸出和160個數字I/O通道被內置于智能DAQ設備中。您也可以將一個擴展底板連接至任何一個數字端口,并添加C系列工業I/O模塊。R智能DAQ設備支持定義您自己的硬件功能特性,并為定時、觸發、同步、數字信號處理和控制提供了無限可能。
PXI R系列智能DAQ系統在工業標準PXI外型尺寸下提供FPGA的性能與可靠性。除了來自NI的智能DAQ設備,尚有來自NI與世界范圍的其他廠商的數百個非可重配置的插入式板卡可供使用。PXI系統可以啟動進入Windows或LabVIEW實時操作系統。C系列I/O模塊提供信號調理,并將儀器系統級的精度與隔離或高電流驅動能力等工業特性相結合。R系列擴展底板用于將C系列模塊連接至智能DAQ設備。如欲了解更多信息,請查看描述R系列智能DAQ設備的在線應用說明。
?
?
圖8.PXI R系列智能DAQ系統
?
PCI R系列智能DAQ系統支持您將基于FPGA的控制能力添加至任何臺式機、工控機或包含一個PCI插槽的單板卡計算機(SBC)。與所有的NI FPGA目標平臺相似,智能DAQ設備可以在上電時即刻從位于插入式板卡上的非易逝性閃存加載其比特流。NI-RIO驅動接口與R系列設備同時提供,無需額外費用,也無需運行時部署許可的費用。了解更多信息。
?
?
圖9.PCI R系列智能DAQ系統
?
NI緊湊視覺系統(Compact Vision System)是一個穩固的獨立平臺,它面向工業機器視覺與I/O應用,如機器人、自動化測試和自動化檢測等應用。所有的緊湊視覺系統均包含一個用戶可編程的FPGA,用于實現自定義的觸發器、計數器、脈寬調制(PWM)、運動與其他數字控制操作。NI緊湊視覺系統使用IEEE 1394(火線)技術可以實現與超過300個兼容攝像頭的連接。
?
?
圖10.NI緊湊視覺系統
?
如欲了解來自NI的關于可編程自動化控制器(PAC)硬件技術的更多信息,敬請訪問ni.com/pac。
?
我可以獲得怎樣的閉環控制性能?
在絕大多數情況下,FPGA的計算性能是如此之快以致控制循環的速率僅受限于傳感器、傳動裝置和I/O模塊。這一點完全不同于傳統的控制系統,因為對于傳統控制系統,其處理性能是典型的限制因素。
例如,利用R系列智能DAQ設備,離散控制應用的輸入/輸出與控制邏輯的計算,均可以利用板上的5伏TTL數字I/O線以20 MHz的控制循環速率實現。這些數字線可以在一個以25納秒速率運行的LabVIEW單周期定時循環內被訪問。通常,數量可觀的控制邏輯可以被包含在一個單周期定時循環內。
對于使用高電流C系列數字I/O模塊的24伏離散邏輯控制應用,循環速率受限于模塊的更新速率。例如,NI 9423數字輸入模塊與NI 9474數字輸出模塊均具備1微秒的更新速率,從而得到500 kHz的最大24伏離散控制性能。
在模擬過程控制應用中,控制循環速率也受限于I/O模塊的更新速率。NI 9215模擬輸入模塊與NI 9263模擬輸出模塊,提供16位精度以及10微秒更新速率下的同時采樣功能。這樣得到了50 kHz的閉環模擬過程控制性能。
?
?
圖11.循環周期時間(T)是指執行控制循環的一個周期所需的時間
Algorithm算法
?
我可以預期多少基于FPGA的控制循環中的抖動?
衡量控制系統的性能與魯棒性的一個常用尺度便是抖動,它是實際循環周期時間與期望的循環周期時間的偏差。在通用操作系統如Windows中,抖動是不受控制的,故無法確保閉環控制系統的穩定性。具有實時操作系統的基于處理器的控制系統,通常能夠確保控制循環抖動小于100微妙。
在基于FPGA的應用中,控制循環不必與其他任務共享硬件資源,而控制循環可以利用FPGA時鐘實現精確定時。基于FPGA的控制循環的抖動取決于FPGA時鐘源的精度。對于CompactRIO cRIO-910x可重配置機箱,FPGA時鐘抖動在40 MHz FPGA時鐘速率情況下僅為250皮秒(0.000000000250秒)。如欲了解更多細節,請參閱可重配置機箱產品手冊。
?
?
圖12.為確保穩定性,控制循環抖動必須是受限的
?
我是否能夠創建自定義的I/O模塊?
?
是的,NI提供了一個模塊開發工具包(MDK),使得您可以開發自定義的C系列模塊并將其連接至一個可重配置的FPGA。該工具包提供了許可權、設計導則和對通用I/O模塊節點的訪問,以創建與您的定制模塊電路的接口。此外,Electronics Workbench電路教學平臺現在提供C系列I/O模塊模板,這些模板已被預組裝并配有常見信號連接端選項。如欲了解關于自定義模塊開發的更多信息,請訪問CompactRIO技術庫。
?
?
?
圖13.Electronics Workbench電路教學平臺現提供C系列I/O模塊模板