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