李 偉 黃尤來 陳德鵬 劉建華
(1.莆田學(xué)院電子信息工程學(xué)系,福建 莆田 351100 2.莆田市科學(xué)技術(shù)情報研究所,福建 莆田 351100)
ZigBee是一種新興的短距離無線通信技術(shù),ZigBee技術(shù)正有力地推動著低速率無線個人局域網(wǎng)絡(luò)的發(fā)展。ZigBee標(biāo)準(zhǔn)專注于低功耗,低成本,低傳輸速,可以應(yīng)用于工業(yè)控制,家庭自動化,遠(yuǎn)程控制等領(lǐng)域。
GSM是當(dāng)前應(yīng)用最為廣泛的移動電話標(biāo)準(zhǔn)。GSM網(wǎng)絡(luò)提供語音和短信消息等服務(wù)。GSM網(wǎng)絡(luò)已在全球范圍內(nèi)實現(xiàn)了聯(lián)網(wǎng),不需要重新組建專用網(wǎng)絡(luò),可靠性高,覆蓋面廣。基于GSM網(wǎng)絡(luò)的短消息應(yīng)用可以滿足多種監(jiān)控和控制信號的數(shù)字通信系統(tǒng)的要求。
采用ZigBee技術(shù)構(gòu)建局部網(wǎng)絡(luò)與GSM全面網(wǎng)絡(luò)相連接,實現(xiàn)電子秤數(shù)據(jù)的遠(yuǎn)程監(jiān)測。系統(tǒng)總體框架如圖1所示,其中一個ZigBee網(wǎng)絡(luò)必須有且只有一個ZigBee網(wǎng)絡(luò)協(xié)調(diào)器節(jié)點(diǎn),該節(jié)點(diǎn)負(fù)責(zé)建立網(wǎng)絡(luò)管理其他節(jié)點(diǎn)。
圖1 系統(tǒng)總體框架圖
為實現(xiàn)對電子秤數(shù)據(jù)的采集與遠(yuǎn)程監(jiān)測,系統(tǒng)采用新型ZigBee無線通信芯片CC2530及GSM模塊實現(xiàn),CC2530是用于IEEE 802.15.4、ZigBee和RF4CE應(yīng)用的一款片上系統(tǒng)解決方案,其內(nèi)部所配置的增強(qiáng)型8051 CPU,用作控制核心,兼具控制器及通信模塊用。系統(tǒng)硬件框圖及實際模塊見圖2、3、4。
ZigBee網(wǎng)絡(luò)的組建采用TI公司提供的zstack協(xié)議棧進(jìn)行設(shè)計。Zstack協(xié)議棧包括:ZigBee協(xié)議棧和一個為協(xié)議棧服務(wù)的微小操作系統(tǒng)OSAL。應(yīng)用程序的設(shè)計,建立在OSAL結(jié)構(gòu)下對ZigBee協(xié)議棧的API函數(shù)的調(diào)用。
本次設(shè)計主要用到的OSAL API有:
為信息分配緩存空間:uint8*osal_msg_allocate(uint16 len)
刪除信息分配的緩存空間:uint8 osal_msg_deallocate(uint8 *msg_ptr)
任務(wù)發(fā)送數(shù)據(jù):uint8 osal_msg_send(uint8 destination_task,uint8*msg_ptr)
任務(wù)接收信息:(任務(wù)間的接收和網(wǎng)絡(luò)中的接收)uint8* osal_msg_receive(uint8 task_id)
本次設(shè)計主要用到的z-stack API有:
定義一個組:ZStatus_t aps_AddGroup(uint8 endpoint,aps_ Group_t*group);
刪除一個組:uint8 aps_RemoveGroup(uint8 endpoint,uint16 groupID);
組查詢:aps_Group_t*aps_FindGroup(uint8 endpoint,uint16 groupID);
無線發(fā)送數(shù)據(jù)函數(shù):afStatus_t AF_DataRequest()
z-stack常用的幾種通信方式有:單點(diǎn)傳送(Unicast),間接傳送(Indirect),廣播傳送(broadcast),組尋址(Group Addressing)。本設(shè)計采用組尋址的通信方式,及應(yīng)用程序?qū)?shù)據(jù)包發(fā)送給網(wǎng)絡(luò)上的某一組設(shè)備。地址模式需要設(shè)置為afAddr-Group并且addr.shortAddr設(shè)置為組ID。在使用組尋址通信前之前,必須在網(wǎng)絡(luò)中定義組。
AT指令是GSM模塊軟件設(shè)計的主要組成部分。用戶通過對GSM模塊發(fā)送AT指令完成對GSM模塊的控制和狀態(tài)查詢。網(wǎng)絡(luò)連接節(jié)點(diǎn)負(fù)責(zé)通過串口向GSM模塊發(fā)送AT指令集進(jìn)行ZigBee網(wǎng)絡(luò)中的數(shù)據(jù)與GSM網(wǎng)絡(luò)的鏈接。本次設(shè)計中用到的AT指令有:
1 查看當(dāng)前網(wǎng)絡(luò)注冊狀態(tài):
AT+CREG?
返回數(shù)據(jù)+CREG:0,1表示注冊成功
2 設(shè)置短信模式:
AT+CMGF=1
其中1表示text模式,只能發(fā)送數(shù)字與字母,0表示PDU模式可發(fā)送文字。
3 發(fā)送英文短信:
發(fā):AT+CMGF=1 //設(shè)置為text模式
發(fā):"AT+CMGS=”電話號碼” " //短信接收的號碼
發(fā):data //data為發(fā)送內(nèi)容,
發(fā):0x1a //結(jié)束符
收:+CMGS:54 OK //成功響應(yīng)
設(shè)計三種節(jié)點(diǎn)的應(yīng)用程序:ZigBee網(wǎng)絡(luò)協(xié)調(diào)器,ZigBee采集節(jié)點(diǎn),ZigBee網(wǎng)絡(luò)與GSM網(wǎng)絡(luò)連接節(jié)點(diǎn)。
ZigBee網(wǎng)絡(luò)協(xié)調(diào)器:采用z-stack的網(wǎng)絡(luò)協(xié)調(diào)器程序框架(CoordinatorEB),基本配置后,加入組1(本設(shè)計中組ID設(shè)為1)。
ZigBee采集節(jié)點(diǎn):采用 z-stack的路由器程序框架(RouterEB)或者終端節(jié)點(diǎn)框架(EnddeviceEB)?;九渲煤?,加入組1。添加修改后適合CC2530的電子秤采集程序,主要應(yīng)用任務(wù):任務(wù)a負(fù)責(zé)采集電子秤相關(guān)數(shù)據(jù)并且傳給任務(wù)b,任務(wù)b負(fù)責(zé)把數(shù)據(jù)傳送到ZigBee網(wǎng)絡(luò)中的組1成員。
ZigBee網(wǎng)絡(luò)與GSM網(wǎng)絡(luò)連接節(jié)點(diǎn):采用z-stack的路由器程序框架(RouterEB)或者終端節(jié)點(diǎn)框架(EnddeviceEB)?;九渲煤螅尤虢M1。主要應(yīng)用任務(wù):任務(wù)A負(fù)責(zé)接收ZigBee網(wǎng)絡(luò)中傳送的數(shù)據(jù)并在其LCD上顯示出各個采集節(jié)點(diǎn)的測量數(shù)據(jù),并判斷是否把數(shù)據(jù)傳送給任務(wù)B。任務(wù)B負(fù)責(zé)鏈接GSM模塊,實現(xiàn)把測量數(shù)據(jù)通過串口以AT指令發(fā)短信的形式傳送給GSM網(wǎng)絡(luò)(GSM網(wǎng)絡(luò)內(nèi)部數(shù)據(jù)傳送由GSM模塊完成),GSM網(wǎng)絡(luò)使數(shù)據(jù)最終交付給手機(jī)端;完成ZigBee網(wǎng)絡(luò)的數(shù)據(jù)采集。
將本解決方案應(yīng)用于對莆田市上得利電子儀器有限公司的ADS-30A型收銀秤,通過本系統(tǒng),所測節(jié)點(diǎn)數(shù)據(jù)獲取見圖5。
圖5 終端界面與手機(jī)界面
本文提出的設(shè)計實現(xiàn)了對多個電子秤節(jié)點(diǎn)數(shù)據(jù)的獲取與遠(yuǎn)程監(jiān)測,實際測量結(jié)果良好,基于本文所提出的方法,完全可以應(yīng)用于其他相類型多點(diǎn)數(shù)據(jù)遠(yuǎn)程監(jiān)測系統(tǒng)。
[1]李文仲,段朝玉,等.ZigBee2007/pro協(xié)議棧實驗與實踐[M].北京:北京航空航天大學(xué)出版社,2009.
[2]高守緯,吳燦陽,等.ZigBee技術(shù)實踐教程[M].北京:北京航空航天大學(xué)出版社,2009.
[3]肖碩,荊剛,等.單片機(jī)數(shù)據(jù)通信典型應(yīng)用大全[M].北京:中國鐵道出版社,2011.
[4]林志雄,黃劍航.一種低轉(zhuǎn)換速率下的電子天平濾波處理方案[J].計算機(jī)與數(shù)字工程,2009:37(11):40-43.