概覽
現(xiàn)場(chǎng)可編程門陣列(FPGA)技術(shù)提供了專用硬件電路所特有的可靠性,、真正的并行執(zhí)行和閃電般的快速閉環(huán)控制" title="閉環(huán)控制">閉環(huán)控制性能,。本文給出了關(guān)于可重配置" title="可重配置">可重配置的基于FPGA的硬件目標(biāo)平臺(tái)在閉環(huán)控制應(yīng)用中使用的常見(jiàn)問(wèn)題(FAQ)的解答。
?
圖1.NI CompactRIO是一個(gè)小而堅(jiān)固的基于FPGA的控制系統(tǒng)
?
什么是現(xiàn)場(chǎng)可編程門陣列(FPGA),?
一個(gè)FPGA是一種包含有一個(gè)可重配置的門陣列邏輯電路矩陣的設(shè)備,。通過(guò)配置,F(xiàn)PGA的內(nèi)部電路以一定方式相連接,,從而創(chuàng)建了軟件應(yīng)用的一個(gè)硬件實(shí)現(xiàn),。與處理器不同,F(xiàn)PGA使用專用硬件進(jìn)行邏輯處理,,而不具有操作系統(tǒng),。FPGA在本質(zhì)上是完全并行的,故不同的處理操作不必競(jìng)爭(zhēng)相同的資源,。因此,,增加額外的處理時(shí),應(yīng)用某一部分的性能不會(huì)受影響,。而且,,多個(gè)控制循環(huán)可以以不同的速率在單個(gè)FPGA設(shè)備上運(yùn)行?;贔PGA的控制系統(tǒng)" title="控制系統(tǒng)">控制系統(tǒng)可以加強(qiáng)關(guān)鍵互鎖邏輯,,也可以通過(guò)設(shè)計(jì)防止操作人員強(qiáng)奪I/O" title="I/O">I/O。然而,,不同于擁有固定硬件資源的硬連接的印制電路板(PCB)設(shè)計(jì),,基于FPGA的系統(tǒng)可以完全重新連接其內(nèi)部電路,以支持控制系統(tǒng)在現(xiàn)場(chǎng)部署后可以重新配置,。FPGA設(shè)備提供了專用硬件電路所特有的性能與可靠性,。
單個(gè)FPGA可以通過(guò)在單個(gè)集成電路(IC)芯片上集成數(shù)百萬(wàn)個(gè)邏輯門以代替數(shù)以千計(jì)的分立元件。一個(gè)FPGA芯片的內(nèi)部資源包括一個(gè)被I/O組塊環(huán)圍的可配置邏輯組塊(CLB)矩陣,。在FPGA矩陣內(nèi),,信號(hào)通過(guò)可編程的互連開(kāi)關(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)勢(shì),,最終得到的高度優(yōu)化硅實(shí)現(xiàn)可以支持真正的并行處理,。由于FPGA芯片上不存在操作系統(tǒng),所以代碼實(shí)現(xiàn)方式確保了最優(yōu)的性能與可靠性,。
除了提供高可靠性,,F(xiàn)PGA設(shè)備還可以以極快的循環(huán)速率執(zhí)行確定性的閉環(huán)控制。對(duì)于大多數(shù)基于FPGA的控制應(yīng)用,,其速率受限于傳感器,、傳動(dòng)裝置和I/O模塊,而不是FPGA的處理性能,。例如,,包含在LabVIEW FPGA模塊中的比例積分微分(PID)控制算法以300納秒(0.000000300秒)的速率運(yùn)行。PID控制常用于模擬過(guò)程數(shù)值的調(diào)節(jié),,如壓力,、溫度、作用力,、位移,、流體流動(dòng)或電流等。
?
?
圖3.在LabVIEW FPGA中執(zhí)行PID控制
?
基于FPGA的控制系統(tǒng)提供速率超過(guò)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)的處理和測(cè)量脈寬,、執(zhí)行數(shù)字濾波或甚至測(cè)量來(lái)自一個(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ù)開(kāi)發(fā)您的FPGA應(yīng)用,。當(dāng)您以如CompacRIO機(jī)箱或R系列智能DAQ設(shè)備等FPGA硬件為目標(biāo)平臺(tái)時(shí),LabVIEW編程面板簡(jiǎn)化為僅包含專為工作于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)庫(kù)。下表列舉了一些用于開(kāi)發(fā)基于FPGA的控制系統(tǒng)的關(guān)鍵功能模塊,。如欲了解更多細(xì)節(jié),,敬請(qǐng)查閱LabVIEW FPGA模塊用戶手冊(cè)。
?
?
表1.LabVIEW FPGA中用于控制的關(guān)鍵函數(shù)
?
?
LabVEIW編譯器如何將我的圖形代碼轉(zhuǎn)換為FPGA電路,?
LabVIEW FPGA模塊利用一個(gè)自動(dòng)的多步驟過(guò)程,,將您的LabVIEW應(yīng)用編譯到FPGA硬件。在后臺(tái),,您的圖形代碼被轉(zhuǎn)化為基于文本的VHDL代碼,。然后調(diào)用業(yè)界標(biāo)準(zhǔn)的Xilinx ISE編譯器工具,該VHDL代碼被優(yōu)化,、精簡(jiǎn)和綜合到由LabVIEW設(shè)計(jì)的硬件電路實(shí)現(xiàn),。這一過(guò)程也對(duì)設(shè)計(jì)施加了定時(shí)限制,以力圖實(shí)現(xiàn)FPGA資源(有時(shí)稱為“結(jié)構(gòu)”)的有效利用,。
在FPGA編譯過(guò)程中執(zhí)行了大量的優(yōu)化工作,,以精簡(jiǎn)數(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)邏輯鏈來(lái)開(kāi)始和停止運(yùn)行,。
?
?
圖5.LabVIEW FPGA編譯過(guò)程
?
FPGA運(yùn)行速度很快,,但是更快速的循環(huán)速率如何改進(jìn)控制系統(tǒng)的性能?
一般而言,,控制系統(tǒng)的速率影響其性能,、穩(wěn)定性、健壯性和抗干擾等特性,。更快速的控制系統(tǒng)通常更為穩(wěn)定,、易于調(diào)整、并不易受條件變化和干擾影響,。
為提供穩(wěn)定,、健壯的控制,一個(gè)控制系統(tǒng)必須能夠測(cè)量其過(guò)程變量,,并在一個(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)來(lái)自一個(gè)H-橋驅(qū)動(dòng)裝置的24伏輸出時(shí),,DC電機(jī)的電流可能以1安培/秒的速率變化,。為了精確控制電機(jī)電流,控制系統(tǒng)必須快速對(duì)電流進(jìn)行采樣并頻繁調(diào)整傳動(dòng)裝置的輸出,。如欲了解更多信息,,請(qǐ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)的完整列表,,敬請(qǐng)?jiān)L問(wèn)ni.com/fpga,。
CompactRIO可重配置嵌入式系統(tǒng)是一個(gè)面向要求最高穩(wěn)固性和可靠性的工業(yè)應(yīng)用的小尺寸,、模塊化系統(tǒng)。CompactRIO專為惡劣環(huán)境設(shè)計(jì),,它具有極寬的工作溫度范圍,、高沖擊與振動(dòng)評(píng)級(jí)和若干工業(yè)認(rèn)證與評(píng)級(jí)。CompactRIO評(píng)級(jí)為海軍環(huán)境,,I類,,2級(jí),適合危險(xiǎn)場(chǎng)所,,并提供高達(dá)2300伏的隔離,。與所有來(lái)自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í)行控制的指南,敬請(qǐng)下載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)處理和控制提供了無(wú)限可能。
PXI R系列智能DAQ系統(tǒng)在工業(yè)標(biāo)準(zhǔn)PXI外型尺寸下提供FPGA的性能與可靠性,。除了來(lái)自NI的智能DAQ設(shè)備,,尚有來(lái)自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è)備,。如欲了解更多信息,,請(qǐng)查看描述R系列智能DAQ設(shè)備的在線應(yīng)用說(shuō)明。
?
?
圖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í)提供,,無(wú)需額外費(fèi)用,,也無(wú)需運(yùn)行時(shí)部署許可的費(fèi)用。了解更多信息,。
?
?
圖9.PCI R系列智能DAQ系統(tǒng)
?
NI緊湊視覺(jué)系統(tǒng)(Compact Vision System)是一個(gè)穩(wěn)固的獨(dú)立平臺(tái),,它面向工業(yè)機(jī)器視覺(jué)與I/O應(yīng)用,如機(jī)器人,、自動(dòng)化測(cè)試和自動(dòng)化檢測(cè)等應(yīng)用,。所有的緊湊視覺(jué)系統(tǒng)均包含一個(gè)用戶可編程的FPGA,用于實(shí)現(xiàn)自定義的觸發(fā)器,、計(jì)數(shù)器,、脈寬調(diào)制(PWM)、運(yùn)動(dòng)與其他數(shù)字控制操作,。NI緊湊視覺(jué)系統(tǒng)使用IEEE 1394(火線)技術(shù)可以實(shí)現(xiàn)與超過(guò)300個(gè)兼容攝像頭的連接,。
?
?
圖10.NI緊湊視覺(jué)系統(tǒng)
?
如欲了解來(lái)自NI的關(guān)于可編程自動(dòng)化控制器(PAC)硬件技術(shù)的更多信息,敬請(qǐng)?jiān)L問(wèn)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)閷?duì)于傳統(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)被訪問(wèn),。通常,,數(shù)量可觀的控制邏輯可以被包含在一個(gè)單周期定時(shí)循環(huán)內(nèi)。
對(duì)于使用高電流C系列數(shù)字I/O模塊的24伏離散邏輯控制應(yīng)用,,循環(huán)速率受限于模塊的更新速率,。例如,NI 9423數(shù)字輸入模塊與NI 9474數(shù)字輸出模塊均具備1微秒的更新速率,,從而得到500 kHz的最大24伏離散控制性能,。
在模擬過(guò)程控制應(yīng)用中,控制循環(huán)速率也受限于I/O模塊的更新速率。NI 9215模擬輸入模塊與NI 9263模擬輸出模塊,,提供16位精度以及10微秒更新速率下的同時(shí)采樣功能,。這樣得到了50 kHz的閉環(huán)模擬過(guò)程控制性能。
?
?
圖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)是不受控制的,,故無(wú)法確保閉環(huán)控制系統(tǒng)的穩(wěn)定性。具有實(shí)時(shí)操作系統(tǒng)的基于處理器的控制系統(tǒng),,通常能夠確??刂蒲h(huán)抖動(dòng)小于100微妙。
在基于FPGA的應(yīng)用中,,控制循環(huán)不必與其他任務(wù)共享硬件資源,,而控制循環(huán)可以利用FPGA時(shí)鐘實(shí)現(xiàn)精確定時(shí)?;贔PGA的控制循環(huán)的抖動(dòng)取決于FPGA時(shí)鐘源的精度,。對(duì)于CompactRIO cRIO-910x可重配置機(jī)箱,F(xiàn)PGA時(shí)鐘抖動(dòng)在40 MHz FPGA時(shí)鐘速率情況下僅為250皮秒(0.000000000250秒),。如欲了解更多細(xì)節(jié),請(qǐng)參閱可重配置機(jī)箱產(chǎn)品手冊(cè),。
?
?
圖12.為確保穩(wěn)定性,,控制循環(huán)抖動(dòng)必須是受限的
?
我是否能夠創(chuàng)建自定義的I/O模塊?
?
是的,,NI提供了一個(gè)模塊開(kāi)發(fā)工具包(MDK),,使得您可以開(kāi)發(fā)自定義的C系列模塊并將其連接至一個(gè)可重配置的FPGA。該工具包提供了許可權(quán),、設(shè)計(jì)導(dǎo)則和對(duì)通用I/O模塊節(jié)點(diǎn)的訪問(wèn),,以創(chuàng)建與您的定制模塊電路的接口。此外,,Electronics Workbench電路教學(xué)平臺(tái)現(xiàn)在提供C系列I/O模塊模板,,這些模板已被預(yù)組裝并配有常見(jiàn)信號(hào)連接端選項(xiàng)。如欲了解關(guān)于自定義模塊開(kāi)發(fā)的更多信息,,請(qǐng)訪問(wèn)CompactRIO技術(shù)庫(kù),。
?
?
?
圖13.Electronics Workbench電路教學(xué)平臺(tái)現(xiàn)提供C系列I/O模塊模板