摘 要: 提出了一種基于FPGA動態(tài)局部重構技術的無線傳感器網(wǎng)絡節(jié)點設計方案,通過FPGA高效的計算能力來提高節(jié)點的處理能力,同時采用動態(tài)局部重構技術進行功耗控制。根據(jù)所提方案進行了硬件平臺的設計,并在此平臺上對可重構的流程及實現(xiàn)方法進行了驗證。實驗結果表明,該方案能夠實現(xiàn)無線傳感器網(wǎng)絡節(jié)點的部分可重構,在減小功耗的同時具有較強的運算能力。
關鍵詞: 無線傳感器網(wǎng)絡;現(xiàn)場可編程門陣列;動態(tài)局部重構
無線傳感器網(wǎng)絡WSN(Wireless Sensor Network)是一種將傳感技術與網(wǎng)絡通信技術結合起來的新興技術,可以使人們方便快捷地監(jiān)測、采集、獲取信息,能夠滿足軍事、環(huán)境監(jiān)測、環(huán)保、 醫(yī)療、農業(yè)等多領域的應用需求。
無線傳感器網(wǎng)絡通過飛行器播撒、人工放置等方式將網(wǎng)絡節(jié)點任意布置在監(jiān)測的區(qū)域中。典型的無線傳感器網(wǎng)絡由傳感器節(jié)點、匯聚節(jié)點、管理節(jié)點構成,這些節(jié)點通過自組織方式進行組網(wǎng)。典型傳感器節(jié)點主要由傳感器單元、數(shù)據(jù)處理單元、通信單元和電源單元組成[1-2],如圖1所示。

通常情況下,無線傳感器網(wǎng)絡主要應用于數(shù)據(jù)速率較低、對數(shù)據(jù)處理需求不高的場景。因此,對于此類應用,基于微處理器的傳統(tǒng)無線傳感器節(jié)點即可滿足對計算和處理性能的需求。另一方面,不同的應用場景對更強勁處理能力的節(jié)點要求越來越強烈[3]。例如,音頻視頻數(shù)據(jù)以及數(shù)據(jù)的加密處理等都需要提高節(jié)點的處理能力。
使用高性能的處理器可以顯著提升無線傳感器網(wǎng)絡節(jié)點的處理能力。FPGA擁有媲美專用集成電路ASIC的運算性能,同時,由于FPGA具有靈活的特點,使得FPGA應用于多個領域取得了很好的效果。另外,基于FPGA的動態(tài)局部重構技術也為FPGA更加靈活同時更好地控制芯片能耗提供了一種方法?;谝陨咸攸c,可重構FPGA可以作為處理器來構建新型無線傳感器網(wǎng)絡節(jié)點。
1 FPGA動態(tài)局部重構技術及實現(xiàn)方法
FPGA是在可編程器件的基礎上發(fā)展起來的。目前,商用FPGA一般是基于SRAM技術的查找表結構,通過對FPGA芯片內部SRAM編程配置查找表,實現(xiàn)具體的功能。
FPGA開發(fā)的一般流程為:設計、綜合、布局布線生成比特流文件,然后下載FPGA執(zhí)行。當需要實現(xiàn)不同功能時,重新進行上述流程并下載生成的新的比特流文件即可。FPGA的動態(tài)局部重構是指對FPGA的部分區(qū)域進行實時重配置,在此過程中其余部分不受影響。動態(tài)局部可重構技術對提高系統(tǒng)集成度、增強系統(tǒng)靈活性、提升容錯能力,同時降低系統(tǒng)成本和功耗具有重要的實際意義。
FPGA動態(tài)局部重構有多種實現(xiàn)方法,例如JBits[4]、基于模塊化設計[5]、基于差別化設計的實現(xiàn)方法[6]、EAPR(Early Access Partial Reconfiguration)[7]等。其中, EAPR是比較常見的方法。在設計時將整個設計根據(jù)不同的功能劃分成不同的模塊,包括靜態(tài)模塊和可重構模塊;同時在FPGA內部劃分出靜態(tài)區(qū)域和可重構區(qū)域。在系統(tǒng)運行中保持靜態(tài)區(qū)域加載靜態(tài)模塊不變,可重構區(qū)域加載可重構模塊完成系統(tǒng)功能。
2 設計方案
根據(jù)無線傳感器網(wǎng)絡節(jié)點的結構及動態(tài)局部重構技術的需要,設計了基于FPGA動態(tài)局部重構無線傳感器網(wǎng)絡節(jié)點,功能框圖如圖2所示,其中心部分是一個可以提供動態(tài)可重構功能的FPGA,圍繞著這個核心器件部署傳感器模塊、 通信模塊和電源模塊。

2.1 傳感器模塊
傳感器模塊是無線傳感器網(wǎng)絡節(jié)點中最主要的功能部分,它將感知對象的信息通過處理轉化成處理器可以識別的信息形式。本設計中的傳感器模塊提供多個不同類型的傳感器接口,通過ADC轉換后與處理模塊相連。傳感器的控制主要通過FPGA內部建立相應的控制器實現(xiàn)。
2.2 數(shù)據(jù)處理模塊
數(shù)據(jù)處理單元是無線傳感器網(wǎng)絡節(jié)點的核心部分,主要提供三方面的功能。
(1)傳感器控制和數(shù)據(jù)處理
FPGA內部邏輯的可編程特性使其可以方便地通過硬件描述語言(HDL)實現(xiàn)對傳感器的控制。為了保證傳感器節(jié)點的可擴展性,同時使各傳感器更易于接入部分動態(tài)可重構控制模塊,將傳感器控制器封裝成具有相同數(shù)據(jù)輸出格式的模塊。在傳感器控制器后端,可根據(jù)需要構建數(shù)據(jù)處理模塊。傳感器數(shù)據(jù)總線控制器通過數(shù)據(jù)線與數(shù)據(jù)處理模塊相連。
(2)部分動態(tài)可重構控制
部分可重構功能是處理模塊的主要特點。根據(jù)FPGA動態(tài)局部重構的實現(xiàn)方法,需要在FPGA芯片內部劃分出靜態(tài)區(qū)域和可重構區(qū)域。依據(jù)EAPR設計流程完成動態(tài)局部重構設計,在可重構區(qū)域內通過控制加載不同的功能模塊實現(xiàn)部分可重構功能。
(3)數(shù)據(jù)收發(fā)控制
數(shù)據(jù)收發(fā)控制主要完成與數(shù)據(jù)收發(fā)模塊的接口功能。通過在FPGA內部建立控制邏輯完成,將處理模塊處理好的數(shù)據(jù)發(fā)送至通信模塊,同時接收從通信模塊返回的數(shù)據(jù)。
2.3 通信模塊
通信模塊通常由無線收發(fā)模塊組成,完成節(jié)點之間的通信?;谒{牙、ZigBee等技術射頻集成芯片一般可以滿足數(shù)據(jù)收發(fā)模塊的功能需求。
2.4 電源模塊
電源模塊是傳感器節(jié)點的能量供應部分,完成對整個節(jié)點的電源支持。根據(jù)應用場景和需求,一般可通過各類電池或固定電源供應模塊來滿足要求。
3 FPGA動態(tài)局部可重構無線傳感器節(jié)點實現(xiàn)
3.1 硬件實現(xiàn)
根據(jù)圖2所示的功能框圖,選擇了氣溫傳感器和氣壓傳感器,以Xilinx的Virtex-5系列FPGA作為處理模塊,數(shù)據(jù)收發(fā)模塊采用CC2530完成。節(jié)點實物圖如圖3所示。

3.2 動態(tài)局部可重構功能的實現(xiàn)
根據(jù)EAPR設計流程,節(jié)點的可重構功能實現(xiàn)主要分為以下幾個步驟。
(1)設計的劃分和實現(xiàn)
通過分析整個設計的功能,將其分為靜態(tài)模塊設計和可重構態(tài)模塊設計兩部分,各模塊的關系框圖如圖4所示。

頂層模塊主要進行可重構模塊和靜態(tài)模塊之間的劃分,并定義各個模塊之間的連接關系、整個設計與外部的接口和信號??芍貥嬆KPRM(Partial Reconfigurable Module)是在重構過程中進行動態(tài)加載的模塊。本設計所選取的傳感器皆為數(shù)字傳感器,因此設計PRM時,需通過HDL完成傳感器控制功能,然后根據(jù)頂層模塊的定義將傳感器控制器進行封裝。
靜態(tài)模塊SM(Static Module)是在重構過程中保持不變的部分。本設計中的靜態(tài)模塊主要功能是完成傳感器控制器讀出的傳感器數(shù)據(jù)的數(shù)據(jù)處理。靜態(tài)模塊只保留與頂層模塊和可重構模塊的接口,沒有對外的IO端口。本設計的靜態(tài)模塊主要完成數(shù)據(jù)收發(fā)模塊功能,即完成與通信模塊連接的UART接口。
(2)綜合
完成上述設計之后,利用綜合工具將完成的HDL程序進行綜合,產(chǎn)生網(wǎng)表文件。
(3)放置

主要是將綜合生產(chǎn)的網(wǎng)表文件按照設計分配至區(qū)域中。在添加約束后將各模塊分配至圖5所示的u1、u2區(qū)域。其中,u1對應的是靜態(tài)模塊區(qū)域SMR(Static Module Region),u2對應的是可重構模塊區(qū)域PMR(Partial Module Region)。
(4)合成
將設計的各個部分組合起來形成完整的設計。
3.3 通信模塊實現(xiàn)
通信模塊采用TI的CC2530芯片,是應用于2.4 GHz的SoC解決方案,它集成了ZigBee協(xié)議棧,可作為WSN的解決方案。將CC2530作為通信模塊的核心器件,接收從FPGA內部數(shù)據(jù)后直接發(fā)送出去。
3.4 實驗結果

各模塊圖布線后版圖如圖6所示。其中,圖6(a)表示運行一個空的可重構模塊時FPGA內部布線情況;圖6(b)表示運行Sensor1時FPGA內部布線情況;圖6(c)表示運行Sensor2時FPGA內部布線情況。從圖中可以看出,當只加載頂層模塊時,設計只占FPGA很小一塊面積;而Sensor1和Sensor2運行時,頂層模塊是相同的,只有可重構模塊發(fā)生改變。使用的邏輯資源越少,功耗越低,因此可通過加載不同模塊實現(xiàn)休眠、Sensor1功能、Sensor2功能,盡可能地減少資源占用,降低功耗。

可重構配置文件與全局配置文件大小的比較如表1所示。從表中可以看出,部分可重構方式的配置文件要比全局重構配置文件小得多,表明部分可重構配置的速度更快。
本文提出了一種新的無線傳感器網(wǎng)絡節(jié)點結構設計方案,通過基于FPGA動態(tài)局部重構技術,利用FPGA的高效計算性能,提高了無線傳感器網(wǎng)絡節(jié)點的處理性能。
參考文獻
[1] 孫亭,楊永田,李立宏.無線傳感器網(wǎng)絡技術發(fā)展現(xiàn)狀[J].電子技術應用,2006,32(6):1-5.
[2] 孫利民.無線傳感器網(wǎng)絡[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.
