<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 設計應用 > 基于ZigBee的單片機無(wú)線(xiàn)通信系統實(shí)現

基于ZigBee的單片機無(wú)線(xiàn)通信系統實(shí)現

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

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

本文引用地址:http://dyxdggzs.com/article/201610/306311.htm

1 ZigBee

1)簡(jiǎn)介

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

2)XBee的配置

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

基于ZigBee的單片機無(wú)線(xiàn)通信系統實(shí)現

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

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

2 將XBee連接到Arduino

XBee模塊與AMuino之間其實(shí)就是通過(guò)串行接口(即TX和RX引腳)進(jìn)行通信。

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

基于ZigBee的單片機無(wú)線(xiàn)通信系統實(shí)現

我們把其中一個(gè)XBee模塊設為主機,其主要代碼如下:主機程序:

基于ZigBee的單片機無(wú)線(xiàn)通信系統實(shí)現
基于ZigBee的單片機無(wú)線(xiàn)通信系統實(shí)現

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

在A(yíng)PI模式下信息以數據幀的方式傳輸,其幀結構主要包括4個(gè)部分:

1)起始符

2)數據部分的長(cháng)度(用2個(gè)字節的十六進(jìn)制表示)

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

4)校驗和

如表1所示,起始符為0x7E表示一個(gè)數據幀的開(kāi)始??梢杂谜Z(yǔ)句if(Serial.read()==0x7E)來(lái)檢測是否接收到一個(gè)新的數據幀,不能確定一個(gè)幀的起始位置無(wú)法正確得到有效數據,因為無(wú)從判斷當前收到數據字節代表的是什么。數據長(cháng)度是以16進(jìn)制表示的數據部分的長(cháng)度。數據部分包括真正要傳輸的信息以及為了保證數據的可靠傳輸而附加的控制信息,包括幀的數據類(lèi)型、幀的序號、64bit的物理目的地址、16bit網(wǎng)絡(luò )目的地址及其它相關(guān)信息。幀的有效載荷即真正的數據信息首字節的偏移量可由幀結構的第一個(gè)字節——幀類(lèi)型計算得到,其長(cháng)度可由數據長(cháng)度字段減去首字節的偏移量得到。數據部分的獲取幀結構最后一個(gè)部分為一個(gè)字節的校驗和,需要注意的是校驗和部分的計算不包括起幀的起始符及數據長(cháng)度部分。

基于ZigBee的單片機無(wú)線(xiàn)通信系統實(shí)現

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

3 結論

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



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>