資源描述:
《基于ZigBee的單片機(jī)無線通信系統(tǒng)實(shí)現(xiàn)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、基于ZigBee的單片機(jī)無線通信系統(tǒng)實(shí)現(xiàn)[導(dǎo)讀]?近距離的無線通信技術(shù)近幾年有很大的發(fā)展,其中WiFi(IEEE802.11)、藍(lán)牙以及ZigBee是應(yīng)用比較多的幾種標(biāo)準(zhǔn)。這幾種協(xié)議側(cè)重點(diǎn)各有不同,相對于前面兩者來講,ZigBee由于其可靠性、低功耗及安全性等特性在無線傳感?近距離的無線通信技術(shù)近幾年有很大的發(fā)展,其中WiFi(IEEE802.11)、藍(lán)牙以及ZigBee是應(yīng)用比較多的幾種標(biāo)準(zhǔn)。這幾種協(xié)議側(cè)重點(diǎn)各有不同,相對于前面兩者來講,ZigBee由于其可靠性、低功耗及安全性等特性在無線傳感器網(wǎng)絡(luò)(WirelessSensorNetwork)中得到了較為廣泛的應(yīng)用。
2、特別是用于醫(yī)療健康監(jiān)測的可穿戴傳感器(WearableSensor)領(lǐng)域發(fā)展的較為迅猛。國外對無線傳感器技術(shù)研究較早,也已經(jīng)有很多成熟的產(chǎn)品面世,如iMote2、TelosB、MicaZ以及WaspMote等。隨著開源單片機(jī)系統(tǒng)開發(fā)平臺Arduino的普及,基于ZigBee協(xié)議標(biāo)準(zhǔn)的XBee系列產(chǎn)品也日漸流行。本文主要針對XBee產(chǎn)品系列中的XBeeProZB,探討了使用ZigBee協(xié)議進(jìn)行單片機(jī)之間無線通信的方法。1ZigBee1)簡介ZigBee是一種基于IEEE802.15.4標(biāo)準(zhǔn)的低功耗個域網(wǎng)(PAN)協(xié)議,這是一種短距離、低功耗、低成本的通信技術(shù)。它由ZigB
3、ee聯(lián)盟制定,主要適合于短距離無線數(shù)據(jù)傳輸,可以構(gòu)成一個無線傳感器網(wǎng)絡(luò)。ZigBee基于802.15.4,它在802.15.4所規(guī)定的物理層和媒體訪問控制層的上面添加了自己的網(wǎng)絡(luò)層、應(yīng)用層和安全服務(wù)規(guī)范。在ZigBee協(xié)議中,根據(jù)設(shè)備的通信能力,可分為全功能設(shè)備(FFD))和精簡功能設(shè)備(RFD);根據(jù)設(shè)備的功能,可以分為協(xié)調(diào)器(coordinator)、路由器(router)和終端設(shè)備(end—device)3種邏輯設(shè)備。協(xié)調(diào)器是一種FFD設(shè)備,它是網(wǎng)絡(luò)的中心節(jié)點(diǎn),負(fù)責(zé)網(wǎng)絡(luò)的啟動和配置。一個網(wǎng)絡(luò)中只允許有一個協(xié)調(diào)器,當(dāng)整個網(wǎng)絡(luò)啟動和配置完成后,它的功能就相當(dāng)于一個路由
4、器。路由器也是一種FFD設(shè)備,它主要負(fù)責(zé)維護(hù)網(wǎng)絡(luò)的路由信息,并轉(zhuǎn)發(fā)消息到其他設(shè)備,擴(kuò)展信號的傳輸范圍。終端設(shè)備可以是FFD設(shè)備或RFD設(shè)備,它具有加入和退出網(wǎng)絡(luò)的功能,并能接收和發(fā)送報文,一般連接傳感器設(shè)備,作為監(jiān)測點(diǎn),可睡眠或喚醒,因此可以用電池供電?;赯igBee協(xié)議的產(chǎn)品很多,其中較為流行的是Digi公司的XBee,因而我們使用的也是Xbee系列的產(chǎn)品。2)XBee的配置XBee的產(chǎn)品種類比較多,不僅有基于ZigBee協(xié)議的,也有支持802.15.4以及藍(lán)牙的,我們選用的是基于ZigBee協(xié)議的XBeeProZB。使用之前我們必須對XBee的相關(guān)參數(shù)進(jìn)行設(shè)定,可
5、以到Digi的官方網(wǎng)站下載最新版的配置軟件X—CTU,其基本界面如下:配置之前需將XBee通過USB口與電腦相連,運(yùn)行X—CTU,在“PCSettings”中里選擇XBee適配器映射出來的USB串口通信端口(USBSerialPort),設(shè)置好波特率等參數(shù),XBee模塊出廠里默認(rèn)的設(shè)置為9600b/s,這個一般不需要更改。點(diǎn)擊Test/Query按鈕,如果正常連接的話會出現(xiàn)一個顯示Modem類型、固件版本以及序列號等信息的對話窗口,其中的序列號是這個無線通信模塊的64位唯一硬件編號。完成測試后到配置軟件的“ModemConfiguration”選項(xiàng)修改“PANID”等參
6、數(shù)并寫入到XBee模塊。PANID指的是兩個或多個無線通信模塊所構(gòu)成的PAN(個域網(wǎng))的ID編號,因此對于屬于同一個網(wǎng)絡(luò)中的XBee模塊來說這個參數(shù)一定要相同。XBee本身只是一個無線的通信模塊,雖然僅使用兩個XBee本身也能夠?qū)崿F(xiàn)兩個點(diǎn)之間的數(shù)據(jù)傳輸,但其只具有通信的功能,不具備什么控制能力,當(dāng)需要擴(kuò)展外部器件如傳感器時幾乎不太可能。為了增強(qiáng)整個系統(tǒng)的功能,最好把它連接到單片機(jī)上,我們選擇開源單片機(jī)開發(fā)平臺Arduino作為XBee模塊的控制面板。用于Arduino擴(kuò)展XBee的擴(kuò)展板有很多種,也可以自己動手直接將XBee模塊接到Arduino控制板上,不過存在一定的
7、風(fēng)險。我們采用的是XBeeV5擴(kuò)展板,市場價格大概在三十元左右。2將XBee連接到ArduinoXBee模塊與AMuino之間其實(shí)就是通過串行接口(即TX和RX引腳)進(jìn)行通信。對于簡單的點(diǎn)對點(diǎn)通信來講,只需要通過串行接口向XBee模塊寫數(shù)據(jù)就可以實(shí)現(xiàn)數(shù)據(jù)的發(fā)送;當(dāng)XBee模塊通過無線通道接收到數(shù)據(jù)時,通過讀串行接口可以很方便地獲得這些數(shù)據(jù)。用X—CTU軟件配置好兩個XBee模塊的參數(shù)后,兩個插上XBee模塊的AMuino控制器就可以像有線RS232串口通信一樣相互傳送數(shù)據(jù)了。當(dāng)然,如果要實(shí)現(xiàn)我們所期望的結(jié)果還需要給Arduino添加一個X