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