張 宇 ,范建華 ,呂遵明 ,王統祥
(1.中國人民解放軍理工大學 通信工程學院,江蘇 南京21007;2.南京電訊技術研究所,江蘇 南京210007)
無線傳感器網絡 WSN(Wireless Sensor Network)是一種將傳感技術與網絡通信技術結合起來的新興技術,可以使人們方便快捷地監測、采集、獲取信息,能夠滿足軍事、環境監測、環保、醫療、農業等多領域的應用需求。
無線傳感器網絡通過飛行器播撒、人工放置等方式將網絡節點任意布置在監測的區域中。典型的無線傳感器網絡由傳感器節點、匯聚節點、管理節點構成,這些節點通過自組織方式進行組網。典型傳感器節點主要由傳感器單元、數據處理單元、通信單元和電源單元組成[1-2],如圖 1所示。

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

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

圖3 節點實物圖
根據EAPR設計流程,節點的可重構功能實現主要分為以下幾個步驟。
(1)設計的劃分和實現
通過分析整個設計的功能,將其分為靜態模塊設計和可重構態模塊設計兩部分,各模塊的關系框圖如圖4所示。
頂層模塊主要進行可重構模塊和靜態模塊之間的劃分,并定義各個模塊之間的連接關系、整個設計與外部的接口和信號??芍貥嬆KPRM(Partial Reconfigurable Module)是在重構過程中進行動態加載的模塊。本設計所選取的傳感器皆為數字傳感器,因此設計PRM時,需通過HDL完成傳感器控制功能,然后根據頂層模塊的定義將傳感器控制器進行封裝。

圖4 模塊關系圖
靜態模塊SM(Static Module)是在重構過程中保持不變的部分。本設計中的靜態模塊主要功能是完成傳感器控制器讀出的傳感器數據的數據處理。靜態模塊只保留與頂層模塊和可重構模塊的接口,沒有對外的IO端口。本設計的靜態模塊主要完成數據收發模塊功能,即完成與通信模塊連接的UART接口。
(2)綜合
完成上述設計之后,利用綜合工具將完成的HDL程序進行綜合,產生網表文件。
(3)放置
主要是將綜合生產的網表文件按照設計分配至區域中。在添加約束后將各模塊分配至圖 5所示的 u1、u2區域。其中,u1對應的是靜態模塊區域 SMR(Static Module Region),u2對應的是可重構模塊區域PMR(Partial Module Region)。
(4)合成
將設計的各個部分組合起來形成完整的設計。

圖5 FPGA片內模塊布局
通信模塊采用TI的CC2530芯片,是應用于2.4 GHz的SoC解決方案,它集成了ZigBee協議棧,可作為WSN的解決方案。將CC2530作為通信模塊的核心器件,接收從FPGA內部數據后直接發送出去。
各模塊圖布線后版圖如圖6所示。其中,圖6(a)表示運行一個空的可重構模塊時FPGA內部布線情況;圖6(b)表示運行Sensor1時FPGA內部布線情況;圖6(c)表示運行Sensor2時FPGA內部布線情況。從圖中可以看出,當只加載頂層模塊時,設計只占FPGA很小一塊面積;而 Sensor1和 Sensor2運行時,頂層模塊是相同的,只有可重構模塊發生改變。使用的邏輯資源越少,功耗越低,因此可通過加載不同模塊實現休眠、Sensor1功能、Sensor2功能,盡可能地減少資源占用,降低功耗。

圖6 FPGA片內各模塊的布線
可重構配置文件與全局配置文件大小的比較如表1所示。從表中可以看出,部分可重構方式的配置文件要比全局重構配置文件小得多,表明部分可重構配置的速度更快。

表1 配置文件大小比較
本文提出了一種新的無線傳感器網絡節點結構設計方案,通過基于FPGA動態局部重構技術,利用FPGA的高效計算性能,提高了無線傳感器網絡節點的處理性能。
[1]孫亭,楊永田,李立宏.無線傳感器網絡技術發展現狀[J].電子技術應用,2006,32(6):1-5.
[2]孫利民.無線傳感器網絡[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.