??? 摘 要: 針對現(xiàn)有傳感器網(wǎng)絡" title="無線傳感器網(wǎng)絡">無線傳感器網(wǎng)絡節(jié)點控制器設計中存在功耗、芯片面積等方面的問題,,自行設計了8位哈佛結構低功耗" title="低功耗">低功耗RISC MCU作為節(jié)點控制核心,。CPU核采用兩級流水加速操作,存儲器采用分頁,、分塊和映射等方式統(tǒng)一組織,,并使用門控時鐘和休眠喚醒機制等方式實現(xiàn)MCU低功耗操作,最后采用0.18μm靜態(tài)CMOS工藝實現(xiàn)該MCU,,其工作功耗低于10mW,。以該MCU為核心實現(xiàn)了節(jié)點硬件平臺設計,組建了功能完備的無線傳感器網(wǎng)絡,。
??? 關鍵詞:? 無線傳感器網(wǎng)絡? 微控制器? 低功耗
?
??? 無線傳感器網(wǎng)絡是多學科交叉結合的產(chǎn)物,。它利用各節(jié)點的監(jiān)測數(shù)據(jù),通過自組織多跳路由網(wǎng)絡傳送至網(wǎng)關節(jié)點,通過通用通信接口傳送至網(wǎng)關計算機并接入其他通用網(wǎng)絡,,遠程的監(jiān)控終端利用通用網(wǎng)絡在監(jiān)控范圍內(nèi)實現(xiàn)對各類數(shù)據(jù)的監(jiān)測,。無線傳感器網(wǎng)絡體系結構如圖1所示。
?
?
??? 無線傳感器網(wǎng)絡節(jié)點" title="無線傳感器網(wǎng)絡節(jié)點">無線傳感器網(wǎng)絡節(jié)點按操作特性可分為四種類型[1]:專用傳感器平臺,、通用傳感器平臺,、高帶寬傳感器平臺和網(wǎng)關平臺。
??? 專用傳感器平臺側重于節(jié)點的超低功耗和體積的微型化設計,,但其處理能力和傳輸能力有限,,UC Berkeley公司的Spec和Smart Dust是這類平臺的典型代表。通用傳感器平臺對體積要求有所放寬,,側重于節(jié)點的可擴展性和測試需求,,但同樣對節(jié)點功耗有較嚴格的要求,該類型平臺中以UC Berkeley公司的Mica系列節(jié)點為主要代表,。網(wǎng)關平臺是實現(xiàn)無線傳感器網(wǎng)絡與其他類型網(wǎng)絡之間或是不同無線傳感器網(wǎng)絡之間數(shù)據(jù)交換的媒介,。
??? 由于無線傳感器網(wǎng)絡是一種典型的自組織網(wǎng)絡,其拓撲結構會隨著節(jié)點的加入,、退出或移動而改變,,各節(jié)點在網(wǎng)絡中的功能也隨之動態(tài)變化。因此,,在監(jiān)測區(qū)域中的節(jié)點都應具備充當終端節(jié)點或數(shù)據(jù)匯集節(jié)點的能力,,在硬件設計時要充分考慮不同情況下的應用環(huán)境,以滿足其功能需求,。
??? 在現(xiàn)有的各類無線傳感器網(wǎng)絡節(jié)點控制器設計中,,因為沒有針對無線傳感器網(wǎng)絡的應用開發(fā)專用的控制核心都是采用在嵌入式領域廣泛應用的一些通用處理器單元,,這使得節(jié)點設計中會受到體積、功耗,、資源等各方面的限制,。為此,本文自行設計并實現(xiàn)了一種8位哈佛結構低功耗的RISC MCU作為節(jié)點控制核心,,對節(jié)點低功耗,、微型化的設計具有現(xiàn)實意義。
1 8位哈佛結構低功耗RISC MCU設計
??? 在本設計中MCU總體采用了8位哈佛結構,,MCU硬件結構示意圖如圖2所示,。通過不同的總線對指令和數(shù)據(jù)進行操作,這種方式可降低控制電路的復雜度,,也有利于在CPU中進行流水設計,。
?
??? 在設計中,CPU采用了兩級流水,,使用兩相時鐘控制完成預取指操作,,支持24級獨立硬堆棧,用于中斷和子程序嵌套,;支持八個外部及五個內(nèi)部中斷源" title="中斷源">中斷源,;可尋址256KB外部程序ROM、4KB內(nèi)部數(shù)據(jù)RAM和128B內(nèi)部寄存器單元,;兩個采用內(nèi)部總線時鐘的帶預分頻器的定時計數(shù)器,;一個帶預分頻器的與看門狗WDT共享外部時鐘源的定時計數(shù)單元TCC;56個雙向三態(tài)I/O" title="I/O">I/O端口,,一個全雙工UART模塊和一個主模式SPI模塊與部分I/O端口復用引腳,。
1.1 MCU存儲體系設計
??? 存儲器體系結構如圖3所示。MCU外部程序存儲器采用256K×8bit結構,,實際使用時由相鄰奇偶地址單元構成128K×16bit形式,,以滿足13bit寬度指令集的需求。用于取指操作的寄存器R2(PC)為17位寬,,其中高7位用作程序存儲器128個頁面的尋址,,低10位用于頁內(nèi)尋址,寄存器R5存儲當前工作頁面地址,,由指令解碼器判定并操作向R2的傳遞,,這種尋址方式有利于物理結構上同樣采用分頁形式的Flash存儲器的操作。
?
?
??? MCU片內(nèi)存儲器包括4KB數(shù)據(jù)RAM,、128B通用寄存器RAM和其他特殊寄存器,。為減小CPU的直接尋址范圍和滿足固定短字長指令集的使用,,各存儲器采用了分頁(Page),、分塊(Bank)和映像的統(tǒng)一組織方式,。
??? 特殊寄存器包括MCU各模塊寄存器和I/O寄存器,各模塊寄存器分為4頁,,I/O寄存器分為2頁,,使用寄存器R3進行頁面的切換操作。由于寄存器并不完全占用所有地址空間,,暫缺的部分留作以后擴展,;128B的通用寄存器RAM分為4個塊,每塊32B,。使用寄存器R4進行塊切換操作,,雖然采用了分塊的結構,但仍然設計了直接和間接兩種尋址方式,,以提高其操作靈活度,。該部分空間主要由程序中變量使用,而分塊的結構在節(jié)省地址空間的同時也增強了各函數(shù)間的變量保護機制,,有利于嵌入式操作系統(tǒng)的應用,;4KB數(shù)據(jù)RAM被映像到分頁的數(shù)據(jù)寄存器之中,通過16位寬的地址接口和8位寬的數(shù)據(jù)接口進行存取操作,,極大地縮小了直接尋址空間,。
??? 目前這種存儲器組織方式的缺點是會增加一些數(shù)據(jù)存取的開銷,但在運算負荷并不重的節(jié)點系統(tǒng)中基本不會影響其性能,,并且可以在編譯器層次針對這種結構對代碼進行優(yōu)化,。而其優(yōu)點是簡化了CPU的硬件結構,顯著減小了節(jié)點體積和功耗,。從總體上來看對節(jié)點系統(tǒng)構造是有利的,。
1.2 MCU中斷系統(tǒng)設計
??? MCU中共有八個外部中斷源和五個內(nèi)部中斷源。每個中斷源都設置有獨立的中斷標志寄存器和中斷屏蔽寄存器,,并在CPU核內(nèi)設置有中斷允許寄存器位I作為總中斷控制開關,,所有中斷源都是可關斷的。
??? 八個外部中斷源與端口PORT7復用引腳,,其中P7.7可設定上升沿或下降沿觸發(fā)模式,,以滿足不同外設接口的需要,其余七個中斷輸入引腳只能由下降沿觸發(fā),。
??? 五個內(nèi)部中斷源分別來自TCC,、COUNTER1、COUNTER2,、UART和SPI模塊,。TCC模塊利用與看門狗相同的外部獨立時鐘源進行計數(shù)/計時操作,通過預分頻器設置不同的時鐘分頻比,,可靈活地設置觸發(fā)周期,,為操作系統(tǒng)進行時間片的劃分提供基本硬件支持,;COUNTER1和COUNTER2采用內(nèi)部總線時鐘計數(shù),除基本的計數(shù)和定時功能外,,還可將其與外部中斷引腳配合實現(xiàn)輸入捕捉或輸出比較功能,;UART和SPI模塊的中斷主要用于通信服務程序。
2 設計中的低功耗考慮
??? 由于無線傳感器網(wǎng)絡的應用特點決定其設計必須圍繞低功耗進行,,作為節(jié)點控制核心的MCU,,其低功耗設計也相當重要[2-4]。
??? 在目前以靜態(tài)CMOS設計為主的集成電路中,,其功耗的主要部分是電路的開關功耗,,或者叫動態(tài)功耗,它來源于對負載電容的充放電電流,。其他的功耗來源包括短路功耗,、靜態(tài)功耗和漏電流功耗,它們只占系統(tǒng)功耗的小部分,,且主要由芯片制造工藝決定,,在此不作討論。
??? 系統(tǒng)動態(tài)功耗可由下式[5]決定:
???
式中,,α為反映電路開關活動幾率的因子,,f為系統(tǒng)工作頻率,CL為輸出節(jié)點的集總負載電容,,VDD為系統(tǒng)工作電壓,。從式(1)可以看出,系統(tǒng)動態(tài)功耗與電路開關活動幾率、系統(tǒng)工作頻率和總負載電容以及系統(tǒng)工作電壓的平方成正比,。因此,,在設計中主要從系統(tǒng)層次和邏輯層次的幾個方面進行低功耗考慮。
2.1 工作電壓和頻率
??? 在工作電壓方面主要考慮了無線傳感器網(wǎng)絡節(jié)點的供電特點和外圍接口電源特性,,選用3.3V作為工作電壓,。在工作頻率方面既考慮了系統(tǒng)事務的處理速度又考慮了與外圍設備的接口速度,故選取4MHz作為系統(tǒng)總線時鐘頻率,。
2.2 電路規(guī)模
??? 在電路規(guī)模方面主要考慮減小邏輯門數(shù)量以降低系統(tǒng)總負載電容,,因此設計中采用了哈佛結構的精簡指令集CPU。該CPU共支持58條精簡指令,,每條指令固定長度為13bit,,有效減小了CPU核的規(guī)模和存儲體系規(guī)模。位于MCU中的其他接口功能模塊,,如UART,、SPI、通用I/O接口等,都采用了獨立IP的組成形式,,可以根據(jù)需求很方便地進行功能裁減,,以達到對嵌入式環(huán)境的最佳適應。在CPU核的設計中還采用了兩相時鐘流水,,主要用于提高CPU的順序取指執(zhí)行速度,。采用這種方式可以在同等總線時鐘頻率和同樣的工作負荷情況下減少CPU的工作時間,,從系統(tǒng)層次上即減小了CPU的工作占空比,,降低了電路開關活動幾率因子,因此可以達到降低功耗的目的,。
2.3 時鐘控制
??? 在時鐘控制方面主要采用了門控時鐘和休眠喚醒機制,。
??? 門控時鐘主要采用使能信號控制各獨立模塊和電路的時鐘信號來源,可靈活地開啟和關閉各觸發(fā)器的翻轉(zhuǎn)以達到降低功耗的目的,。該功能主要為軟件提供寄存器級接口,,由操作系統(tǒng)根據(jù)其環(huán)境控制各硬件模塊的工作狀況。例如,,UART模塊主要用于網(wǎng)關節(jié)點與外部網(wǎng)絡的溝通,,終端節(jié)點并不需要用到它,因此在終端節(jié)點軟件設計中可以將其完全關閉,,使該部分達到零動態(tài)功耗,,從而降低系統(tǒng)總耗能。這種方式也可以看作是系統(tǒng)的部分休眠,。
??? 休眠喚醒機制的基本原理是關閉系統(tǒng)中暫時不使用的部分,,甚至包括CPU的核心模塊,以降低系統(tǒng)總體的能源消耗,。在該MCU中設計了全速工作模式working和兩種低功耗休眠模式sleep1,、sleep2,在這兩種休眠模式下都會關閉系統(tǒng)主時鐘,,但其喚醒方式和程序運行模式有所不同,。
??? 通過執(zhí)行SLEP指令即可將MCU切換至sleep1模式,該模式可以使用看門狗復位或外部復位信號來恢復工作狀態(tài),?;謴蛍orking模式后系統(tǒng)會重啟并重新開始執(zhí)行程序,以前的信息將會丟失,,其效果與系統(tǒng)上電復位相同,。因此,這種方式僅適合于系統(tǒng)長時間休眠且喚醒后系統(tǒng)重新工作的情況,;要進入sleep2模式只需要將寄存器RA中的SLPC位置位即可,。該模式與sleep1的主要區(qū)別是可以使用中斷信號喚醒CPU并且繼續(xù)執(zhí)行休眠前的程序,不會丟失任何信息。這種方式在無線傳感器網(wǎng)絡中大量使用,,因為MCU的工作時間遠遠小于節(jié)點信息采集和系統(tǒng)組網(wǎng)等操作的時間間隔,,所以在操作系統(tǒng)中即可充分利用這種模式以降低MCU的工作占空比。
??? 系統(tǒng)工作狀態(tài)轉(zhuǎn)換圖如圖4所示,。
?
?
3 MCU的驗證和實現(xiàn)
????在該MCU的設計中主要使用了ModelSim,、DC、Astro等工具,,進行了多層次的仿真和驗證,。對于中斷事件的響應、處理和返回也進行了詳細驗證,,在中斷服務程序的調(diào)用及返回過程中,,各級堆棧和系統(tǒng)狀態(tài)的處理都符合設計要求;在對系統(tǒng)休眠喚醒的設計中,,對兩種休眠狀態(tài)與正常工作狀態(tài)之間的轉(zhuǎn)換和多種條件的系統(tǒng)喚醒均作了詳細驗證,,均達到設計要求。
??? 除進行軟硬件協(xié)同仿真以外,,還使用FPGA平臺對MCU及節(jié)點系統(tǒng)的功能進行了實際驗證,。本設計采用ALTERA公司的CYCLONE系列EP1C12Q240芯片作為驗證核心,外接Chipcon公司的CC2420芯片作為射頻接口,,利用MAXIM公司的MAX152模數(shù)轉(zhuǎn)換芯片連接定制的溫度傳感器,,構造了無線傳感器網(wǎng)絡節(jié)點硬件平臺,在該平臺上成功移植了TinyOS嵌入式操作系統(tǒng),,實現(xiàn)了對環(huán)境溫度的采集處理,、射頻模塊的操作以及多跳自組織網(wǎng)絡的構造,并通過網(wǎng)關節(jié)點匯集監(jiān)測區(qū)域信息數(shù)據(jù)利用IPv6網(wǎng)絡傳遞至監(jiān)控終端,,實現(xiàn)無線傳感器網(wǎng)絡的典型功能應用,。
??? 在對MCU進行充分驗證后,使用Astro等工具以0.18um靜態(tài)CMOS工藝進行了后端設計,、仿真并投片生產(chǎn),。經(jīng)后端仿真及驗證,MCU在工作模式下峰值功耗低于10mW,,滿足設計要求,。目前的設計中MCU共占用3mm×3mm的硅片面積,但實際的邏輯及存儲部分僅占1/3左右,,主要原因是保留了較多暫時未用的引腳及測試引腳,,增加了設計周長?;贔PGA平臺的節(jié)點控制器如圖5所示,。
?
??? 本設計采用典型的無線傳感器網(wǎng)絡節(jié)點架構,,利用自行設計的8位哈佛結構低功耗RISC MCU作為節(jié)點控制核心,開發(fā)出屬于通用傳感器平臺類型的原型版本節(jié)點,。由于使用了流水機制,,加快了CPU的操作速度,并且在電路設計使用了門控時鐘和休眠喚醒機制,,使節(jié)點工作功耗得到了有效控制,。最后利用移植的TinyOS操作系統(tǒng)和多跳自組織路由協(xié)議成功實現(xiàn)了無線傳感器網(wǎng)絡功能,達到了設計要求,。
參考文獻
[1] JASON H, MIKE H, RALPH K, et al. The platforms enabling wireless sensor networks[J]. Communication of the ?ACM, 2004,47(6):41-46.
[2] ?張大蹤,楊濤,巍東海. 無線傳感器網(wǎng)絡低功耗設計綜述[J]. 傳感器與微系統(tǒng),2006,25(5):10-14.
[3] ?楊喜敏. 傳感器網(wǎng)絡中的能量消耗問題研究[J]. 微控制器與嵌入式系統(tǒng),2006,(1):27-29.
[4] ?JASON H, ROBERT S, ALEC W, et al. System architecture directions for networked sensors[C]. In: ACM Press,?ACM AIGARCH Computer Architecture News. 1515 Broadway, 17th Floor New York, NY USA, 2000,28(5): 93-104.
[5] ?甘學溫,莫邦燹.低功耗CMOS邏輯電路設計綜述[J].微電子學, 2000,30(4):263-267.