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