• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      野外WSN監(jiān)測系統(tǒng)數(shù)據(jù)透明傳輸?shù)膶?shí)現(xiàn)

      2015-03-31 18:46劉向誠雷斌
      現(xiàn)代電子技術(shù) 2015年5期
      關(guān)鍵詞:低功耗

      劉向誠 雷斌

      摘 要: 針對在野外環(huán)境監(jiān)測中點(diǎn)多面廣、環(huán)境惡劣等問題,研究ZigBee技術(shù)能夠?qū)崿F(xiàn)野外環(huán)境數(shù)據(jù)的無線傳輸。而以前的傳感器網(wǎng)絡(luò)不滿足ZigBee協(xié)議的要求,不能通過ZigBee網(wǎng)絡(luò)進(jìn)行傳輸,這里介紹一種基于Z?Stack協(xié)議棧,在ZigBee網(wǎng)絡(luò)中實(shí)現(xiàn)以CC2530終端數(shù)據(jù)低功耗串口透明傳輸?shù)南到y(tǒng),該系統(tǒng)能夠通過終端節(jié)點(diǎn)將采集到的數(shù)據(jù)無線透明傳輸?shù)絽f(xié)調(diào)器節(jié)點(diǎn)上,從而實(shí)現(xiàn)數(shù)據(jù)的無線傳輸,并且該設(shè)計功耗低,適合野外長期使用。

      關(guān)鍵詞: Z?Stack協(xié)議棧; ZigBee網(wǎng)絡(luò); 透明傳輸; 低功耗

      中圖分類號: TN919?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2015)05?0019?04

      Realization of data transparent transmission for WSN monitoring system

      LIU Xiang?cheng, LEI Bin

      (Institute of Electronic and Information Engineering, Xian Technological University, Xian 710021, China)

      Abstract: ZigBee technology research is benefit for overcoming multiple point, broad area, harsh environment and other issues in the field environmental monitoring , as well as realizing wireless transmission of environmental data in field. The previous sensor network could not meet the requirements of zigbee agreement, and could not transmit data through ZigBee network. A low power serial data transparent transmission system through CC2530 terminal in ZigBee network is introduced in this paper, which is based on Z?Stack protocol stack. The system can transmit the data collected through terminal nodes to the coordinator nodes in wireless transparently transmission mode. The system has the advantage of low power consumption, and is suitable for long?term use in the field.

      Keywords: Z?Stack protocol stack; ZigBee network; transparent transmission; low power consumption

      0 引 言

      伴隨社會發(fā)展對各種信息的無限需求,野外環(huán)境監(jiān)測越來越受到有關(guān)部門的重視,隨之而來的問題也就越來越多。在很多監(jiān)測場,因?yàn)樘筋^布設(shè)比較分散、數(shù)采儀需求量較大,在當(dāng)前科研經(jīng)費(fèi)有限的情況下無法全部實(shí)現(xiàn)自動化采集,仍然需要組織人員定期到現(xiàn)場觀測?;谝陨闲枨?,給出一種基于ZigBee技術(shù)的WSN分布式測控系統(tǒng),WSN(Wireless Sensor Network,無線傳感器網(wǎng)絡(luò))是一種新型的數(shù)字化探測技術(shù),融合了傳感技術(shù)、信息處理技術(shù)和網(wǎng)絡(luò)通信技術(shù)。在德州儀器(TI)公司提供的半開源ZigBee協(xié)議棧Z?Stack程序基礎(chǔ)上實(shí)現(xiàn)CC2530終端低功耗數(shù)據(jù)的串口透傳,通過傳感器采集到的數(shù)據(jù)與終端節(jié)點(diǎn)相連,終端節(jié)點(diǎn)與協(xié)調(diào)器進(jìn)行數(shù)據(jù)的透明傳輸,協(xié)調(diào)器再通過串口將數(shù)據(jù)上報給PC機(jī)。

      1 系統(tǒng)的整體設(shè)計

      整個系統(tǒng)由PC機(jī),數(shù)采儀,協(xié)調(diào)器以及終端節(jié)點(diǎn)構(gòu)成。整個網(wǎng)絡(luò)中的協(xié)調(diào)器只能有一個,而與數(shù)采儀相連的終端節(jié)點(diǎn)可有多個。系統(tǒng)的總體設(shè)計圖如圖1所示。

      數(shù)采儀將現(xiàn)場采集到的數(shù)據(jù)通過轉(zhuǎn)換接口發(fā)送到終端節(jié)點(diǎn)上,終端節(jié)點(diǎn)在獲取串口數(shù)據(jù)以后,對所獲得的數(shù)據(jù)進(jìn)行封裝,然后通過基于IEEE 802.15.4的ZigBee無線通信協(xié)議將數(shù)據(jù)傳遞給協(xié)調(diào)器,協(xié)調(diào)器把所獲取的數(shù)據(jù)進(jìn)行解析,應(yīng)用層獲得數(shù)據(jù)以后再通過串口上傳到PC機(jī),PC機(jī)可以在串口調(diào)試器上讀取采集到的數(shù)據(jù),從而實(shí)現(xiàn)數(shù)據(jù)的采集,透明傳輸以及數(shù)據(jù)的上報整個過程。

      2 低功耗管理及定時喚醒功能

      整個軟件的開發(fā)均以實(shí)現(xiàn)終端的低功耗為核心,因此低功耗是終端的最大特點(diǎn);又因?yàn)榻K端還擔(dān)任數(shù)據(jù)傳輸任務(wù),所以終端的另外一個功能是能夠?qū)崿F(xiàn)兩個模塊間數(shù)據(jù)的透明傳輸。但具體實(shí)現(xiàn)低功耗的情況需要根據(jù)在野外可能遇到的問題而設(shè)置進(jìn)入低功耗的條件。

      本設(shè)計是采用休眠與喚醒方式來實(shí)現(xiàn)低功耗設(shè)計的,終端節(jié)點(diǎn)在每次喚醒后,根據(jù)查詢協(xié)調(diào)器是否有任務(wù)或者通過判斷是否有網(wǎng)絡(luò)存在來決定是否進(jìn)入休眠狀態(tài)。

      以本設(shè)計所選用的終端節(jié)點(diǎn)芯片CC2530為例,通過閱讀其數(shù)據(jù)手冊,得知其具有3種不同休眠運(yùn)行模式,使得它尤其適應(yīng)超低功耗要求的系統(tǒng)。在工作模式下,由于ZigBee技術(shù)的傳輸速率低,傳輸數(shù)據(jù)量小,因此信號收發(fā)時間短;在非工作模式下,ZigBee節(jié)點(diǎn)處于休眠狀態(tài)。

      CC2530有3種供電模式,分別是PM1,PM2,PM3,根據(jù)分析得知PM1模式功耗比較大;PM2模式比較省功耗而且可以被定時器喚醒;PM3模式最省電但只能被外部中斷喚醒,有一定局限性。綜合考慮選擇PM2模式,PM2模式通過睡眠定時器,實(shí)現(xiàn)終端節(jié)點(diǎn)的休眠、喚醒,使其低功耗運(yùn)行,減少節(jié)點(diǎn)能耗。

      終端低功耗功能流程圖如圖2所示。

      每隔8 s終端會自動喚醒,喚醒后自動檢測是否存在網(wǎng)絡(luò),如果存在網(wǎng)絡(luò),則啟動入網(wǎng)流程,如果沒有網(wǎng)絡(luò),則繼續(xù)休眠。終端醒來后會處于準(zhǔn)備狀態(tài),準(zhǔn)備接收協(xié)調(diào)器的命令,待終端完成采集工作后,由協(xié)調(diào)器廣播休眠命令,終端收到休眠命令后,會自動進(jìn)入休眠狀態(tài),考慮到惡劣情況,即網(wǎng)絡(luò)不穩(wěn)定,網(wǎng)絡(luò)連接又?jǐn)嚅_后,終端也會進(jìn)入休眠,這樣就實(shí)現(xiàn)了終端的低功耗問題。終端成功入網(wǎng)后的流程圖如圖3所示。

      3 數(shù)據(jù)的透明傳輸

      在無線透明傳輸應(yīng)用中,發(fā)射模塊(也可作為接收模塊)與接收模塊(也可作為發(fā)射模塊)進(jìn)行信息交換的數(shù)據(jù)格式,沒有像指令字頭、結(jié)束符等數(shù)據(jù)包信息,只要發(fā)射模塊串口有數(shù)據(jù)輸出,模塊就把串口的數(shù)據(jù)以無線方式編碼發(fā)送。當(dāng)接收模塊接收到發(fā)射模塊發(fā)送的無線數(shù)據(jù)信號后進(jìn)行解碼,把解碼后的數(shù)據(jù)按發(fā)射模塊的格式從串口輸出,所發(fā)即所得,即對模塊使用者來說是透明的。其流程示意圖如圖4所示。

      這里的發(fā)送方主要是指終端節(jié)點(diǎn),而接收方主要指協(xié)調(diào)器,協(xié)調(diào)器將終端節(jié)點(diǎn)發(fā)來的數(shù)據(jù)經(jīng)過解析后,通過串口上傳到PC機(jī)去讀取數(shù)據(jù),整個數(shù)據(jù)的傳輸過程對于發(fā)送方和接收方都是透明的,PC機(jī)如果想獲得某個終端節(jié)點(diǎn)采集的數(shù)據(jù),可以通過串口向協(xié)調(diào)器發(fā)送命令,根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)找到相應(yīng)節(jié)點(diǎn)的網(wǎng)絡(luò)地址,從而完成采集命令的發(fā)送。

      整個網(wǎng)絡(luò)系統(tǒng)中主要涉及到基于IEEE 802.15.4的ZigBee網(wǎng)絡(luò)通信協(xié)議,主要是發(fā)送方的射頻模塊通過ZigBee通信協(xié)議將封裝好的數(shù)據(jù)傳遞到接收方的射頻模塊,這一方面對于用戶來講是透明的。

      3.1 串口透傳的主要程序

      本系統(tǒng)協(xié)調(diào)器和終端節(jié)點(diǎn)程序主要是基于Z?Stack協(xié)議棧進(jìn)行編寫的,其中串口透傳相關(guān)函數(shù)如下,使用C語言編程:

      (1) 首先在SampleApp.c中添加函數(shù)

      SampleApp_ProcessMTMessage(afIncomingMSGPacket_t *msg),函數(shù)主體如下:

      void SampleApp_ProcessMTMessage(afIncomingMSGPacket_t *msg)

      {

      //const char *msgPtr = ((const char *)msg+2);

      uint8 *pBuf; //定義數(shù)據(jù)存儲指針

      uint8 len; //定義數(shù)據(jù)長度

      //flag這個參數(shù)不能放在該函數(shù)中,必須定義為全局變量,

      否則后面的if無法進(jìn)入

      // deviceaddr = msg->srcAddr.addr.shortAddr;

      if(flag==1)

      //這里不能用while代替if,否則無法進(jìn)入該函數(shù)

      {

      len=msg->hdr.status; //獲取串口數(shù)據(jù)長度

      pBuf=(uint8 *)msg+2; //(uint8 *)((osal_event_hdr_t*)msg+1); //獲取串口數(shù)據(jù)

      HalUARTWrite(HAL_UART_PORT_0,pBuf,len);

      //將串口數(shù)據(jù)寫到PC(再寫回去)

      HalUARTWrite(0, "\n", 1);

      //以上兩句是用來作測試用的

      if (AF_DataRequest( &SampleApp_Periodic_DstAddr, &SampleApp_epDesc,

      SAMPLEAPP_LEDCTL_CLUSTERID,

      len+2,

      (uint8*)msg,

      &SampleApp_TransID,

      AF_DISCV_ROUTE,

      AF_DEFAULT_RADIUS)==afStatus_SUCCESS)

      //發(fā)送獲取的串口數(shù)據(jù)

      }

      }

      (2) 然后再在SampleApp.c 的函數(shù)SampleApp_ProcessEvent(uint8 task_id, uint16 events)中添加串口事件,其代碼如下:

      case SPI_INCOMING_ZAPP_DATA:

      //串口接收數(shù)據(jù)觸發(fā)事件

      SampleApp_ProcessMTMessage(MSGpkt); //調(diào)用串口函數(shù)

      MT_UartAppFlowControl (MT_UART_ZAPP_RX_READY);

      //調(diào)用串口流控制函數(shù)

      break;

      (3) 最后在SampleApp.c的函數(shù)SampleApp_MessageMSGCB(afIncomingMSGPacket_t *pkt)中添加如下代碼:

      case SAMPLEAPP_LEDCTL_CLUSTERID:

      cmd_counter=0;

      cmd_to_close=0;

      len=pkt->cmd.Data[1];

      //這里很重要,原來是len=pkt->cmd.Data[0]時有誤; 長

      度在數(shù)據(jù)中的位置,要查看MT_UartProcessZAppData

      的說明,如果長度不對,會多出很多亂碼

      for(i=0;i

      //這里不能加“=”號,否則數(shù)據(jù)一長,數(shù)據(jù)會多出一位!

      HalUARTWrite(0,&pkt->cmd.Data[i+2],1);

      //這里也很重要,之前是pkt->cmd.Data[i+1],數(shù)據(jù)的起始

      位?。。?/p>

      HalUARTWrite(0, "\n", 1);

      if((pkt->cmd.Data[2]==′o′)&&(pkt->cmd.Data[3]==′n′)&&(pkt->cmd.Data[4]==′0′)) //建立單播命令

      {flag=1;}

      else if((pkt->cmd.Data[2]==′o′)&&(pkt->cmd.Data[3]==

      ′f′)&&(pkt->cmd.Data[4]==′f′)

      && (pkt->cmd.Data[5]==′0′)) //拆除單播命令

      {flag=0;}

      else if((pkt->cmd.Data[2]==′s′)&&(pkt->cmd.Data[3]==′l′)&&(pkt->cmd.Data[4]==′p′))

      //休眠命令

      {

      osal_start_timerEx(SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT,SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT); //注冊下次喚醒事件

      NLME_SetPollRate(0); //輪詢清零

      sleep_cmd=1; //休眠標(biāo)志位置1

      }

      break;

      至此整個和串口透傳相關(guān)的函數(shù)均已添加完畢。

      3.2 串口透傳實(shí)驗(yàn)

      透傳實(shí)驗(yàn)的原理圖如圖5所示。

      將協(xié)調(diào)器通過串口與PC機(jī)相連,打開SSCOM串口助手,將串口助手設(shè)置為波特率為115 200 b/s、8位、無奇偶校驗(yàn)、無硬件流模式;再將終端按照同樣的方法和設(shè)置與PC機(jī)相連,上電后終端LED長亮表示入網(wǎng)成功,此時協(xié)調(diào)器發(fā)送“on0”作為啟動命令,終端再發(fā)送10個a到10個h作為80個字節(jié),看協(xié)調(diào)器的接收情況。

      串口測試結(jié)果如圖6所示。圖6左側(cè)是協(xié)調(diào)器串口圖,右側(cè)是終端串口圖。

      測試結(jié)果:根據(jù)ZigBee協(xié)議棧官方資料的查閱,通過多次對發(fā)送數(shù)據(jù)包字節(jié)個數(shù)的調(diào)整,以及對SSCOM串口助手定時發(fā)送時間的更改,得出串口透傳一個數(shù)據(jù)包最大為83 B,每個數(shù)據(jù)包之間的時間間隔不能少于33 ms才不會產(chǎn)生丟包現(xiàn)象。因此,建議一個數(shù)據(jù)包為80 B,一秒內(nèi)傳輸?shù)臄?shù)據(jù)包個數(shù)不要超過30個。

      4 結(jié) 語

      本設(shè)計主要是在德州儀器(TI)公司提供的半開源ZigBee協(xié)議棧Z?Stack程序基礎(chǔ)上,通過CC2530開發(fā)板實(shí)現(xiàn)終端低功耗串口透明傳輸以及數(shù)據(jù)的采集。因?yàn)閆igBee技術(shù)是一種近距離、低復(fù)雜度、低功耗、低速率、低成本的雙向無線通信技術(shù)。主要用于距離短、功耗低且傳輸速率不高的各種電子設(shè)備之間進(jìn)行數(shù)據(jù)傳輸以及典型的有周期性數(shù)據(jù)、間歇性數(shù)據(jù)和低反應(yīng)時間數(shù)據(jù)傳輸?shù)膽?yīng)用。所以本設(shè)計避免了復(fù)雜的通信協(xié)議,網(wǎng)絡(luò)組建方便、快速,采用無線傳輸方式,受地理環(huán)境約束小,低功耗,適合長期野外使用。

      參考文獻(xiàn)

      [1] 劉彥飛,王成,余成波,等.基于ZigBee的數(shù)據(jù)透明傳輸系統(tǒng)的設(shè)計[J].計算機(jī)科學(xué),2009,26(4A):76?78.

      [2] 王小強(qiáng),歐陽駿,黃寧淋.ZigBee無線傳感器網(wǎng)絡(luò)設(shè)計與實(shí)現(xiàn)[M].北京:化學(xué)工業(yè)出版社,2012.

      [3] 歐杰峰.基于IEEE 802.15.4的無線傳感器網(wǎng)絡(luò)組網(wǎng)研究[D].杭州:浙江大學(xué),2006.

      [4] 任志健,王鳳,邱澤敏,等.基于物聯(lián)網(wǎng)的透明傳輸移動環(huán)境勘探節(jié)點(diǎn)設(shè)計[J].實(shí)驗(yàn)室研究與探索,2013(6):103?108.

      [5] 唐思超.嵌入式系統(tǒng)軟件設(shè)計實(shí)戰(zhàn):基于IAR Embedded Workbench [M].北京:北京航空航天大學(xué)出版社,2010.

      [6] 張少軍.無線傳感器網(wǎng)絡(luò)技術(shù)及應(yīng)用[M].北京:中國電力出版社,2010.

      [7] 賢武.傳感器原理與應(yīng)用[M].成都:電子科技大學(xué)出版社,1999.

      [8] 姚仲歡.無線傳感器網(wǎng)絡(luò)中基于網(wǎng)絡(luò)拓?fù)渑c路由的節(jié)能技術(shù)研究[D].南寧:廣西大學(xué),2008.

      [9] 任秀麗,于海斌.ZigBee無線通信協(xié)議實(shí)現(xiàn)技術(shù)的研究[J].計算機(jī)工程與應(yīng)用,2007(6):143?145.

      [10] 孫戈.短距離無線通信及組網(wǎng)技術(shù)[M].西安:西安電子科技大學(xué)出版社,2006.

      猜你喜歡
      低功耗
      一種高速低功耗比較器設(shè)計
      簡述一種適用于鐵路的低功耗物聯(lián)網(wǎng)通信技術(shù)
      一種寬帶低功耗四合一接收機(jī)設(shè)計
      低功耗NB-IoT透傳模塊的設(shè)計
      一種用于6LoWPAN的低功耗路由協(xié)議
      低功耗便攜智能翻譯手套系統(tǒng)
      低功耗技術(shù)在駕駛行為管理模塊中的應(yīng)用
      一種低功耗地下水位監(jiān)測儀器的設(shè)計與實(shí)現(xiàn)
      多層圖像疊加處理的低功耗自適應(yīng)流水線設(shè)計
      ADI推出三款超低功耗多通道ADC
      阿克苏市| 马公市| 故城县| 乌什县| 南京市| 平乐县| 团风县| 鹤庆县| 广西| 阿坝| 团风县| 德钦县| 丽江市| 定日县| 曲靖市| 申扎县| 枝江市| 荥阳市| 屏南县| 广灵县| 裕民县| 六枝特区| 石首市| 磐石市| 鄯善县| 象州县| 宁安市| 禄劝| 冷水江市| 太仓市| 楚雄市| 普陀区| 从江县| 利辛县| 宜君县| 东丰县| 靖西县| 沁源县| 桦川县| 湖北省| 葫芦岛市|