當(dāng)前位置:首頁(yè) > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀] 近距離的無(wú)線通信技術(shù)近幾年有很大的發(fā)展,其中WiFi(IEEE 802.11)、藍(lán)牙以及ZigBee是應(yīng)用比較多的幾種標(biāo)準(zhǔn)。這幾種協(xié)議側(cè)重點(diǎn)各有不同,相對(duì)于前面兩者來(lái)講,Zig Bee由于其可靠性、低功耗及安全性等特性在無(wú)線傳感

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

1 ZigBee

1)簡(jiǎn)介

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

2)XBee的配置

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

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

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

2 將XBee連接到Arduino

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

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

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

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

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

1)起始符

2)數(shù)據(jù)部分的長(zhǎng)度(用2個(gè)字節(jié)的十六進(jìn)制表示)

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

4)校驗(yàn)和

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

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

3 結(jié)論

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉