李 偉 黃尤來 陳德鵬 劉建華
(1.莆田學院電子信息工程學系,福建 莆田 351100 2.莆田市科學技術情報研究所,福建 莆田 351100)
ZigBee是一種新興的短距離無線通信技術,ZigBee技術正有力地推動著低速率無線個人局域網絡的發展。ZigBee標準專注于低功耗,低成本,低傳輸速,可以應用于工業控制,家庭自動化,遠程控制等領域。
GSM是當前應用最為廣泛的移動電話標準。GSM網絡提供語音和短信消息等服務。GSM網絡已在全球范圍內實現了聯網,不需要重新組建專用網絡,可靠性高,覆蓋面廣。基于GSM網絡的短消息應用可以滿足多種監控和控制信號的數字通信系統的要求。
采用ZigBee技術構建局部網絡與GSM全面網絡相連接,實現電子秤數據的遠程監測。系統總體框架如圖1所示,其中一個ZigBee網絡必須有且只有一個ZigBee網絡協調器節點,該節點負責建立網絡管理其他節點。

圖1 系統總體框架圖
為實現對電子秤數據的采集與遠程監測,系統采用新型ZigBee無線通信芯片CC2530及GSM模塊實現,CC2530是用于IEEE 802.15.4、ZigBee和RF4CE應用的一款片上系統解決方案,其內部所配置的增強型8051 CPU,用作控制核心,兼具控制器及通信模塊用。系統硬件框圖及實際模塊見圖2、3、4。



ZigBee網絡的組建采用TI公司提供的zstack協議棧進行設計。Zstack協議棧包括:ZigBee協議棧和一個為協議棧服務的微小操作系統OSAL。應用程序的設計,建立在OSAL結構下對ZigBee協議棧的API函數的調用。
本次設計主要用到的OSAL API有:
為信息分配緩存空間:uint8*osal_msg_allocate(uint16 len)
刪除信息分配的緩存空間:uint8 osal_msg_deallocate(uint8 *msg_ptr)
任務發送數據:uint8 osal_msg_send(uint8 destination_task,uint8*msg_ptr)
任務接收信息:(任務間的接收和網絡中的接收)uint8* osal_msg_receive(uint8 task_id)
本次設計主要用到的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);
無線發送數據函數:afStatus_t AF_DataRequest()
z-stack常用的幾種通信方式有:單點傳送(Unicast),間接傳送(Indirect),廣播傳送(broadcast),組尋址(Group Addressing)。本設計采用組尋址的通信方式,及應用程序將數據包發送給網絡上的某一組設備。地址模式需要設置為afAddr-Group并且addr.shortAddr設置為組ID。在使用組尋址通信前之前,必須在網絡中定義組。
AT指令是GSM模塊軟件設計的主要組成部分。用戶通過對GSM模塊發送AT指令完成對GSM模塊的控制和狀態查詢。網絡連接節點負責通過串口向GSM模塊發送AT指令集進行ZigBee網絡中的數據與GSM網絡的鏈接。本次設計中用到的AT指令有:
1 查看當前網絡注冊狀態:
AT+CREG?
返回數據+CREG:0,1表示注冊成功
2 設置短信模式:
AT+CMGF=1
其中1表示text模式,只能發送數字與字母,0表示PDU模式可發送文字。
3 發送英文短信:
發:AT+CMGF=1 //設置為text模式
發:"AT+CMGS=”電話號碼” " //短信接收的號碼
發:data //data為發送內容,
發:0x1a //結束符
收:+CMGS:54 OK //成功響應
設計三種節點的應用程序:ZigBee網絡協調器,ZigBee采集節點,ZigBee網絡與GSM網絡連接節點。
ZigBee網絡協調器:采用z-stack的網絡協調器程序框架(CoordinatorEB),基本配置后,加入組1(本設計中組ID設為1)。
ZigBee采集節點:采用 z-stack的路由器程序框架(RouterEB)或者終端節點框架(EnddeviceEB)。基本配置后,加入組1。添加修改后適合CC2530的電子秤采集程序,主要應用任務:任務a負責采集電子秤相關數據并且傳給任務b,任務b負責把數據傳送到ZigBee網絡中的組1成員。
ZigBee網絡與GSM網絡連接節點:采用z-stack的路由器程序框架(RouterEB)或者終端節點框架(EnddeviceEB)。基本配置后,加入組1。主要應用任務:任務A負責接收ZigBee網絡中傳送的數據并在其LCD上顯示出各個采集節點的測量數據,并判斷是否把數據傳送給任務B。任務B負責鏈接GSM模塊,實現把測量數據通過串口以AT指令發短信的形式傳送給GSM網絡(GSM網絡內部數據傳送由GSM模塊完成),GSM網絡使數據最終交付給手機端;完成ZigBee網絡的數據采集。
將本解決方案應用于對莆田市上得利電子儀器有限公司的ADS-30A型收銀秤,通過本系統,所測節點數據獲取見圖5。

圖5 終端界面與手機界面
本文提出的設計實現了對多個電子秤節點數據的獲取與遠程監測,實際測量結果良好,基于本文所提出的方法,完全可以應用于其他相類型多點數據遠程監測系統。
[1]李文仲,段朝玉,等.ZigBee2007/pro協議棧實驗與實踐[M].北京:北京航空航天大學出版社,2009.
[2]高守緯,吳燦陽,等.ZigBee技術實踐教程[M].北京:北京航空航天大學出版社,2009.
[3]肖碩,荊剛,等.單片機數據通信典型應用大全[M].北京:中國鐵道出版社,2011.
[4]林志雄,黃劍航.一種低轉換速率下的電子天平濾波處理方案[J].計算機與數字工程,2009:37(11):40-43.