999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

開源無線傳感器網絡操作系統MansOS研究

2013-10-10 01:57:04王家兵吳洪明楊志剛
單片機與嵌入式系統應用 2013年6期
關鍵詞:用戶

王家兵,吳洪明,楊志剛

(1.重慶交通大學 圖書館,重慶400074;2.重慶交通大學 應用技術學院;3.重慶交通大學 機電與汽車工程學院)

引 言

無線傳感器網絡操作系統(WSNOS)在構建高效、安全可靠、可擴展、分布式無線傳感器網絡(WSN)時起著核心作用。由于WSN節點往往處于苛刻的工作環境,計算能力、內存、功率等資源相對有限,難以采用傳統操作系統和嵌入式操作系統。目前有TinyOS、Contiki、MANTIS、LiteOS、Nano-RK、t-Kernel等各種 WSNOS[1-3],人們特別是對 TinyOS[4]、Contiki[5]、Mantis[6]研究較多。這些 WSNOS各有優勢,但也存在一些不足,如TinyOS采用nesC語言,學習曲線長;Contiki、Mantis支持的硬件平臺較少。近年來,拉脫維亞大學(University of Latvia)相關機構研發的開源移動代理網狀傳感器網絡操作系統 Mans-OS[7-9](Mobile agent netted sensor Operating System),其研究和發展相當活躍,在野生動物監控[10]、道路狀況監測[11]、環境監測[12]等實際應用中獲得了良好的效果。本文對MansOS的架構、相關特性及應用方法進行了分析、研究,供廣大WSNOS研究與使用者參考。

1 MansOS體系結構與特性

1.1 體系結構

MansOS采用模塊化分層設計,劃分為三層:硬件表示層(Hardware Presentation Layer,HPL)、硬件抽象層(Hardware Abstraction Layer,HAL)和 硬 件 接 口 層(Hardware Interface Layer,HIL),體系結構如圖1所示。其中最底層HPL是與硬件直接進行交互,定義了芯片等低級硬件的相關服務;中間層HAL包含了特定硬件平臺和擴展模塊相關代碼,完成芯片選擇、引腳分配和平臺參數設定等功能;最上層HIL定義了設備驅動與設備管理,為應用提供統一的、平臺無關的資源訪問服務。其體系結構分離出了芯片相關、架構相關、平臺相關、平臺獨立幾個層面的功能。MansOS沒有采用傳統操作系統單一、嚴格獨立的硬件抽象層,而允許用戶直接訪問所有層面功能,以更好利用特定的硬件設備,提高效率和靈活性,同時保持易于移植、代碼量小。

圖1 MansOS體系結構[13]

MansOS整個源碼文件目錄如圖2所示,hil文件夾為硬件接口層,對用戶提供LED、ADC、USART、Sleep、無線通信以及傳感器等平臺無關的統一應用程序接口;kernel文件夾為操作系統核心,包含設備管理、系統引導、系統調用支持等;chips文件夾為硬件表示層芯片相關代碼,包含各個微處理器與設備驅動;arch文件夾為 MSP430、AVR等架構相關代碼,platforms文件夾為Arduino、TelosB等平臺相關代碼,I/O引腳、功能函數、與平臺和架構相關常量也在arch與platform層定義。

圖2 MansOS源碼文件目錄

1.2 MansOS關鍵技術與特性

1.2.1 內核設計

MansOS內核設計為支持事件驅動與多線程兩種應用執行模式。系統啟動時調用initPlatform()進行平臺初始化并完成常用組件初始化,然后根據不同執行模式,調用不同函數。事件驅動模式下,由于GCC不支持執行main()函數后的事件響應,所以采用調用appMain()函數來代替main函數。多線程模式下,初始化完畢直接調用main()函數,再創建核心線程和用戶線程兩個線程。

默認情形MansOS采用事件驅動模式。事件驅動模式的優點是大量功能由中斷子程序實現,應用程序簡潔,代碼量小,只需管理一個堆棧,無需多線程時復雜的內存管理,節省RAM占用量。不利的是,整個程序設計流程難以在代碼中反映,給程序編寫及調試帶來難度;另外,中斷嵌套要求整個操作系統代碼可重入,中斷子程序執行時間太長可能導致系統阻塞。事件驅動模式下,應用程序中需注冊回調函數,編寫相應的回調函數代碼,在主程序中通過調用sleep()進入低功耗省電模式。

對于線程模式,MansOS采用了核心線程與用戶線程層次式設計。核心線程負責系統事務處理,具有高優先級別,用戶線程可以中斷其他用戶線程,但不能中斷核心線程,有多個用戶線程時則采用時間片輪轉法和優化級兩種算法進行調度。MansOS采用了信號量機制以實現線程同步,用堆棧檢測來防止堆棧溢出。通過各線程主循環中調用sleep(),在主線程及用戶線程均不活動時,系統進入省電模式。

1.2.2 文件系統

MansOS設計了一個接口類似UNIX的簡單文件系統,把物理Flash芯片抽象為邏輯文件,并提供了各種基本的文件操作命令,使得用MansOS構造的無線傳感器節點能對采集到的數據進行保存和記錄。

MansOS文件系統把Flash芯片分成內存段和固定大小的數據塊。一個內存段是可一次擦除的最小內存單元,含多個數據塊,數據塊的大小可以選定,一個文件由一系列的數據塊鏈接而成,這使得文件的大小可以動態地分配。各個數據塊所在段、已使用、未使用、可擦除等標識信息組成一個塊表,保存在EEPROM中。各文件的文件名、第一個數據塊號、文件大小等信息也保存在EEPROM中。MansOS文件系統采用單級目錄,數據只可追加,不可改寫,整個文件系統代碼小而管理簡單有效。

1.2.3 組件化設計與裁減機制

另外,在交通組織過程中,還需要融入交通綜合性以及交通科學性發展的目標,以充分利用原有交通設置為宗旨,保證最好的改擴建效果。根據項目實際情況,選擇最合理的施工方案,保證施工結果可以滿足實際安全需要。

為有效解決應用WSNOS時可能發生的目標代碼大、資源利用率低的問題,MansOS采用組件化的設計模式,以組件配置與選用來實現核心程序裁減。傳統桌面操作系統一般采用動態創建、動態終止線程與進程,資源受限的WSNOS一般采用靜態編譯。MansOS采用編譯時對組件進行充分選配,使運行時再次配置的情況最少,目標應用代碼達到最小。極端情況下,用戶甚至可把整個OS作為常用函數庫來使用。

內核裁減方面,MansOS通過編譯時交互與非交互兩部分來完成。交互部分由配置文件實現,用戶在系統默認配置模板基礎上進行平臺相關、架構相關、應用相關的配置,定義組件間包含、互斥關系;非交互部分是GCC與GNU binutils等編譯工具自動完成的代碼優化、無關代碼剔除等操作。

1.2.4 運行時管理與無線再編程支持

MansOS提供了一個命令行界面(shell)供用戶進行運行時的管理,其基于簡單系統消息協議(Simple System Message Protocol,SSMP),以廣播或單播的形式對整個網絡中可到達的節點進行管理。shell可采用交互形式,也可在腳本中執行。

無線再編程使無線傳感器網絡能進行節點代碼遠程更新,使應用開發、部署及維護更具靈活性。MansOS實現了一個有效的無線再編程機制,把整個無線再編程分為4個階段,各階段內容及實現方法如表1所列。

表1 MansOS無線再編程實現流程

應用無線再編程時,節點自舉后,引導程序會下載代碼替換原OS映像文件,完成OS映像文件更新。MansOS引導程序引入了檢測系統是否正確引導機制,多次引導失敗時,會自動重新加載上次OS映像,以防止無線再編程失敗時節點不可管理的現象發生。為節省更新時間和功耗,MansOS把代碼分成了用戶代碼段與核心代碼段,無線再編程可選擇對用戶代碼段或核心代碼段進行部分更新。實際應用中,無線再編程會引起節點代碼量增加,存在每次更新花費時間較長等問題,應根據具體情況選用。

1.2.5 可移植性與通信協議支持

為了能容易移植到各種處理器架構,MansOS采用了平臺與代碼盡可能獨立的設計,并且內含MSP430、Atmel AVR以及PC架構源碼,可直接應用于Arduino Duemilanove(ATmega328PMCU)、Tmote Sky(MSP430F1611 MCU)、AdvanticSYS XM1000(MSP430F261MCU)以及Zolertia Z1(MSP430F2617MCU)等平臺。MansOS對UART、SPI、I2C總線等通信提供了平臺獨立的統一應用程序接口,使外圍設備的驅動可應用于不同平臺,只在進行編譯時再鏈接具體的實現子程序庫即可。無線通信方面,MansOS支持IEEE 802.15.4兼容無線組網,如2.4G ZigBee,并采用uIPv6實現對IPv6協議棧的支持。

1.3 MansOS與其他WSNOS對比

MansOS發展源于LiteOS,架構上融入了Contiki、MANTIS的一些優點,使其在易用性、可裁剪性、目標代碼大小以及平臺可移植等方面均有良好表現。相比Tiny-OS,MansOS采用C語言,代碼更易編寫、理解和管理;相比Contiki,MansOS的組件化設計與裁剪機制使資源利用更合理,生成目標代碼更小;相比Mantis,MansOS把線程分為核心線程和用戶線程,且核心線程總優先于用戶線程,使線程調度更簡單;相比LiteOS,MansOS分離出了架構相關、平臺相關代碼,可移植性更好。

表2為TinyOS、Contiki、MANTI、LiteOS、MansOS在各性能方面的對比。

2 MansOS應用開發

2.1 開發環境

MansOS相關應用的開發需在Linux環境下進行交叉編譯鏈接,或在Windows平臺下,用Cygwin或 MinGW與MSYS進行。開發環境構建包括源碼下載安裝、編譯器和編譯工具安裝等方面內容。

MansOS的源碼可由http://code.google.com/p/mansos/下載[14],也可采用SVN從http://mansos.net/svn/mansos/獲取最新源碼。

編譯器和編譯工具安裝應根據目標平臺架構,選用對應的編譯器。對于 MSP430平臺,采用 MSP430MCU GCC工具鏈,可從http://mspgcc.sourceforge.net下載,包括 gcc-msp430、msp430-libc、binutils-msp430等。對于ATMega328PMCU 的 Arduino Duemillanove等 Atmega平臺,采用 AVR-GCC工具鏈,包括gcc-avr、avr-libc、binutils-avr、avrdude等,可 從 http://www.nongnu.org/avrlibc/查到相關說明文檔及下載。

MansOS開發環境還需要常規的UNIX命令行工具,如make等。另外,由于MansOS采用了Python腳本完成目標代碼鏈接,需安裝好Python。

實際工程應用開發中還有對應的目標板,如Tmote Sky、Arduino Duemillanove控制板等,在沒實際目標板時,僅可用MansOS內建的PC仿真平臺進行初步仿真。

2.2 典型應用程序設計

典型的 MansOS應用一般包括config、Makefile、main.c三個文件。config是應用配置文件,包括MansOS組件的選配、編譯常量以及MCU型號、CPU主頻等相關定義;Makefile為GNU make使用文件,用于為各種架構生成目標代碼及上載代碼到目標板;main.c為應用程序C源碼文件。MansOS在apps/demo文件夾提供了一系列基本應用、傳感器應用、無線通信應用以及設備驅動等源碼示例,供開發者參考。開發應用時,編寫好config、Make-file、main.c文件,再運行make完成編譯、鏈接及目標代碼下載到目標板。一個MansOS簡單應用的main.c源碼如下:

表2 操作系統性能對比

2.3 調試與測試方法

MansOS應用程序的調試與測試功能通常可用PRINTF、PRINT及PRINTLN函數來實現。默認情形下,對應的輸出發送到串口,通過監聽串口輸出可得到相關的信息。Linux下可采用minicom,Windows下可采用putty,監聽前先設置好串口:波特率38 400,數據位8位,停止位1位,無校驗,無流控制。MansOS也提供了一個python腳本(mos/pc/tools/dumpserial/dumpser.py)用于串口監聽,另外,通過應用配置文件中設置CONST_DPRINT_TO_RADIO=1,可改變串口輸出到無線通信端口,在有LCD時,相關信息也可發送到LCD上顯示。

MansOS提供了一個命令行工具(mansos/pc/shell),可通過串口或無線通信進行WSN節點的控制和配置,包括所有節點列表、讀傳感器值、設置傳感器、重啟、下載代碼、上載代碼等操作。對于MSP430MCU的傳感器板,MansOS還支持使用mspsim工具進行調試。

結 語

利用WSNOS結合成熟硬件平臺來部署和實現各種應用,部署快速,編程簡潔,同時滿足穩定、低功耗等要求,是WSN重要的發展方向。

MansOS作為一款功能齊全、可移植性強、易于使用的開源WSNOS,具有巨大的發展潛力。

MansOS從2007年開始發展,目前仍處于從研究走向實際應用的階段,不斷進行著更新,一些特性仍在實際應用中進行測試、研究和改進。如開發環境方面,其集成開發環境在功能及適用性方面仍存在很多不足,需作大量的改進以更好地支持實際工程的仿真、部署和測試;另外,需進一步開發以支持更多種硬件平臺及無線通信協議,特別是在目前WSN與云計算整合的發展趨勢下,如能考慮添加與云計算平臺的融合,則能實現更多、更強大的應用。

[1]劉金娟.無線傳感器網絡協議及操作系統研究[D].淮南:安徽理工大學,2009.

[2]Thang Vu Chien,Hung Nguyen Chan,Thanh Nguyen Huu.A comparative study on operating system for Wireless Sensor Networks[C]//Proceedings of International Conference on Advance Computer Science and Information System 2011(ICACSIS 2011).Indonesia Jakarta:IEEE eXpress Conference Publishing,2011:73-78.

[3]Farooq M O,Kunz T.Operating Systems for Wireless Sensor Networks:A Survey [J].Sensors 2011,11(6):5900-5930.

[4]段海龍,楊麗,任淑艷,等.無線傳感器網絡操作系統TinyOS的研究與實例開發[J].科技通報,2012,28(4):200-202.

[5]冀宇鑫,楊冬,秦雅娟,等.基于 WSNs平臺的Contiki通用移植方法研究[J].計算機技術與發展,2012,22(11):134-137.

[6]劉莉,黃海平.基于MantisOS的無線傳感器網絡應用開發模型[J].信息技術,2010(6):127-129.

[7]MansOS[EB/OL].[2013-01].http://mansos.edi.lv.

[8]G Strazdins,A Elsts,L Selavo.MansOS:easy to use,portable and resource efficient operating system for networked embedded devices[C]//Proceedings of the 8th ACM Conference on Embedded Networked Sensor Systems(SenSys'10).New York:ACM,2010:427-428.

[9]A Elsts,G Strazdins,A Vihrov,et al.Design and Implementation of MansOS:a Wireless Sensor Network Operating System[J].Scientific Papers University of Latvia,2012,787:79-105.

[10]R Zviedris,A Elsts,G Strazdins,et al.LynxNet:Wild Animal Monitoring Using Sensor Networks[C]//Proceedings of the 4th international conference on Real-world wireless sensor networks.Berlin Heidelberg:Springer,2010:170-173.

[11]Artis Mednis,Atis Elsts,Leo Selavo.Embedded Solution for Road Condition Monitoring Using Vehicular Sensor Networks[C]//Proceedings of the 6th International Conference on Application of Information and Communication Technologies(AICT 2012).Germany Stuttgart:IEEE eXpress Conference Publishing,2012:248-252.

[12]Atis Elsts,Rihards Balass,Janis Judvaitis,et al.SAD-mote:A Robust and Cost-Effective Device for Environmental Monitoring[C]//ARCS'12Proceedings of the 25th international conference on Architecture of Computing Systems,Berlin Heidelberg:Springer,2012:225-237.

[13]MansOS [EB/OL].[2013-01].http://mansos.net/wiki/index.php/MansOS.

[14]MansOS[EB/OL].[2013-01].http://code.google.com/p/mansos.

猜你喜歡
用戶
雅閣國內用戶交付突破300萬輛
車主之友(2022年4期)2022-08-27 00:58:26
您撥打的用戶已戀愛,請稍后再哭
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年5期)2016-11-28 09:55:15
兩新黨建新媒體用戶與全網新媒體用戶之間有何差別
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
挖掘用戶需求尖端科技應用
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
主站蜘蛛池模板: 久久人人爽人人爽人人片aV东京热| 欧美一区二区福利视频| 欧美一区二区三区香蕉视| 亚洲天堂在线免费| 在线精品亚洲国产| 一级在线毛片| 2021国产精品自产拍在线观看| 国产毛片不卡| 2022国产91精品久久久久久| 丝袜高跟美脚国产1区| 人妻免费无码不卡视频| 在线另类稀缺国产呦| 国产成熟女人性满足视频| 高清免费毛片| 午夜综合网| 国产91九色在线播放| 伊人丁香五月天久久综合| 午夜国产理论| 福利视频一区| 高潮爽到爆的喷水女主播视频| 亚洲精品中文字幕午夜| lhav亚洲精品| 欧美日本激情| 亚洲热线99精品视频| 色色中文字幕| 亚洲三级电影在线播放| 亚洲免费黄色网| 99久久亚洲综合精品TS| 国产伦片中文免费观看| 久久天天躁狠狠躁夜夜躁| 欧美a网站| 538精品在线观看| 久久精品中文字幕免费| 免费av一区二区三区在线| 91毛片网| 青青热久免费精品视频6| 国产欧美自拍视频| 欧美精品在线视频观看| 国内嫩模私拍精品视频| 91精品久久久久久无码人妻| 久久精品只有这里有| 亚洲精品另类| 欧美一级高清片久久99| 五月天婷婷网亚洲综合在线| av一区二区无码在线| 免费观看欧美性一级| 无遮挡国产高潮视频免费观看| 亚洲欧美人成电影在线观看| 美女无遮挡免费网站| 色一情一乱一伦一区二区三区小说| 手机成人午夜在线视频| 在线视频亚洲欧美| 国产精品一区二区不卡的视频| 成人国产精品2021| 无码精品国产dvd在线观看9久| 欧美 亚洲 日韩 国产| 国产资源站| 人人爱天天做夜夜爽| 国产视频你懂得| 国产成人精品午夜视频'| 狠狠做深爱婷婷久久一区| 爆操波多野结衣| 亚洲嫩模喷白浆| 福利在线一区| 亚洲无码精品在线播放 | 亚洲免费人成影院| 国产精品手机视频| 亚洲精品色AV无码看| 中文字幕 欧美日韩| 亚洲国产欧洲精品路线久久| 一级看片免费视频| 免费a级毛片18以上观看精品| 丰满人妻中出白浆| 亚洲激情99| 日本高清在线看免费观看| 成年人视频一区二区| 国产美女在线观看| 日本草草视频在线观看| 国产精品久线在线观看| 欧美日韩亚洲国产主播第一区| 福利一区在线| 欧美自慰一级看片免费|