摘 要: 提出了一種基于FPGA動態(tài)局部重構(gòu)技術(shù)的無線傳感器網(wǎng)絡(luò)節(jié)點設(shè)計方案,通過FPGA高效的計算能力來提高節(jié)點的處理能力,同時采用動態(tài)局部重構(gòu)技術(shù)進行功耗控制。根據(jù)所提方案進行了硬件平臺的設(shè)計,并在此平臺上對可重構(gòu)的流程及實現(xiàn)方法進行了驗證。實驗結(jié)果表明,該方案能夠?qū)崿F(xiàn)無線傳感器網(wǎng)絡(luò)節(jié)點的部分可重構(gòu),在減小功耗的同時具有較強的運算能力。
關(guān)鍵詞: 無線傳感器網(wǎng)絡(luò);現(xiàn)場可編程門陣列;動態(tài)局部重構(gòu)
無線傳感器網(wǎng)絡(luò)WSN(Wireless Sensor Network)是一種將傳感技術(shù)與網(wǎng)絡(luò)通信技術(shù)結(jié)合起來的新興技術(shù),可以使人們方便快捷地監(jiān)測、采集、獲取信息,能夠滿足軍事、環(huán)境監(jiān)測、環(huán)保、 醫(yī)療、農(nóng)業(yè)等多領(lǐng)域的應(yīng)用需求。
無線傳感器網(wǎng)絡(luò)通過飛行器播撒、人工放置等方式將網(wǎng)絡(luò)節(jié)點任意布置在監(jiān)測的區(qū)域中。典型的無線傳感器網(wǎng)絡(luò)由傳感器節(jié)點、匯聚節(jié)點、管理節(jié)點構(gòu)成,這些節(jié)點通過自組織方式進行組網(wǎng)。典型傳感器節(jié)點主要由傳感器單元、數(shù)據(jù)處理單元、通信單元和電源單元組成[1-2],如圖1所示。
通常情況下,無線傳感器網(wǎng)絡(luò)主要應(yīng)用于數(shù)據(jù)速率較低、對數(shù)據(jù)處理需求不高的場景。因此,對于此類應(yīng)用,基于微處理器的傳統(tǒng)無線傳感器節(jié)點即可滿足對計算和處理性能的需求。另一方面,不同的應(yīng)用場景對更強勁處理能力的節(jié)點要求越來越強烈[3]。例如,音頻視頻數(shù)據(jù)以及數(shù)據(jù)的加密處理等都需要提高節(jié)點的處理能力。
使用高性能的處理器可以顯著提升無線傳感器網(wǎng)絡(luò)節(jié)點的處理能力。FPGA擁有媲美專用集成電路ASIC的運算性能,同時,由于FPGA具有靈活的特點,使得FPGA應(yīng)用于多個領(lǐng)域取得了很好的效果。另外,基于FPGA的動態(tài)局部重構(gòu)技術(shù)也為FPGA更加靈活同時更好地控制芯片能耗提供了一種方法?;谝陨咸攸c,可重構(gòu)FPGA可以作為處理器來構(gòu)建新型無線傳感器網(wǎng)絡(luò)節(jié)點。
1 FPGA動態(tài)局部重構(gòu)技術(shù)及實現(xiàn)方法
FPGA是在可編程器件的基礎(chǔ)上發(fā)展起來的。目前,商用FPGA一般是基于SRAM技術(shù)的查找表結(jié)構(gòu),通過對FPGA芯片內(nèi)部SRAM編程配置查找表,實現(xiàn)具體的功能。
FPGA開發(fā)的一般流程為:設(shè)計、綜合、布局布線生成比特流文件,然后下載FPGA執(zhí)行。當需要實現(xiàn)不同功能時,重新進行上述流程并下載生成的新的比特流文件即可。FPGA的動態(tài)局部重構(gòu)是指對FPGA的部分區(qū)域進行實時重配置,在此過程中其余部分不受影響。動態(tài)局部可重構(gòu)技術(shù)對提高系統(tǒng)集成度、增強系統(tǒng)靈活性、提升容錯能力,同時降低系統(tǒng)成本和功耗具有重要的實際意義。
FPGA動態(tài)局部重構(gòu)有多種實現(xiàn)方法,例如JBits[4]、基于模塊化設(shè)計[5]、基于差別化設(shè)計的實現(xiàn)方法[6]、EAPR(Early Access Partial Reconfiguration)[7]等。其中, EAPR是比較常見的方法。在設(shè)計時將整個設(shè)計根據(jù)不同的功能劃分成不同的模塊,包括靜態(tài)模塊和可重構(gòu)模塊;同時在FPGA內(nèi)部劃分出靜態(tài)區(qū)域和可重構(gòu)區(qū)域。在系統(tǒng)運行中保持靜態(tài)區(qū)域加載靜態(tài)模塊不變,可重構(gòu)區(qū)域加載可重構(gòu)模塊完成系統(tǒng)功能。
2 設(shè)計方案
根據(jù)無線傳感器網(wǎng)絡(luò)節(jié)點的結(jié)構(gòu)及動態(tài)局部重構(gòu)技術(shù)的需要,設(shè)計了基于FPGA動態(tài)局部重構(gòu)無線傳感器網(wǎng)絡(luò)節(jié)點,功能框圖如圖2所示,其中心部分是一個可以提供動態(tài)可重構(gòu)功能的FPGA,圍繞著這個核心器件部署傳感器模塊、 通信模塊和電源模塊。
2.1 傳感器模塊
傳感器模塊是無線傳感器網(wǎng)絡(luò)節(jié)點中最主要的功能部分,它將感知對象的信息通過處理轉(zhuǎn)化成處理器可以識別的信息形式。本設(shè)計中的傳感器模塊提供多個不同類型的傳感器接口,通過ADC轉(zhuǎn)換后與處理模塊相連。傳感器的控制主要通過FPGA內(nèi)部建立相應(yīng)的控制器實現(xiàn)。
2.2 數(shù)據(jù)處理模塊
數(shù)據(jù)處理單元是無線傳感器網(wǎng)絡(luò)節(jié)點的核心部分,主要提供三方面的功能。
(1)傳感器控制和數(shù)據(jù)處理
FPGA內(nèi)部邏輯的可編程特性使其可以方便地通過硬件描述語言(HDL)實現(xiàn)對傳感器的控制。為了保證傳感器節(jié)點的可擴展性,同時使各傳感器更易于接入部分動態(tài)可重構(gòu)控制模塊,將傳感器控制器封裝成具有相同數(shù)據(jù)輸出格式的模塊。在傳感器控制器后端,可根據(jù)需要構(gòu)建數(shù)據(jù)處理模塊。傳感器數(shù)據(jù)總線控制器通過數(shù)據(jù)線與數(shù)據(jù)處理模塊相連。
(2)部分動態(tài)可重構(gòu)控制
部分可重構(gòu)功能是處理模塊的主要特點。根據(jù)FPGA動態(tài)局部重構(gòu)的實現(xiàn)方法,需要在FPGA芯片內(nèi)部劃分出靜態(tài)區(qū)域和可重構(gòu)區(qū)域。依據(jù)EAPR設(shè)計流程完成動態(tài)局部重構(gòu)設(shè)計,在可重構(gòu)區(qū)域內(nèi)通過控制加載不同的功能模塊實現(xiàn)部分可重構(gòu)功能。
(3)數(shù)據(jù)收發(fā)控制
數(shù)據(jù)收發(fā)控制主要完成與數(shù)據(jù)收發(fā)模塊的接口功能。通過在FPGA內(nèi)部建立控制邏輯完成,將處理模塊處理好的數(shù)據(jù)發(fā)送至通信模塊,同時接收從通信模塊返回的數(shù)據(jù)。
2.3 通信模塊
通信模塊通常由無線收發(fā)模塊組成,完成節(jié)點之間的通信?;谒{牙、ZigBee等技術(shù)射頻集成芯片一般可以滿足數(shù)據(jù)收發(fā)模塊的功能需求。
2.4 電源模塊
電源模塊是傳感器節(jié)點的能量供應(yīng)部分,完成對整個節(jié)點的電源支持。根據(jù)應(yīng)用場景和需求,一般可通過各類電池或固定電源供應(yīng)模塊來滿足要求。
3 FPGA動態(tài)局部可重構(gòu)無線傳感器節(jié)點實現(xiàn)
3.1 硬件實現(xiàn)
根據(jù)圖2所示的功能框圖,選擇了氣溫傳感器和氣壓傳感器,以Xilinx的Virtex-5系列FPGA作為處理模塊,數(shù)據(jù)收發(fā)模塊采用CC2530完成。節(jié)點實物圖如圖3所示。
3.2 動態(tài)局部可重構(gòu)功能的實現(xiàn)
根據(jù)EAPR設(shè)計流程,節(jié)點的可重構(gòu)功能實現(xiàn)主要分為以下幾個步驟。
(1)設(shè)計的劃分和實現(xiàn)
通過分析整個設(shè)計的功能,將其分為靜態(tài)模塊設(shè)計和可重構(gòu)態(tài)模塊設(shè)計兩部分,各模塊的關(guān)系框圖如圖4所示。
頂層模塊主要進行可重構(gòu)模塊和靜態(tài)模塊之間的劃分,并定義各個模塊之間的連接關(guān)系、整個設(shè)計與外部的接口和信號。可重構(gòu)模塊PRM(Partial Reconfigurable Module)是在重構(gòu)過程中進行動態(tài)加載的模塊。本設(shè)計所選取的傳感器皆為數(shù)字傳感器,因此設(shè)計PRM時,需通過HDL完成傳感器控制功能,然后根據(jù)頂層模塊的定義將傳感器控制器進行封裝。
靜態(tài)模塊SM(Static Module)是在重構(gòu)過程中保持不變的部分。本設(shè)計中的靜態(tài)模塊主要功能是完成傳感器控制器讀出的傳感器數(shù)據(jù)的數(shù)據(jù)處理。靜態(tài)模塊只保留與頂層模塊和可重構(gòu)模塊的接口,沒有對外的IO端口。本設(shè)計的靜態(tài)模塊主要完成數(shù)據(jù)收發(fā)模塊功能,即完成與通信模塊連接的UART接口。
(2)綜合
完成上述設(shè)計之后,利用綜合工具將完成的HDL程序進行綜合,產(chǎn)生網(wǎng)表文件。
(3)放置
主要是將綜合生產(chǎn)的網(wǎng)表文件按照設(shè)計分配至區(qū)域中。在添加約束后將各模塊分配至圖5所示的u1、u2區(qū)域。其中,u1對應(yīng)的是靜態(tài)模塊區(qū)域SMR(Static Module Region),u2對應(yīng)的是可重構(gòu)模塊區(qū)域PMR(Partial Module Region)。
(4)合成
將設(shè)計的各個部分組合起來形成完整的設(shè)計。
3.3 通信模塊實現(xiàn)
通信模塊采用TI的CC2530芯片,是應(yīng)用于2.4 GHz的SoC解決方案,它集成了ZigBee協(xié)議棧,可作為WSN的解決方案。將CC2530作為通信模塊的核心器件,接收從FPGA內(nèi)部數(shù)據(jù)后直接發(fā)送出去。
3.4 實驗結(jié)果
各模塊圖布線后版圖如圖6所示。其中,圖6(a)表示運行一個空的可重構(gòu)模塊時FPGA內(nèi)部布線情況;圖6(b)表示運行Sensor1時FPGA內(nèi)部布線情況;圖6(c)表示運行Sensor2時FPGA內(nèi)部布線情況。從圖中可以看出,當只加載頂層模塊時,設(shè)計只占FPGA很小一塊面積;而Sensor1和Sensor2運行時,頂層模塊是相同的,只有可重構(gòu)模塊發(fā)生改變。使用的邏輯資源越少,功耗越低,因此可通過加載不同模塊實現(xiàn)休眠、Sensor1功能、Sensor2功能,盡可能地減少資源占用,降低功耗。
可重構(gòu)配置文件與全局配置文件大小的比較如表1所示。從表中可以看出,部分可重構(gòu)方式的配置文件要比全局重構(gòu)配置文件小得多,表明部分可重構(gòu)配置的速度更快。
本文提出了一種新的無線傳感器網(wǎng)絡(luò)節(jié)點結(jié)構(gòu)設(shè)計方案,通過基于FPGA動態(tài)局部重構(gòu)技術(shù),利用FPGA的高效計算性能,提高了無線傳感器網(wǎng)絡(luò)節(jié)點的處理性能。
參考文獻
[1] 孫亭,楊永田,李立宏.無線傳感器網(wǎng)絡(luò)技術(shù)發(fā)展現(xiàn)狀[J].電子技術(shù)應(yīng)用,2006,32(6):1-5.
[2] 孫利民.無線傳感器網(wǎng)絡(luò)[M].北京:清華大學出版社,2005.
[3] DE LA PIEDRA A,BRAEKEN A,TOUHAFI A.Sensor systems based on FPGAs and their applications:a survey[J].Sensors,2012,12(9):12235-12264.
[4] GUCCIONE S A,LEVI D.Jbits:a java-based interface to fpga hardware[J].Xilinx Inc,San Jose,CA,1998.
[5] Xilinx Corp.Difference-Based Partial Reconfiguration.2012.[2014-01-25].http://www.xilinx.com.
[6] Xilinx Corp.Partial Reconfiguration of Xilinx FPGAs Using ISE Design Suite.2012[2014-01-25].http://www.xilinx.com.
[7] Xilinx Corp.Early Access Partial Reconfiguration User Guide.2012.[2014-01-25]http://www.xilinx.com.