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