張 宇 ,范建華 ,呂遵明 ,王統(tǒng)祥
(1.中國人民解放軍理工大學(xué) 通信工程學(xué)院,江蘇 南京21007;2.南京電訊技術(shù)研究所,江蘇 南京210007)
無線傳感器網(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é)點(diǎn)任意布置在監(jiān)測的區(qū)域中。典型的無線傳感器網(wǎng)絡(luò)由傳感器節(jié)點(diǎn)、匯聚節(jié)點(diǎn)、管理節(jié)點(diǎn)構(gòu)成,這些節(jié)點(diǎn)通過自組織方式進(jìn)行組網(wǎng)。典型傳感器節(jié)點(diǎn)主要由傳感器單元、數(shù)據(jù)處理單元、通信單元和電源單元組成[1-2],如圖 1所示。
圖1 典型無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)結(jié)構(gòu)
通常情況下,無線傳感器網(wǎng)絡(luò)主要應(yīng)用于數(shù)據(jù)速率較低、對數(shù)據(jù)處理需求不高的場景。因此,對于此類應(yīng)用,基于微處理器的傳統(tǒng)無線傳感器節(jié)點(diǎn)即可滿足對計算和處理性能的需求。另一方面,不同的應(yīng)用場景對更強(qiáng)勁處理能力的節(jié)點(diǎn)要求越來越強(qiáng)烈[3]。例如,音頻視頻數(shù)據(jù)以及數(shù)據(jù)的加密處理等都需要提高節(jié)點(diǎn)的處理能力。
使用高性能的處理器可以顯著提升無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的處理能力。FPGA擁有媲美專用集成電路ASIC的運(yùn)算性能,同時,由于FPGA具有靈活的特點(diǎn),使得FPGA應(yīng)用于多個領(lǐng)域取得了很好的效果。另外,基于FPGA的動態(tài)局部重構(gòu)技術(shù)也為FPGA更加靈活同時更好地控制芯片能耗提供了一種方法?;谝陨咸攸c(diǎn),可重構(gòu)FPGA可以作為處理器來構(gòu)建新型無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)。
FPGA是在可編程器件的基礎(chǔ)上發(fā)展起來的。目前,商用FPGA一般是基于SRAM技術(shù)的查找表結(jié)構(gòu),通過對FPGA芯片內(nèi)部SRAM編程配置查找表,實(shí)現(xiàn)具體的功能。
FPGA開發(fā)的一般流程為:設(shè)計、綜合、布局布線生成比特流文件,然后下載FPGA執(zhí)行。當(dāng)需要實(shí)現(xiàn)不同功能時,重新進(jìn)行上述流程并下載生成的新的比特流文件即可。FPGA的動態(tài)局部重構(gòu)是指對FPGA的部分區(qū)域進(jìn)行實(shí)時重配置,在此過程中其余部分不受影響。動態(tài)局部可重構(gòu)技術(shù)對提高系統(tǒng)集成度、增強(qiáng)系統(tǒng)靈活性、提升容錯能力,同時降低系統(tǒng)成本和功耗具有重要的實(shí)際意義。
FPGA動態(tài)局部重構(gòu)有多種實(shí)現(xiàn)方法,例如JBits[4]、基于模塊化設(shè)計[5]、基于差別化設(shè)計的實(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)運(yùn)行中保持靜態(tài)區(qū)域加載靜態(tài)模塊不變,可重構(gòu)區(qū)域加載可重構(gòu)模塊完成系統(tǒng)功能。
根據(jù)無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的結(jié)構(gòu)及動態(tài)局部重構(gòu)技術(shù)的需要,設(shè)計了基于FPGA動態(tài)局部重構(gòu)無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn),功能框圖如圖2所示,其中心部分是一個可以提供動態(tài)可重構(gòu)功能的FPGA,圍繞著這個核心器件部署傳感器模塊、通信模塊和電源模塊。
圖2 可重構(gòu)WSN節(jié)點(diǎn)結(jié)構(gòu)框圖
傳感器模塊是無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)中最主要的功能部分,它將感知對象的信息通過處理轉(zhuǎn)化成處理器可以識別的信息形式。本設(shè)計中的傳感器模塊提供多個不同類型的傳感器接口,通過ADC轉(zhuǎn)換后與處理模塊相連。傳感器的控制主要通過FPGA內(nèi)部建立相應(yīng)的控制器實(shí)現(xiàn)。
數(shù)據(jù)處理單元是無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的核心部分,主要提供三方面的功能。
(1)傳感器控制和數(shù)據(jù)處理
FPGA內(nèi)部邏輯的可編程特性使其可以方便地通過硬件描述語言(HDL)實(shí)現(xiàn)對傳感器的控制。為了保證傳感器節(jié)點(diǎn)的可擴(kuò)展性,同時使各傳感器更易于接入部分動態(tài)可重構(gòu)控制模塊,將傳感器控制器封裝成具有相同數(shù)據(jù)輸出格式的模塊。在傳感器控制器后端,可根據(jù)需要構(gòu)建數(shù)據(jù)處理模塊。傳感器數(shù)據(jù)總線控制器通過數(shù)據(jù)線與數(shù)據(jù)處理模塊相連。
(2)部分動態(tài)可重構(gòu)控制
部分可重構(gòu)功能是處理模塊的主要特點(diǎn)。根據(jù)FPGA動態(tài)局部重構(gòu)的實(shí)現(xiàn)方法,需要在FPGA芯片內(nèi)部劃分出靜態(tài)區(qū)域和可重構(gòu)區(qū)域。依據(jù)EAPR設(shè)計流程完成動態(tài)局部重構(gòu)設(shè)計,在可重構(gòu)區(qū)域內(nèi)通過控制加載不同的功能模塊實(shí)現(xiàn)部分可重構(gòu)功能。
(3)數(shù)據(jù)收發(fā)控制
數(shù)據(jù)收發(fā)控制主要完成與數(shù)據(jù)收發(fā)模塊的接口功能。通過在FPGA內(nèi)部建立控制邏輯完成,將處理模塊處理好的數(shù)據(jù)發(fā)送至通信模塊,同時接收從通信模塊返回的數(shù)據(jù)。
通信模塊通常由無線收發(fā)模塊組成,完成節(jié)點(diǎn)之間的通信。基于藍(lán)牙、ZigBee等技術(shù)射頻集成芯片一般可以滿足數(shù)據(jù)收發(fā)模塊的功能需求。
電源模塊是傳感器節(jié)點(diǎn)的能量供應(yīng)部分,完成對整個節(jié)點(diǎn)的電源支持。根據(jù)應(yīng)用場景和需求,一般可通過各類電池或固定電源供應(yīng)模塊來滿足要求。
根據(jù)圖2所示的功能框圖,選擇了氣溫傳感器和氣壓傳感器,以Xilinx的Virtex-5系列FPGA作為處理模塊,數(shù)據(jù)收發(fā)模塊采用CC2530完成。節(jié)點(diǎn)實(shí)物圖如圖3所示。
圖3 節(jié)點(diǎn)實(shí)物圖
根據(jù)EAPR設(shè)計流程,節(jié)點(diǎn)的可重構(gòu)功能實(shí)現(xiàn)主要分為以下幾個步驟。
(1)設(shè)計的劃分和實(shí)現(xiàn)
通過分析整個設(shè)計的功能,將其分為靜態(tài)模塊設(shè)計和可重構(gòu)態(tài)模塊設(shè)計兩部分,各模塊的關(guān)系框圖如圖4所示。
頂層模塊主要進(jìn)行可重構(gòu)模塊和靜態(tài)模塊之間的劃分,并定義各個模塊之間的連接關(guān)系、整個設(shè)計與外部的接口和信號??芍貥?gòu)模塊PRM(Partial Reconfigurable Module)是在重構(gòu)過程中進(jìn)行動態(tài)加載的模塊。本設(shè)計所選取的傳感器皆為數(shù)字傳感器,因此設(shè)計PRM時,需通過HDL完成傳感器控制功能,然后根據(jù)頂層模塊的定義將傳感器控制器進(jìn)行封裝。
圖4 模塊關(guān)系圖
靜態(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程序進(jìn)行綜合,產(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è)計。
圖5 FPGA片內(nèi)模塊布局
通信模塊采用TI的CC2530芯片,是應(yīng)用于2.4 GHz的SoC解決方案,它集成了ZigBee協(xié)議棧,可作為WSN的解決方案。將CC2530作為通信模塊的核心器件,接收從FPGA內(nèi)部數(shù)據(jù)后直接發(fā)送出去。
各模塊圖布線后版圖如圖6所示。其中,圖6(a)表示運(yùn)行一個空的可重構(gòu)模塊時FPGA內(nèi)部布線情況;圖6(b)表示運(yùn)行Sensor1時FPGA內(nèi)部布線情況;圖6(c)表示運(yùn)行Sensor2時FPGA內(nèi)部布線情況。從圖中可以看出,當(dāng)只加載頂層模塊時,設(shè)計只占FPGA很小一塊面積;而 Sensor1和 Sensor2運(yùn)行時,頂層模塊是相同的,只有可重構(gòu)模塊發(fā)生改變。使用的邏輯資源越少,功耗越低,因此可通過加載不同模塊實(shí)現(xiàn)休眠、Sensor1功能、Sensor2功能,盡可能地減少資源占用,降低功耗。
圖6 FPGA片內(nèi)各模塊的布線
可重構(gòu)配置文件與全局配置文件大小的比較如表1所示。從表中可以看出,部分可重構(gòu)方式的配置文件要比全局重構(gòu)配置文件小得多,表明部分可重構(gòu)配置的速度更快。
表1 配置文件大小比較
本文提出了一種新的無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)結(jié)構(gòu)設(shè)計方案,通過基于FPGA動態(tài)局部重構(gòu)技術(shù),利用FPGA的高效計算性能,提高了無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的處理性能。
[1]孫亭,楊永田,李立宏.無線傳感器網(wǎng)絡(luò)技術(shù)發(fā)展現(xiàn)狀[J].電子技術(shù)應(yīng)用,2006,32(6):1-5.
[2]孫利民.無線傳感器網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,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.