當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]摘要:利用ZigBee技術(shù),組成具有可“自愈”能力的Mesh網(wǎng)絡(luò),實(shí)現(xiàn)無線串口通信。ZigBee技術(shù)的Mesh網(wǎng)絡(luò),單個(gè)模塊的傳輸距離在10~100 m之間,加功放在1 km以上。傳輸速率為250 kb·s-1,完全能滿足一

摘要:利用ZigBee技術(shù),組成具有可“自愈”能力的Mesh網(wǎng)絡(luò),實(shí)現(xiàn)無線串口通信。ZigBee技術(shù)的Mesh網(wǎng)絡(luò),單個(gè)模塊的傳輸距離在10~100 m之間,加功放在1 km以上。傳輸速率為250 kb·s-1,完全能滿足一般用戶的要求。
關(guān)鍵詞:ZigBee技術(shù);Mesh網(wǎng)絡(luò);“自愈”能力;無線串口

    RS-232串行通信是異步通信中應(yīng)用最廣的標(biāo)準(zhǔn)總線,在沒有Modem的情況下,一般傳輸距離限制在15 m內(nèi),使得遠(yuǎn)距離串口通信受到較大限制。無線技術(shù)是當(dāng)今設(shè)備通信中取代有線技術(shù)的必然趨勢(shì)。
    本文利用ZigBee無線技術(shù)組成Mesh網(wǎng)絡(luò)實(shí)施串口通信,網(wǎng)絡(luò)中任意兩個(gè)模塊的傳輸距離可達(dá)100 m,如果模塊有功放,傳輸距離可上升至1.5 km。因?yàn)镸esh網(wǎng)絡(luò)的多跳性,數(shù)據(jù)能夠多跳傳輸,所以數(shù)據(jù)的傳輸距離取決于跳數(shù)的多少,如圖1所示S4經(jīng)過3跳把數(shù)據(jù)傳送到S1,如果每一跳距離是1 km,則傳輸距離達(dá)3 km,這有效地解決了有線串口傳送的距離限制問題。同時(shí),ZigBee網(wǎng)絡(luò)中最大的數(shù)傳速率為250 kb·s-1,完全能滿足一般用戶的要求。



1 ZigBee無線串口設(shè)計(jì)原理
1.1 節(jié)點(diǎn)入網(wǎng)后的初始化
    根據(jù)ZigBee技術(shù)的要求,ZigBee網(wǎng)絡(luò)中存在3種角色,協(xié)調(diào)器、路由和終端設(shè)備,協(xié)調(diào)器負(fù)責(zé)建立網(wǎng)絡(luò),路由器負(fù)責(zé)路由,終端設(shè)備只能收發(fā)數(shù)據(jù)。協(xié)調(diào)器和路由統(tǒng)稱為全功能設(shè)備(FFD)。
    在此,所有的設(shè)備都統(tǒng)稱為節(jié)點(diǎn)(node),只是所扮演的角色不一樣,每個(gè)節(jié)點(diǎn)都人為地在程序里給它們?nèi)∶?,如?1、02、03表示節(jié)點(diǎn)1、節(jié)點(diǎn)2、節(jié)點(diǎn)3,00保留給協(xié)調(diào)器。
    協(xié)調(diào)器(00)加電后組建網(wǎng)絡(luò),各節(jié)點(diǎn)自動(dòng)發(fā)現(xiàn)并加入網(wǎng)絡(luò),根據(jù)本文的設(shè)計(jì),節(jié)點(diǎn)在加入網(wǎng)絡(luò)后都會(huì)自動(dòng)地向網(wǎng)絡(luò)中的其他節(jié)點(diǎn)廣播其16位網(wǎng)絡(luò)地址和名字,網(wǎng)絡(luò)中的其他節(jié)點(diǎn)接收到這廣播數(shù)據(jù)后將該數(shù)據(jù)儲(chǔ)存在數(shù)組NodeAddress[]中,然后以單播的方式向新加入節(jié)點(diǎn)反饋?zhàn)约旱木W(wǎng)絡(luò)地址和名字,新節(jié)點(diǎn)也將該數(shù)據(jù)保存在數(shù)組NodeAddress[]中,從而保證網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都知道其他節(jié)點(diǎn)的網(wǎng)絡(luò)地址和名字。具體流程如圖2所示。


1.2 串口數(shù)據(jù)的格式
    當(dāng)節(jié)點(diǎn)串口有數(shù)據(jù)要發(fā)送的時(shí)候,必須要指明,數(shù)據(jù)的發(fā)送目的地,所以從串口輸入的數(shù)據(jù)必須滿足一定的格式,本設(shè)計(jì)規(guī)定該格式為:××……;××為要發(fā)送的目的節(jié)點(diǎn)名字,……為要發(fā)送的數(shù)據(jù)。譬如向節(jié)點(diǎn)01發(fā)送數(shù)據(jù)“ZigBee”,格式為:01 ZigBee。因?yàn)楣?jié)點(diǎn)在加入網(wǎng)絡(luò)的時(shí)候,已經(jīng)建立了名字和網(wǎng)絡(luò)地址的對(duì)應(yīng)表,所以發(fā)送節(jié)點(diǎn)會(huì)自動(dòng)將01解釋為網(wǎng)絡(luò)地址0x0023,從而將數(shù)據(jù)準(zhǔn)確地發(fā)送到節(jié)點(diǎn)01上。

2 無線串口硬件設(shè)計(jì)
2.1 系統(tǒng)框圖


    串口接收、發(fā)送系統(tǒng)可以是PC或者其他嵌入式系統(tǒng),ZigBee控制系統(tǒng)負(fù)責(zé)組網(wǎng)和接收發(fā)送數(shù)據(jù)。這里主要研究ZigBee控制系統(tǒng)。
2.2 芯片選擇
    選擇TI公司的2.4 GHz片上系統(tǒng)解決方案CC2530。CC2530是用于IEEES02.15.4、ZigBee和RF4CE應(yīng)用的一個(gè)片上系統(tǒng)解決方案。它能以較低的總材料成本建立強(qiáng)大的網(wǎng)絡(luò)節(jié)點(diǎn)。CC2530結(jié)合了領(lǐng)先的RF收發(fā)器的優(yōu)良性能,業(yè)界標(biāo)準(zhǔn)的增強(qiáng)型8051CPU,使操作更容易,具備不同的運(yùn)行模式,尤其適應(yīng)超低功耗要求的系統(tǒng)。
2.3 無線串口電路設(shè)計(jì)
    CC2530中的P0_1和P0_2為TTL電平的串口接收發(fā)送管腳,可直接與TTL電平的串口系統(tǒng)相連,如果與PC機(jī)連,要加上MAX232模塊??梢娫摕o線串口與其他系統(tǒng)的兼容性很強(qiáng),而且連接方便。



3 軟件設(shè)計(jì)
3.1 ZigBee協(xié)議棧簡介
    ZigBee協(xié)議棧以IEEE 802.15.4標(biāo)準(zhǔn)為基礎(chǔ),IEEES02.15.4工作組主要負(fù)責(zé)制定物理層(PHY)、媒體訪問控制層(MAC)。ZigBee聯(lián)盟提供了網(wǎng)絡(luò)層和應(yīng)用層(APL)框架的設(shè)計(jì)。其中,應(yīng)用層的框架包括了應(yīng)用支持子層(APS)、ZigBee設(shè)備對(duì)象(ZDO)及由制造商制定的應(yīng)用對(duì)象。如圖5所示。


    采用TI公司的Z—Stack 07協(xié)議棧實(shí)現(xiàn)ZigBee協(xié)議。Z—Stack 07協(xié)議棧,對(duì)之前幾個(gè)版本的協(xié)議進(jìn)行了改進(jìn),使得網(wǎng)絡(luò)穩(wěn)定性更強(qiáng),組網(wǎng)更靈活。
3.2 主體程序流程與任務(wù)
    TI的Z—Stack 07/PRO協(xié)議棧,對(duì)應(yīng)的開發(fā)環(huán)境為IAR 7.51A。在安裝完Z—Stack 07協(xié)議棧之后,用IAR打開工程文件GenericApp,GenericApp是TI公司專門為開發(fā)者提供的開發(fā)模板,在此借助該模板實(shí)現(xiàn)無線串口。
    打開GenericApp后,如圖6所示,App文件夾即為應(yīng)用層代碼文件夾。利用模板只需在GenericApp.c中加入實(shí)現(xiàn)代碼,就可以實(shí)現(xiàn)無線串口。


    Z—Stack采用操作系統(tǒng)的思想來構(gòu)建,采用任務(wù)輪循機(jī)制,當(dāng)各層初始化之后,系統(tǒng)進(jìn)入低功耗模式,當(dāng)任務(wù)有事件發(fā)生時(shí),喚醒系統(tǒng),開始進(jìn)入中斷處理任務(wù)事件,結(jié)束后繼續(xù)進(jìn)入低功耗模式。如果同時(shí)有幾個(gè)事件發(fā)生,判斷優(yōu)先級(jí),逐次處理事件。Z—Stack的工作流程如圖7所示。


3.3 無線串口程序流程
    因?yàn)閆—Stack是采用任務(wù)輪循機(jī)制,GenericApp是屬于其中的一個(gè)任務(wù),在文件GenericApp.c中的任務(wù)初始化函數(shù)GenericApp_Init()中添加串口初始化代碼,在GenericApp_ProcessEven()函數(shù)中添加無線串口收發(fā)事件Serial_RecEven和Serial_TranEven的處理函數(shù)。圖8和圖9是GenericApp_Init()函數(shù)流程圖和GenericApp_ProcessEven()函數(shù)流程圖。


    圖中初始化NV Flash是用以儲(chǔ)存其他節(jié)點(diǎn)網(wǎng)絡(luò)地址名字對(duì)應(yīng)表。
    當(dāng)節(jié)點(diǎn)上電加入ZigBee網(wǎng)絡(luò)后,便會(huì)執(zhí)行GenericApp_Init()函數(shù),初始化串口,并向網(wǎng)絡(luò)中的其他節(jié)點(diǎn)以廣播的方式發(fā)送其網(wǎng)絡(luò)地址和名字。
    當(dāng)網(wǎng)絡(luò)中的其他節(jié)點(diǎn)接收到數(shù)據(jù)時(shí),便會(huì)觸發(fā)接收數(shù)據(jù)事件,GenericApp_ProcessEven()函數(shù)判斷是串口接收數(shù)據(jù)命令還是儲(chǔ)存網(wǎng)絡(luò)地址命令,如果是前者,便將數(shù)據(jù)寫到串口;如果是后者則先判斷是否來自于廣播方式發(fā)送來的數(shù)據(jù):若是則儲(chǔ)存該網(wǎng)絡(luò)地址和名字,并且以單播的方式回饋本節(jié)點(diǎn)的網(wǎng)絡(luò)地址,保證網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)都知道其他節(jié)點(diǎn)的地址和名字;若不是就儲(chǔ)存該網(wǎng)絡(luò)地址和名字,不用反饋本節(jié)點(diǎn)的網(wǎng)絡(luò)地址和名字。
    當(dāng)GenericApp_ProcessEven()函數(shù)檢測(cè)到Serial_TranEven事件發(fā)生時(shí),便讀串口并將數(shù)據(jù)按照約定的格式發(fā)送出去。

4 實(shí)際測(cè)試
4.1 測(cè)試1
    無功放ZigBee模塊W00與W02,如圖10~圖12所示。

    實(shí)驗(yàn)環(huán)境:足球場(chǎng),可視距離100 m。實(shí)驗(yàn)結(jié)果如圖12所示。
    Node:02 ShortAddress:0x3595是W02加入網(wǎng)絡(luò)后自動(dòng)向W00發(fā)送網(wǎng)絡(luò)地址和名字。因?yàn)閃00是協(xié)調(diào)器,默認(rèn)地址為0x00,已預(yù)存在各模塊中。
4.2 測(cè)試2
    無功放ZigBee模塊W00,W02,W03和W04,實(shí)驗(yàn)環(huán)境:各大樓之間。如圖13所示。


    W00與W02、W03能直接通信,W00經(jīng)過兩跳后可與W04,通信,W02經(jīng)過兩跳后可以與W04通信。實(shí)驗(yàn)結(jié)果截圖如14所示。


    Node:04 ShortAddress:0xE805是W04入網(wǎng)后向W02發(fā)送的網(wǎng)絡(luò)地址和名字,Node:02 ShortAddress:0x3595是W02節(jié)點(diǎn)回饋的網(wǎng)絡(luò)地址和名字。由實(shí)驗(yàn)可知,基于ZigBee的無線串口通信,數(shù)據(jù)傳輸穩(wěn)定、可靠,有效解決長距離串口通信問題。

5 Mesh網(wǎng)絡(luò)無線串口的特點(diǎn)
    (1)能夠遠(yuǎn)距離串口通信。通信距離取決于單個(gè)節(jié)點(diǎn)的有效傳輸距離和跳數(shù),一般無功放模塊傳輸距離為100 m,經(jīng)過5跳可以傳輸500 m的距離。如果加上功放,單個(gè)節(jié)點(diǎn)的傳輸距離為1.5 km,5跳為7.5 km。缺點(diǎn)是加上功放,成本增加。
    (2)Mesh網(wǎng)絡(luò)具有自愈能力,當(dāng)某條路徑被切斷,節(jié)點(diǎn)會(huì)自動(dòng)尋找另外的路徑傳輸數(shù)據(jù),如圖15所示。


    (3)兼容性好,易安裝。簡單的串口線連接。由圖4可知,從模塊中引出4根TTL電平的串口線,直接可以與嵌入式系統(tǒng)連接,或者加上MAX232便可以與PC連接。

6 結(jié)束語
    利用ZigBee無線技術(shù)組成Mesh網(wǎng)絡(luò)實(shí)施串口通信,無線通信距離取決于單跳距離和跳數(shù),而默認(rèn)最大跳數(shù)為20,但多跳的出現(xiàn)會(huì)導(dǎo)致數(shù)據(jù)延時(shí),出現(xiàn)誤碼。建議跳數(shù)控制在5跳之內(nèi),此時(shí)數(shù)據(jù)傳輸穩(wěn)定、時(shí)延短、誤碼率低,能有效地解決有線串口距離限制的問題。

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

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

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

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

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

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(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中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

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

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

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

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

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

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(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年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

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