<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于TinyOS的嵌入式無(wú)線傳感器網(wǎng)絡(luò)設(shè)計(jì)

          基于TinyOS的嵌入式無(wú)線傳感器網(wǎng)絡(luò)設(shè)計(jì)

          作者: 時(shí)間:2009-08-26 來(lái)源:網(wǎng)絡(luò) 收藏

          2.3 通信模塊
          收發(fā)模塊主要完成節(jié)點(diǎn)之間、節(jié)點(diǎn)與網(wǎng)關(guān)之間的數(shù)據(jù)交換功能,這里采用Nordic公司的nRF24E1芯片。nRF24E1內(nèi)部集成了2.4 GHz的nRF2401收發(fā)器,其增強(qiáng)型8051內(nèi)核和9輸入的10位A/D轉(zhuǎn)換器無(wú)線收發(fā)模塊能夠?qū)崿F(xiàn)點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多點(diǎn)的無(wú)線通信,具有體積小,功耗低和外圍電路簡(jiǎn)單等特點(diǎn)。對(duì)于無(wú)線中的一些只實(shí)現(xiàn)數(shù)據(jù)采集和傳送功能的節(jié)點(diǎn)可以由nRF24E1內(nèi)嵌的8051單片機(jī)進(jìn)行控制處理,所以可直接采用nRF24E1和傳感器模塊構(gòu)成傳感器節(jié)點(diǎn)。然而,對(duì)于數(shù)據(jù)處理要求高,功能復(fù)雜,計(jì)算量大,要為通信協(xié)議、功能協(xié)調(diào)、應(yīng)用處理等提供硬件支持的節(jié)點(diǎn)(如網(wǎng)關(guān)節(jié)點(diǎn)),則采用MSP430作為處理器,nRF24E1作為無(wú)線通信模塊,其連接圖如圖3所示。

          本文引用地址:http://www.ex-cimer.com/article/163620.htm

          通過(guò)配置特殊寄存器,可使nRF24E1工作在ShockBurst無(wú)線方式。數(shù)據(jù)低速輸入高速發(fā)送,功耗極低,并可通過(guò)軟件控制開關(guān)進(jìn)一步降低能耗。用 MSP430的P1口控制nRF24E1,通過(guò)配置CE,PWR,CS三個(gè)控制管腳,使芯片工作在不同的模式。當(dāng)nRF24E1工作在發(fā)送方式時(shí),接口引腳為CE,CLK1和DATA;當(dāng)CPU請(qǐng)求發(fā)送數(shù)據(jù)時(shí),置CE為高電平。此時(shí),將接收機(jī)地址和有效載荷數(shù)據(jù)送入nRF24E1,置CE為低電平,激活 ShockBurst發(fā)射;當(dāng)nRF24E1工作在接收方式時(shí),接口引腳為CE,DR1,CLK1和DATA。在正確設(shè)置射頻包輸入載荷的地址和大小后,置CE為高電平。此后,nRF24E1監(jiān)測(cè)信息輸入,若收到有效數(shù)據(jù)包,則給處理器一個(gè)中斷,并置DR1為高電平,使處理器將有效載荷數(shù)據(jù)取走,待系統(tǒng)收到全部數(shù)據(jù)后再置DR1為低。此時(shí),如果CE保持高電平,則等待新的數(shù)據(jù)包;若CE置低電平,則開始其他工作流程。
          2.4 電源模塊
          傳感器能量有限,目前主要解決節(jié)約電能的方法是采用休眠機(jī)制,即節(jié)點(diǎn)在沒(méi)有事件發(fā)生時(shí)盡快進(jìn)入休眠狀態(tài);而在有事件發(fā)生時(shí)及時(shí)自動(dòng)醒來(lái),并喚醒鄰居節(jié)點(diǎn),形成數(shù)據(jù)轉(zhuǎn)發(fā)的拓?fù)浣Y(jié)構(gòu)。在光線充足的地方采用太陽(yáng)能電池代替化學(xué)電池,使節(jié)點(diǎn)有更長(zhǎng)的工作時(shí)間。

          3 操作系統(tǒng)的與實(shí)現(xiàn)
          無(wú)線傳感器網(wǎng)絡(luò)是由大量節(jié)點(diǎn)組成的網(wǎng)絡(luò)系統(tǒng),每個(gè)節(jié)點(diǎn)可看作一個(gè)微型的平臺(tái)?,F(xiàn)有的操作系統(tǒng)大多是實(shí)時(shí)操作系統(tǒng),很少考慮能源供應(yīng),而且占用空間很大。由于無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)處理能力、電源及存儲(chǔ)能力有限,采用 嵌入式系統(tǒng),并引入輕線程、主動(dòng)消息、事件驅(qū)動(dòng)和組件化編程。是一種專門為嵌入式操作系統(tǒng)組件的操作系統(tǒng),由nesC 語(yǔ)言實(shí)現(xiàn),主要應(yīng)用于無(wú)線傳感器網(wǎng)絡(luò)。根據(jù)嵌入應(yīng)用可以輕易增減控制執(zhí)行的功能,而且編譯器可避免數(shù)據(jù)競(jìng)爭(zhēng)的現(xiàn)象,可節(jié)省硬件資源,并能執(zhí)行多個(gè)快速響應(yīng)的控制操作。
          3.1 組件
          TinyOS操作系統(tǒng)一般由Main組件(初始化硬件并執(zhí)行調(diào)度程序)、應(yīng)用組件(實(shí)現(xiàn)具體應(yīng)用功能)、系統(tǒng)組件(為應(yīng)用層組件提供服務(wù))、HPL(硬件描述層)構(gòu)成。這種體系結(jié)構(gòu)使得TinyOS非常方便用戶使用,增加了操作系統(tǒng)的移植性和軟件的復(fù)用性。
          3.2 接口
          這里的接口是一個(gè)雙向通道,它具有的功能和事件通知能力是雙向的,向調(diào)用者提供命令和實(shí)現(xiàn)命令者進(jìn)行事件通告。代碼如下:


          TinyOS應(yīng)用程序還要使用testSM,GenericComm等組件實(shí)現(xiàn)無(wú)線傳感器網(wǎng)絡(luò)的邏輯功能。test5M提供接口的命令,并實(shí)現(xiàn)對(duì)調(diào)用接口事件的響應(yīng);GenericComm通過(guò)調(diào)用其他組件實(shí)現(xiàn)從消息包到主動(dòng)消息、位級(jí)數(shù)據(jù)傳送到無(wú)線電收發(fā)模塊的功能。為了能將TinyOS移植到節(jié)點(diǎn)平臺(tái)上,需要根據(jù)節(jié)點(diǎn)平臺(tái)修改TinyOS中的初始化代碼,編寫自己的BSP程序,達(dá)到移植操作系統(tǒng)的目的。
          GenericComm提供了256個(gè)消息收發(fā)接口,采用CSMA/AD的MAC協(xié)議,消息到達(dá)組件test5M中,receive事件就會(huì)立刻調(diào)用。因此在這個(gè)事件中實(shí)現(xiàn)不同消息的轉(zhuǎn)換,從而實(shí)現(xiàn)通信雙方的握手:


          4 結(jié) 語(yǔ)
          在分析無(wú)線傳感器網(wǎng)絡(luò)體系結(jié)構(gòu)的基礎(chǔ)上,設(shè)計(jì)以超低功耗單片機(jī)MSP430為核心,并結(jié)合了無(wú)線收發(fā)模塊nRF24E1的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)。軟件開發(fā)平臺(tái)采用TinyOS操作系統(tǒng),從硬件、軟件等方面對(duì)無(wú)線傳感器網(wǎng)絡(luò)的節(jié)點(diǎn)進(jìn)行了設(shè)計(jì)。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();