TinyOS移植技術(shù)分析及在CC2430平臺的應(yīng)用
摘要 簡述了無線傳感器網(wǎng)絡(luò)操作系統(tǒng)及傳感器節(jié)點的基本狀況,并從設(shè)計思路、體系結(jié)構(gòu)、運行原理及編譯過程等方面詳細分析了當(dāng)前主流的操作系統(tǒng)TinyOS的主要特點。在此基礎(chǔ)上,提出了TinyOS的移植方法以及具體實現(xiàn)過程。最后,將TjnyOS成功地移植于CC2430平臺。實驗結(jié)果表明,移植后的TinyOS可以穩(wěn)定地運行于CC2430平臺,并能可靠地實現(xiàn)傳感器之間的無線組網(wǎng)。
關(guān)鍵詞 無線傳感器網(wǎng)絡(luò);TinyOS;移植;CC2430
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)由部署在監(jiān)測區(qū)域內(nèi)大量廉價微型傳感器節(jié)點組成,通過無線通信方式形成的一個網(wǎng)絡(luò)系統(tǒng),其目的是協(xié)作的感知、采集和處理網(wǎng)絡(luò)覆蓋區(qū)域中感知對象的信息,并發(fā)送給觀察者,被譽為21世紀(jì)最具影響技術(shù)之一。傳感器節(jié)點通常是一個微型的資源受限的嵌入式系統(tǒng),因此要求一個小型高效的操作系統(tǒng)管理組織硬件并完成軟件功能。
由于無線傳感器網(wǎng)絡(luò)節(jié)點的資源十分有限,傳統(tǒng)的嵌入式操作系統(tǒng)難以正常有效地運行和工作,特別對能量和內(nèi)存的需求矛盾比較突出。因此,需要一種全新的嵌入式操作系統(tǒng)來滿足無線傳感器節(jié)點的基本需求。近年來,科研機構(gòu)不斷開發(fā)出具有多種功能的WSN操作系統(tǒng)。大多數(shù)操作系統(tǒng)都使用事件驅(qū)動的編程模型,典型的有TinyOS、Contiki、EYESOS、SOS等。
TinyOS操作系統(tǒng)是美國加州大學(xué)伯克利分校的研究人員針對無線傳感器網(wǎng)絡(luò)設(shè)計的開源嵌入式操作系統(tǒng),是目前無線傳感器網(wǎng)絡(luò)采用的主流操作系統(tǒng)。TinyOS最初使用匯編和C語言編寫,但經(jīng)研究人員進一步的研究及使用后發(fā)現(xiàn),C語言并不能有效和方便地支持無線傳感器網(wǎng)絡(luò)應(yīng)用程序的開發(fā)。因而在經(jīng)過研究和設(shè)計,并在對C語言進行了一定擴展的基礎(chǔ)上,提出了支持組件化編程的nesC語言,該語言可以把組件化、模塊化思想和基于事件驅(qū)動的執(zhí)行模型結(jié)合起來,具有一些C語言無法比擬的優(yōu)點。nesC語言提出后,TinyOS操作系統(tǒng)和基于TinyOS操作系統(tǒng)的應(yīng)用程序全部使用nesC語言編寫。
1 TinyOS原理分析
1.1 簡介
TinyOS是美國加州大學(xué)伯克利分校針對無線傳感器網(wǎng)絡(luò)開發(fā)的嵌入式操作系統(tǒng),核心程序很小,對硬件要求很低,它的事件驅(qū)動機制、主動消息機制、組件化結(jié)構(gòu)等特點使其在研究中得到廣泛應(yīng)用。目前,TinyOS支持的平臺主要集中在Atmel公司的AVR系列和TI公司的MsP430系列單片機。
1.2 TinyOS的體系結(jié)構(gòu)
TinyOS體現(xiàn)結(jié)構(gòu)如圖1所示,其核心部分為TinyOS的硬件抽象3層結(jié)構(gòu)。TinyOS的硬件抽象層使系統(tǒng)的軟件和硬件完全獨立,從而使系統(tǒng)的設(shè)備驅(qū)動程序與硬件無關(guān),大大提高了系統(tǒng)的可移植性。TinyOS具有3層硬件抽象結(jié)構(gòu),并明確規(guī)定了每一層的功能,每一層都依賴于下一層提供的接口,這使得TinyOS的移植比較方便。
最底層是硬件描述層(Hardware Presentation Layer,HPL),該層提供硬件層和軟件層的直接接口,通過調(diào)用函數(shù)的方法來屏蔽復(fù)雜的硬件層,不僅實現(xiàn)了硬件層和軟件層的內(nèi)部通信,而且為系統(tǒng)其他部分提供了使用的接口。
中間層是硬件適用層(Hardware AdaptationLayer,HAL),位于HPL上層,該層對硬件層的定時器、模數(shù)轉(zhuǎn)換器、存儲器等模塊原型進行較高層的抽象,可以更直接更方便地為上層軟件層提供可定制的操作接口。
最頂層是硬件獨立層(Hardware Independent Layer,HIL),位于HAL上層,該層提供抽象的獨立硬件層接口,通過隱藏硬件層來簡化上層應(yīng)用軟件的編寫,其功能類似于Windows操作系統(tǒng)下的API。
TinyOS的3層硬件抽象結(jié)構(gòu)有很大的靈活性,具體的應(yīng)用程序可以將HAL和HIL組件結(jié)合使用,以提高代碼執(zhí)行效率和系統(tǒng)的可移植性。
評論