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

基于ZigBee的單片機無線通信系統(tǒng)實現(xiàn)

2014-01-21 00:53:34李偉
電子設計工程 2014年22期
關鍵詞:單片機設備

李偉

(鹽城衛(wèi)生職業(yè)技術學院 江 蘇 鹽 城 2 24006)

近距離的無線通信技術近幾年有很大的發(fā)展,其中WiFi(IEEE 802.11)、藍牙以及ZigBee是應用比較多的幾種標準。這幾種協(xié)議側重點各有不同,相對于前面兩者來講,ZigBee由于其可靠性、低功耗及安全性等特性在無線傳感器網(wǎng)絡[1](Wireless Sensor Network)中得到了較為廣泛的應用。特別是用于醫(yī)療健康監(jiān)測的可穿戴傳感器(Wearable Sensor)領域發(fā)展的較為迅猛。國外對無線傳感器技術研究較早,也已經(jīng)有很多成熟的產(chǎn)品面世,如iMote2、TelosB、MicaZ以及WaspMote等[2]。隨著開源單片機系統(tǒng)開發(fā)平臺Arduino[3]的普及,基于ZigBee協(xié)議標準的XBee系列產(chǎn)品也日漸流行。本文主要針對XBee產(chǎn)品系列中的XBee Pro ZB,探討了使用ZigBee協(xié)議進行單片機之間無線通信的方法。

1 ZigBee

1)簡 介

ZigBee是一種基于IEEE802.15.4標準的低功耗個域網(wǎng)(PAN)協(xié)議,這是一種短距離、低功耗、低成本的通信技術。它由ZigBee聯(lián)盟制定,主要適合于短距離無線數(shù)據(jù)傳輸,可以構成一個無線傳感器網(wǎng)絡。ZigBee基于802.15.4,它在802.15.4所規(guī)定的物理層和媒體訪問控制層的上面添加了自己的網(wǎng)絡層、應用層和安全服務規(guī)范。在ZigBee協(xié)議中,根據(jù)設備的通信能力,可分為全功能設備(FFD))和精簡功能設備(RFD)[4];根據(jù)設備的功能,可以分為協(xié)調器(coordinator)、路由器(router)和終端設備(end-device)3種邏輯設備。協(xié)調器是一種FFD設備,它是網(wǎng)絡的中心節(jié)點,負責網(wǎng)絡的啟動和配置。一個網(wǎng)絡中只允許有一個協(xié)調器,當整個網(wǎng)絡啟動和配置完成后,它的功能就相當于一個路由器。路由器也是一種FFD設備,它主要負責維護網(wǎng)絡的路由信息,并轉發(fā)消息到其他設備,擴展信號的傳輸范圍。終端設備可以是FFD設備或RFD設備,它具有加入和退出網(wǎng)絡的功能,并能接收和發(fā)送報文,一般連接傳感器設備,作為監(jiān)測點,可睡眠或喚醒,因此可以用電池供電。基于ZigBee協(xié)議的產(chǎn)品很多,其中較為流行的是Digi公司的XBee,因而我們使用的也是Xbee系列的產(chǎn)品。

2)XBee的配置

XBee的產(chǎn)品種類比較多,不僅有基于ZigBee協(xié)議的,也有支持802.15.4以及藍牙的,我們選用的是基于ZigBee協(xié)議的XBee Pro ZB。使用之前我們必須對XBee的相關參數(shù)進行設定,可以到Digi的官方網(wǎng)站下載最新版的配置軟件XCTU,其基本界面如下:

配置之前需將XBee通過USB口與電腦相連,運行XCTU,在“PC Settings”中里選擇XBee適配器映射出來的USB串口通信端口(USB Serial Port),設置好波特率等參數(shù),XBee模塊出廠里默認的設置為9600b/s,這個一般不需要更改。點擊Test/Query按鈕,如果正常連接的話會出現(xiàn)一個顯示Modem類型、固件版本以及序列號等信息的對話窗口,其中的序列號是這個無線通信模塊的64位唯一硬件編號。完成測試后到配置軟件的 “Modem Configuration”選項修改“PAN ID”等參數(shù)并寫入到XBee模塊。PAN ID指的是兩個或多個無線通信模塊所構成的PAN(個域網(wǎng))的ID編號,因此對于屬于同一個網(wǎng)絡中的XBee模塊來說這個參數(shù)一定要相同。

圖1 X-CTU配置界面Fig.1 X-CTU configuration interface

XBee本身只是一個無線的通信模塊,雖然僅使用兩個XBee本身也能夠實現(xiàn)兩個點之間的數(shù)據(jù)傳輸,但其只具有通信的功能,不具備什么控制能力,當需要擴展外部器件如傳感器時幾乎不太可能。為了增強整個系統(tǒng)的功能,最好把它連接到單片機上,我們選擇開源單片機開發(fā)平臺Arduino作為XBee模塊的控制面板。用于Arduino擴展XBee的擴展板有很多種,也可以自己動手直接將XBee模塊接到Arduino控制板上,不過存在一定的風險。我們采用的是XBee V5[5]擴展板,市場價格大概在三十元左右。

2 將XBee連接到Arduino

XBee模塊與Arduino之間其實就是通過串行接口 (即Tx和Rx引腳)進行通信。

對于簡單的點對點通信來講,只需要通過串行接口向XBee模塊寫數(shù)據(jù)就可以實現(xiàn)數(shù)據(jù)的發(fā)送;當XBee模塊通過無線通道接收到數(shù)據(jù)時,通過讀串行接口可以很方便地獲得這些數(shù)據(jù)。用X-CTU軟件配置好兩個XBee模塊的參數(shù)后,兩個插上XBee模塊的Arduino控制器就可以像有線RS232串口通信一樣相互傳送數(shù)據(jù)了。當然,如果要實現(xiàn)我們所期望的結果還需要給Arduino添加一個XBee適配器的驅動。對于我們使用的Arduino UNO控制器,可以在Arduino官網(wǎng)下載一個Arduino 0018版編程軟件,它里面的drivers目錄里就可以找到這個驅動。先把寫到的測試程序下載到Arduino控制板,再將配置好參數(shù)的XBee模塊通過V5擴展板插到Arduino控制板。

圖2 XBee模塊與Arduino的連接電路圖Fig.2 Connection diagram between Xbee module and Arduino

我們把其中一個XBee模塊設為主機,其主要代碼如下:

主機程序:

int open=4; //開燈按鈕連在數(shù)字端口4

char flag; //定義“向從機發(fā)送LED燈亮標志”的變量

void setup()

{

pinMode(open,INPUT); //設置按鈕為輸入模式

Serial.begin(9600); //波特率為9 600 b/s

}

void loop()

{

//如果亮燈按鈕按下

if(digitalRead(open)==LOW)

{

flag='a';

Serial.print(flag);//向從機發(fā)送燈亮標志

}

delay(20);//延時20 ms,等待數(shù)據(jù)發(fā)送成功

}

從機程序:

int led_pin=9; //LED燈連在數(shù)字端口9

int val; //定義“接受主機發(fā)來的LED燈亮滅標志”的變量

void setup()

{

pinMode(ledpin,OUTPUT);//設置LED燈為輸出模式

Serial.begin(9600); //波特率為9 600 b/s

}

void loop()

{

if(Serial.available()>0) //查詢串口有無數(shù)據(jù)

{

val=Serial.read(); //讀取主機發(fā)送的數(shù)據(jù)

if(val==‘a(chǎn)') //如果主機發(fā)送字符'a',則點亮LED

{

digitalWrite(led_pin,LOW);//LED燈點亮

}

}

}

以上程序可以實現(xiàn)兩個XBee模塊間的簡單通信。要實現(xiàn)成塊數(shù)據(jù)的傳輸比如將采集到的各種傳感器數(shù)據(jù)發(fā)送和接收,過程就變得比較復雜。XBee模塊有兩種數(shù)據(jù)傳輸模式 :AT (Transparent/Command) 模 式 及 API(Application Program Interface)模式。AT模式主要用于配置XBee模塊的參數(shù)以及簡單的文本傳輸,使用比較簡單,但其功能非常有限。相對而言API模式的功能要強大很多,不過使用起來也比較復雜,在此我們只簡單討論一下API模式。

在API模式下信息以數(shù)據(jù)幀的方式傳輸,其幀結構主要包括4個部分:

1)起始符

2)數(shù)據(jù)部分的長度(用2個字節(jié)的十六進制表示)

3)幀數(shù)據(jù)部分(包括附加控制數(shù)據(jù))

4)校驗和

表1 幀結構Tab.1 API frame structure

如表1所示,起始符為0x7E表示一個數(shù)據(jù)幀的開始。可以用語句if(Serial.read()==0x7E)來檢測是否接收到一個新的數(shù)據(jù)幀,不能確定一個幀的起始位置無法正確得到有效數(shù)據(jù),因為無從判斷當前收到數(shù)據(jù)字節(jié)代表的是什么。數(shù)據(jù)長度是以16進制表示的數(shù)據(jù)部分的長度。數(shù)據(jù)部分包括真正要傳輸?shù)男畔⒁约盀榱吮WC數(shù)據(jù)的可靠傳輸而附加的控制信息,包括幀的數(shù)據(jù)類型、幀的序號、64bit的物理目的地址、16bit網(wǎng)絡目的地址及其它相關信息。幀的有效載荷即真正的數(shù)據(jù)信息首字節(jié)的偏移量可由幀結構的第一個字節(jié)——幀類型計算得到,其長度可由數(shù)據(jù)長度字段減去首字節(jié)的偏移量得到。數(shù)據(jù)部分的獲取幀結構最后一個部分為一個字節(jié)的校驗和,需要注意的是校驗和部分的計算不包括起幀的起始符及數(shù)據(jù)長度部分。

使用Arduino的一個好處是我們在網(wǎng)上可以找到大多數(shù)常見外圍器件的第三方函數(shù)庫[6],在很多情況下可以大大地減少編程工作量或降低編程的難度。對于XBee模塊我們當然可以選擇使用現(xiàn)成的函數(shù)庫來簡化通信的過程,用戶可以根據(jù)自己的需要選擇不同的編程語言如C/C++、Python、Java或Processing等。

3 結論

基于ZigBee協(xié)議標準的XBee除了能構成一個點到點的通信控制系統(tǒng)外,還可以根據(jù)實際需要構建一個具有可伸縮特性的無線傳感器網(wǎng)絡。每一個XBee模塊類似于MAC網(wǎng)卡,有自己唯一的64位物理地址,而加入網(wǎng)絡后會由協(xié)調器分配一個16位的網(wǎng)絡地址,這意味著一個傳感器網(wǎng)絡最多可以達到65 000個節(jié)點[6],因而有著很大的應用前景。

[1]Robert Faludi.Building Wireless Sensor Networks[M].USA:O′Reilly Media Inc,2011.

[2]Shnayder V,Chen B,Lorincz K,et al.Sensor Networks for Medical Careh.[EB/OL][2012-03-01].http://www.docin.com/p-351457076.html.

[3]Michael McRoberts.Beginning Arduino[M].USA:Apress,2002.

[4]田亞.基于ZigBee無線傳感器網(wǎng)絡系統(tǒng)設計與實現(xiàn)[D].同濟大學,2007.

[5]王中生,黃動力,陳國紹,等.基于ZigBee的遠程醫(yī)療監(jiān)護系統(tǒng)研究與實現(xiàn)[J].現(xiàn)代電子技術,2014(2):98-99,104.WANG Zhong-sheng,HUANG Dong-li,CHEN Guo-shao,et al,Research and implementation of remote medical monitoring system based on ZigBee[J].Modern Electronics Technique,2014(2):98-99,104.

[6]瞿雷.ZigBee技術及應用[M].北京:北京航空航天大學出版社,2007.

[7]董哲,宋紅霞.基于ZigBee的無線儀表通信系統(tǒng)的研究[J].工業(yè)儀表與自動化裝置,2013(6):55-58.DONG Zhe;SONG Hongxia.Study of wireless instrument communication system based on ZigBee [J].Industrial Instrumentation&Automation,2013(6):55-58.

猜你喜歡
單片機設備
諧響應分析在設備減振中的應用
基于單片機的SPWM控制逆變器的設計與實現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
基于VB6.0+Access2010開發(fā)的設備管理信息系統(tǒng)
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
基于單片機的平衡控制系統(tǒng)設計
電子制作(2017年19期)2017-02-02 07:08:27
500kV輸變電設備運行維護探討
如何在設備采購中節(jié)省成本
主站蜘蛛池模板: 18黑白丝水手服自慰喷水网站| 国产高清色视频免费看的网址| 欧美三级日韩三级| 国产成人免费视频精品一区二区| 亚洲高清资源| 日韩高清欧美| 久久国产毛片| 亚洲无线观看| 日韩a级片视频| 亚洲制服中文字幕一区二区| 中文字幕亚洲第一| 亚洲综合在线最大成人| 五月天久久综合| 丁香六月综合网| 黄色成年视频| 国产免费怡红院视频| 国产精品55夜色66夜色| 无码专区第一页| 国产成人精品免费av| 99成人在线观看| 在线观看视频99| 亚洲中文在线看视频一区| 国产在线一二三区| 制服丝袜 91视频| 亚洲国产成人在线| 久久久久亚洲AV成人网站软件| 91在线精品免费免费播放| 国产国拍精品视频免费看| 99久久精品视香蕉蕉| 国产精品亚洲专区一区| 亚洲国产日韩欧美在线| 99精品视频在线观看免费播放| 亚洲国产日韩在线观看| 亚洲无码视频一区二区三区| 精品日韩亚洲欧美高清a | 精品国产成人三级在线观看| www.亚洲一区二区三区| 四虎亚洲精品| 亚洲女人在线| 成人在线第一页| 欧美亚洲一区二区三区导航| 日本一本正道综合久久dvd| 日本伊人色综合网| 久久国产高潮流白浆免费观看| 午夜小视频在线| 国产国产人成免费视频77777| 91麻豆精品国产91久久久久| 风韵丰满熟妇啪啪区老熟熟女| 国产人妖视频一区在线观看| 亚洲综合网在线观看| 国产成熟女人性满足视频| 成年人国产视频| 国产91九色在线播放| 日韩国产亚洲一区二区在线观看| 狠狠做深爱婷婷久久一区| 污网站在线观看视频| 中文字幕久久波多野结衣| 亚洲成人免费在线| 亚洲成人网在线观看| 久久久四虎成人永久免费网站| 国产在线视频自拍| 91久久精品日日躁夜夜躁欧美| 偷拍久久网| 亚洲无线视频| 亚洲无码熟妇人妻AV在线| 波多野结衣AV无码久久一区| 精品人妻一区二区三区蜜桃AⅤ| 亚洲国产黄色| 日韩午夜片| 美女扒开下面流白浆在线试听| 又粗又硬又大又爽免费视频播放| 99国产精品国产| 久久精品娱乐亚洲领先| 国产精品无码影视久久久久久久| 激情视频综合网| 国产一级片网址| 狠狠ⅴ日韩v欧美v天堂| 54pao国产成人免费视频| 国产激爽爽爽大片在线观看| 色哟哟国产成人精品| 婷婷99视频精品全部在线观看| 免费jjzz在在线播放国产|