張海濤 廖經(jīng)文 紀(jì)春龍 袁沛華 劉華珠
(東莞理工學(xué)院 電子工程學(xué)院,廣東東莞 523808)
ZigBee無(wú)線通訊聊天室的設(shè)計(jì)與實(shí)現(xiàn)
張海濤 廖經(jīng)文 紀(jì)春龍 袁沛華 劉華珠
(東莞理工學(xué)院 電子工程學(xué)院,廣東東莞 523808)
由上位機(jī)串口通信程序控制電腦串口發(fā)送數(shù)據(jù),經(jīng)適配板和ZigBee模塊無(wú)線傳輸至另一個(gè)ZigBee模塊和適配板,通過(guò)電腦串口接收數(shù)據(jù),并通過(guò)電腦界面顯示數(shù)據(jù)內(nèi)容,實(shí)現(xiàn)ZigBee無(wú)線QQ的過(guò)程。系統(tǒng)可以實(shí)現(xiàn)ZigBee無(wú)線QQ的基本功能,并具有友好用戶界面,充分發(fā)揮了人性化的特點(diǎn)。
ZigBee;無(wú)線傳輸;無(wú)線QQ;人性化
QQ聊天室作為一種潮流已經(jīng)深深地扎根在人們的日常生活中了,QQ聊天室在工作上和生活上都是必要的,在辦公室里,與同事或者客戶交流,需要用到聊天室;生活上,需要和朋友或家人保持聯(lián)系;作為一種娛樂(lè)方式,也是必不可少的。順應(yīng)這個(gè)潮流,本文研究了一種新的無(wú)線QQ聊天室技術(shù),結(jié)合ZigBee技術(shù),學(xué)習(xí)無(wú)線傳感器網(wǎng)絡(luò)的技術(shù),開(kāi)發(fā)出一套完全脫離互聯(lián)網(wǎng)的無(wú)線QQ聊天室技術(shù),無(wú)需繁瑣的登陸過(guò)程,也不需要擔(dān)心中毒的風(fēng)險(xiǎn),覆蓋距離廣,最大距離可達(dá)1.6公里。
ZigBee是基于IEEE802.15.4標(biāo)準(zhǔn)的低功耗個(gè)域網(wǎng)協(xié)議,是一種嶄新的,專注于低功耗、低成本、低復(fù)雜度、低速率的近程無(wú)線網(wǎng)絡(luò)通信技術(shù),通過(guò)ZigBee無(wú)線傳輸模塊實(shí)現(xiàn)無(wú)線QQ的功能并配合上位機(jī)實(shí)現(xiàn)該系統(tǒng),可以了解并利用最新的無(wú)線通信技術(shù)和更好的把該技術(shù)應(yīng)用到實(shí)際生活中去。
該方案充分發(fā)揮人性化的特點(diǎn),利用ZigBee強(qiáng)大和靈活的功能,配合上位機(jī)串口通信程序?qū)崿F(xiàn)了ZigBee無(wú)線QQ系統(tǒng)[1-2]。
本系統(tǒng)主要由上位機(jī)程序、ZigBee無(wú)線傳輸模塊組成。上位機(jī)程序使用VB語(yǔ)言編程,它源自于BASIC編程語(yǔ)言。VB擁有圖形用戶界面(GUI)和快速應(yīng)用程序開(kāi)發(fā)(RAD)系統(tǒng),可以輕易的使用DAO、RDO、ADO連接數(shù)據(jù)庫(kù),或者輕松的創(chuàng)建ActiveX控件[3]。
本設(shè)計(jì)的核心為ZigBee無(wú)線傳輸模塊,ZigBee無(wú)線傳輸模塊的特點(diǎn)是近距離、低復(fù)雜度、自組織、低功耗、高數(shù)據(jù)速率、低成本。主要適合用于自動(dòng)控制和遠(yuǎn)程控制領(lǐng)域,可以嵌入各種設(shè)備。
系統(tǒng)組成框圖如圖1所示:
圖1 系統(tǒng)組成框圖
2.1 芯片選擇
在無(wú)線傳輸模塊中,我們選擇德州儀器(TI)ZigBee SoC射頻芯片CC2530,此芯片集成了單周期的8051兼容內(nèi)核、ADC、USART等。具有8KB RAM和256KB的閃存,支持SPI串行調(diào)試下載(這里我們使用了P1.5-SCK、P1.6-MOSI、P1.7-MISO),并且支持ZigBee協(xié)議棧。
主要功能:串口(UART)轉(zhuǎn)Zigbee無(wú)線數(shù)據(jù)透明傳輸[4],ZigBee模塊可加載數(shù)據(jù)透明傳輸協(xié)議,簡(jiǎn)單易用,用戶不用考慮ZigBee協(xié)議,就像使用串口線一樣使用ZigBee無(wú)線模塊。除了透明傳輸,任何節(jié)點(diǎn)之間可通過(guò)區(qū)域組網(wǎng)后以“點(diǎn)對(duì)點(diǎn)”方式進(jìn)行通訊,或進(jìn)行組網(wǎng)內(nèi)的信息群發(fā)等。
主要特點(diǎn)為:
1)可實(shí)現(xiàn)自動(dòng)組網(wǎng)。
2)自動(dòng)路由,假設(shè)A與B之間的距離太遠(yuǎn)而不能通信,則只需在A和B之間增加若干個(gè)模塊,則該模塊能自動(dòng)為A和B提供路由。
3)自動(dòng)路由修復(fù),如果某個(gè)路由路徑損壞(某個(gè)模塊斷電),網(wǎng)絡(luò)能自動(dòng)尋找新的路由路徑,達(dá)到自動(dòng)修復(fù)路由路徑的目的。
ZigBee模塊的組網(wǎng):
ZigBee網(wǎng)絡(luò)通常有三種節(jié)點(diǎn)構(gòu)成。coordinator:用來(lái)創(chuàng)建一個(gè)ZigBee網(wǎng)絡(luò),并為最初加入網(wǎng)絡(luò)的節(jié)點(diǎn)分配地址,每個(gè)ZigBee網(wǎng)絡(luò)需要且只需要一個(gè)coordinator;Router:也稱為ZigBee全功能節(jié)點(diǎn),可以轉(zhuǎn)發(fā)數(shù)據(jù),起到路由的作用,也可以收發(fā)數(shù)據(jù),當(dāng)成一個(gè)數(shù)據(jù)節(jié)點(diǎn),還能保持網(wǎng)絡(luò),為后加入的節(jié)點(diǎn)分配地址;End Device:終端節(jié)點(diǎn)。通常定義為電池重點(diǎn)的低功耗設(shè)備,通常只周期性發(fā)送數(shù)據(jù),不接收數(shù)據(jù)[5]。
本系統(tǒng)的主要功能是無(wú)線數(shù)據(jù)傳輸,即每個(gè)節(jié)點(diǎn)隨時(shí)能夠收發(fā)數(shù)據(jù),本系統(tǒng)的配置只有coordinator、End Device。
2.2 電源電路設(shè)計(jì)
CC2530芯片的供電電壓為直流3.3 V[6]。適配板采用USB5V輸入電壓,通過(guò)ASM1117芯片產(chǎn)生3.3 V直流電源提供給CC2530。電源電路圖如圖2所示:
圖2 電源電路圖
2.3 射頻輸入輸出電路設(shè)計(jì)
CC2530的差分信號(hào)輸入和輸出管腳是RF-P和RF-N,在這里我們采用分立電容和電感來(lái)實(shí)現(xiàn)雙端差分轉(zhuǎn)單端,讓射頻收發(fā)信號(hào)能夠匹配起來(lái)。如圖3所示:
圖3 射頻輸入輸出電路
2.4 串口電路設(shè)計(jì)
CH340是一個(gè)USB總線的轉(zhuǎn)接芯片,能夠?qū)崿F(xiàn)USB轉(zhuǎn)串口功能。在串口方式下,CH340提供常用的MODEM聯(lián)絡(luò)信號(hào),用于為計(jì)算機(jī)擴(kuò)展異步串口,或者將普通的串口設(shè)備直接升級(jí)到USB總線。在我們的聊天室設(shè)計(jì)中,無(wú)線傳輸模塊與上位機(jī)的通信的數(shù)據(jù)通過(guò)USB轉(zhuǎn)串口芯片CH340處理后從USB虛擬串口輸入輸出,如圖4所示。
圖4 串口電路設(shè)計(jì)
3.1 軟件設(shè)計(jì)框圖(圖5)
圖5 軟件設(shè)計(jì)框圖
1)Zigbee模塊數(shù)據(jù)發(fā)送函數(shù):
AF-DataReruest(&GenericApp-TxAddr,
(endPointDesc-t*)&GenericApp-epDesc,
GENERICAPP-CLUSTERID1,
GenericApp-TxLen+5,GenericApp-TxBuf,
&GenericApp-MsgID,0,AF-DEFAULT-RADIUS)
①在&GenericApp-TxAddr參數(shù)中包含了目的節(jié)點(diǎn)的網(wǎng)絡(luò)地址以及發(fā)送數(shù)據(jù)的格式,如廣播、多播或單播等;
②對(duì)參數(shù)&GenericApp-epDesc,在Zigbee無(wú)線網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)還具有不同的通信端口,可通過(guò)該參數(shù)確定通信端口。
2)Zigbee模塊數(shù)據(jù)接收處理代碼:
MSGpkt=(afIncomingMSGPacket-t*)
osal-msg-receive(GenericApp-Task ID);
while(MSGpkt)
{
switch(MSGpkt->hdr.event)
{
case AF-INCOMING-MSG-CMD:
GenericApp-ProcessMSGCmd(MSGpkt);
break;
……
在該代碼段中,首先使用osal-msg-receive函數(shù)從消息隊(duì)列中接收一個(gè)消息,然后使用switch-case語(yǔ)句對(duì)消息類型進(jìn)行判斷,如果消息ID是AF-INCOMING-MSG-CMD則進(jìn)行相應(yīng)的數(shù)據(jù)處理。
3.2 上位機(jī)用戶界面設(shè)計(jì)
在通信界面中,用戶可獲知本節(jié)點(diǎn)的網(wǎng)絡(luò)號(hào),并可實(shí)時(shí)查看本組網(wǎng)中該節(jié)點(diǎn)所連接的其他網(wǎng)絡(luò)節(jié)點(diǎn)號(hào)。在進(jìn)行信息通信時(shí),用戶可選擇具體的單一節(jié)點(diǎn)進(jìn)行單播通信,亦可選擇群發(fā)方式進(jìn)行廣播通信。除此之外,用戶還可以設(shè)定昵稱以及查看聊天記錄,避免因清屏或重啟后忘了聊天內(nèi)容,丟失重要信息。
3.3 實(shí)驗(yàn)調(diào)試與結(jié)果分析
首先,利用IAR Embedded Workbench IDE軟件將Zigbee模塊的通信程序燒寫(xiě)到Zigbee模塊中,其中一個(gè)模塊Debug為協(xié)調(diào)器,其他模塊Debug為終端器。在上電后,Zigbee模塊將自動(dòng)組網(wǎng),形成一個(gè)局域網(wǎng),此時(shí)便可打開(kāi)上位機(jī)進(jìn)行通信。針對(duì)上位機(jī)的特有功能,逐一進(jìn)行驗(yàn)證,如獲取網(wǎng)絡(luò)號(hào)功能,通過(guò)斷開(kāi)或接通某一網(wǎng)絡(luò)節(jié)點(diǎn),查看所連網(wǎng)絡(luò)節(jié)點(diǎn)是否實(shí)時(shí)發(fā)生變化。
經(jīng)過(guò)多次的實(shí)驗(yàn)調(diào)試與改進(jìn),該聊天系統(tǒng)基本穩(wěn)定,能夠?qū)崿F(xiàn)正常的聊天功能,達(dá)到了設(shè)計(jì)的要求。當(dāng)然,該系統(tǒng)仍存在不足之處,比如無(wú)法傳送文件等,在今后將逐步完善,增加功能,增強(qiáng)系統(tǒng)的穩(wěn)定性。
基于Zigbee模塊的無(wú)線QQ聊天系統(tǒng),利用了Zigbee模塊的自動(dòng)組網(wǎng)功能,實(shí)現(xiàn)組網(wǎng)內(nèi)的信息無(wú)線收發(fā),可脫離現(xiàn)有的電信網(wǎng)絡(luò)等,在組網(wǎng)內(nèi)免受斷網(wǎng)或無(wú)網(wǎng)絡(luò)接口的影響,真正實(shí)現(xiàn)通信獨(dú)立。且操作界面簡(jiǎn)單,人性化,操作方便,適用性較強(qiáng),在家庭里或公司內(nèi)部等局域里具有很大的應(yīng)用前景。該系統(tǒng)除了現(xiàn)有的聊天功能外,還具有很大的拓展性,利用其組網(wǎng)功能可設(shè)計(jì)智能家居等更加強(qiáng)大的系統(tǒng),為進(jìn)一步設(shè)計(jì)研究提供參考價(jià)值,因此,對(duì)該聊天系統(tǒng)的研究是非常有意義的。
[1] 李江全,張麗,岑紅蕾.Visual Basic串口通信與測(cè)控應(yīng)用技術(shù)實(shí)戰(zhàn)詳解[M].北京:人民郵電出版社,2007.
[2] 劉炳文.Visual Basic程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,2009.
[3] 明日科技.Visual Basic從入門到精通[M].北京:清華大學(xué)出版社,2012.
[4] 王小強(qiáng),歐陽(yáng)駿,黃寧淋.ZigBee無(wú)線傳感器網(wǎng)絡(luò)設(shè)計(jì)與實(shí)現(xiàn)[M].北京:化學(xué)工業(yè)出版社,2012.
[5] 李文仲,段朝玉.ZigBee2007/PRO協(xié)議棧實(shí)驗(yàn)與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2009.
[6] (美)布魯克斯.信號(hào)完整性與PCB設(shè)計(jì)[M].劉雷波,趙巖,譯.北京:電子工業(yè)出版社,2012.
Design and Implementation of ZigBee WirelessCommunication Chat Room
ZHANG Ha i-tao LIAO Jing-wen JIChun-long YUAN Pei-hua LIU Hua-zhu
(College of Electronic Engineering,Dongguan University of Technology,Dongguan 523808,China)
This design uses ZigBee wireless transmission module,combined with PC serial communication program,sending datas through a computer serial port.On the condition that the adaptation module and ZigBeemodule transfer datas to another Zig-Beemodule and the adapter boar,the dataswill be
by the computer serial port,thus the process of ZigBee wireless QQ will be achieved.The system can achieve the basic functions of ZigBee wireless QQ and a user-friendly interface,giving full play to the characteristics of human nature.
ZigBee;wireless transmission;wireless QQ;humanization
TN925
A
1009—0312(2014)03—0012—05
2013-04-08
張海濤,(1991—),男,廣東汕頭人,主要從事信息的獲取與處理技術(shù)研究。