曹幼霖
(成都信息工程學(xué)院 通信工程學(xué)院,成都 610225)
曹幼霖(碩士研究生),主要研究方向?yàn)闊o線傳感器網(wǎng)絡(luò)。
ZigBee是一種短距離、低速率無線網(wǎng)絡(luò)技術(shù),具有低功耗、低成本、易于組網(wǎng)、高可靠性等優(yōu)點(diǎn),在諸多場合有著廣泛應(yīng)用[1],但ZigBee僅作為現(xiàn)場數(shù)據(jù)采集與控制的局域網(wǎng),覆蓋區(qū)域十分有限,難以滿足當(dāng)前遠(yuǎn)距離數(shù)據(jù)采集與控制的需求。本文所設(shè)計(jì)的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)采用ZigBee與GPRS技術(shù)實(shí)現(xiàn)了遠(yuǎn)程的數(shù)據(jù)采集與控制[2],并結(jié)合嵌入式Web Server與RFID射頻識別方案,實(shí)現(xiàn)了通過瀏覽器和射頻識別卡進(jìn)行關(guān)鍵配置數(shù)據(jù)修改和臨時(shí)系統(tǒng)控制,具有較高的安全性與靈活性。另外,現(xiàn)場數(shù)據(jù)采集端的設(shè)備與數(shù)據(jù)接收/控制端的設(shè)備在硬件上具有較高的重復(fù)利用度。
整個(gè)系統(tǒng)主要由ZigBee節(jié)點(diǎn)、GPRS模塊、嵌入式Web Server以及PN532[3]RFID模塊4個(gè)部分構(gòu)成。其中ZigBee節(jié)點(diǎn)采用TI公司的CC2530[4]方案實(shí)現(xiàn),應(yīng)用于現(xiàn)場的無線組網(wǎng)與數(shù)據(jù)采集、控制,ZigBee網(wǎng)絡(luò)中的終端節(jié)點(diǎn)將采集到的數(shù)據(jù)通過自組織網(wǎng)絡(luò)匯集到協(xié)調(diào)器節(jié)點(diǎn);GPRS模塊采用SIMCOM公司的SIM900A[5]模塊、ST公司的STM32[6]MCU,以及其他必要外圍電路組成,負(fù)責(zé)將數(shù)據(jù)轉(zhuǎn)發(fā)至控制終端,建立與固定IP的TCP/UDP連接;嵌入式 Web Server采用TI公司的LM3S9D92[7]實(shí)現(xiàn),通過嵌入式Web Server對整個(gè)系統(tǒng)進(jìn)行基本管理、數(shù)據(jù)顯示,并將ZigBee網(wǎng)絡(luò)中協(xié)調(diào)器節(jié)點(diǎn)采集的數(shù)據(jù)或GPRS模塊輸出的數(shù)據(jù)雙向轉(zhuǎn)發(fā);PN532RFID模塊由LM3S9D92驅(qū)動,實(shí)現(xiàn)修改、配置系統(tǒng)關(guān)鍵信息前的授權(quán)認(rèn)證管理(身份識別),以保證系統(tǒng)信息不被惡意篡改。整個(gè)遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)框圖
ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)采用CC2530F256進(jìn)行設(shè)計(jì),工作在2.4GHz頻段,是符合IEEE 802.15.4規(guī)范的SoC解決方案。片內(nèi)集成高速8051內(nèi)核,支持ZigBee2007PRO協(xié)議棧;具有2~3.6V的供電范圍以及良好的電源管理功能,可實(shí)現(xiàn)較低的運(yùn)行功耗。實(shí)際電路設(shè)計(jì)采用核心板與擴(kuò)展底板結(jié)合的方式,核心板引出CC2530最小系統(tǒng),未使用的GPIO供擴(kuò)展底板使用,在擴(kuò)展底板上實(shí)現(xiàn)了三線制RS-232串口、指示LED、調(diào)試接口,以及其他必備外部應(yīng)用電路。
GPRS模塊通信部分采用了SIMCOM公司的SIM900A模塊,SIM900A模塊是專門面向中國大陸市場設(shè)計(jì)的雙頻GSM/GPRS模塊,工作頻段為EGSM 900 MHz和DCS 1800MHz,可以自動地搜尋兩個(gè)頻段,內(nèi)嵌完整TCP/IP協(xié)議。微控制器采用ST公司的STM32F103C8[6],該芯片具有雙串口和一個(gè)硬件SPI接口,十分符合本系統(tǒng)GPRS模塊使用要求,且具有較高的性價(jià)比,使用SPI Flash W25X16作為外部掉電存儲器記錄GPRS模塊相關(guān)配置信息。
嵌入式Web Server采用TI公司推出的LM3S9D92 Cortex-M3MCU實(shí)現(xiàn),該芯片集成以太網(wǎng) MAC+PHY接口,可直接連接含網(wǎng)絡(luò)變壓器的RJ45接口,大大簡化了以太網(wǎng)部分的外圍電路,十分符合設(shè)計(jì)需求。RFID模塊部分采用NXP公司PN532的解決方案,PN532是一個(gè)高度集成的非接觸讀寫芯片,它包含80C51微控制器內(nèi)核,支持ISO/IEC 14443A/Mifare非接觸式智能卡讀寫,同時(shí)還具有集成了NFCIP-1的RF接口,傳輸速率高達(dá)424 Kb/s,便于系統(tǒng)后期實(shí)現(xiàn)與NFC設(shè)備進(jìn)行點(diǎn)對點(diǎn)通信等功能。LM3S9D92使用GPIO模擬SPI與PN532進(jìn)行通信。嵌入式Web Server主要部分接口連接示意圖如圖2所示。
圖2 嵌入式Web Server主要部分接口連接示意圖
系統(tǒng)采用C語言進(jìn)行開發(fā),開發(fā)環(huán)境為Realview MDK(Keil for ARM),并使用廠商所提供的片上資源驅(qū)動、庫函數(shù)和第三方組件。系統(tǒng)軟件設(shè)計(jì)分為3大主要部分:ZigBee網(wǎng)絡(luò)數(shù)據(jù)采集部分、GPRS模塊通信部分和嵌入式Web Server部分。整個(gè)系統(tǒng)主要流程如圖3所示。
圖3 系統(tǒng)主程序流程圖
系統(tǒng)數(shù)據(jù)采集主要通過查詢方式進(jìn)行,由遠(yuǎn)程監(jiān)控端發(fā)出查詢請求后,現(xiàn)場數(shù)據(jù)采集系統(tǒng)才進(jìn)行數(shù)據(jù)采集、傳輸或其他響應(yīng)。查詢請求到達(dá)ZigBee網(wǎng)絡(luò)的協(xié)調(diào)器端后,協(xié)調(diào)器在網(wǎng)絡(luò)內(nèi)部通過單點(diǎn)傳送的方式與各個(gè)終端節(jié)點(diǎn)進(jìn)行通信。
由于現(xiàn)場數(shù)據(jù)采集部分的GPRS模塊與數(shù)據(jù)中心的GPRS模塊功能有所區(qū)別,可通過設(shè)定全局標(biāo)志位GPRS_M(jìn)odule_Role為0或1來指定GPRS模塊為現(xiàn)場數(shù)據(jù)采集GPRS模塊還是數(shù)據(jù)中心(即接收端)的GPRS模塊。現(xiàn)場數(shù)據(jù)采集GPRS模塊為了保持連接還需在空閑時(shí)間發(fā)送心跳包。與遠(yuǎn)程IP建立連接的相關(guān)任務(wù)全部由GPRS模塊中的STM32F103C8完成,并將配置信息寫入SPI Flash中,外部數(shù)據(jù)可直接通過GPRS模塊的串口發(fā)送。若與數(shù)據(jù)中心IP連接出現(xiàn)連續(xù)3次錯(cuò)誤(錯(cuò)誤次數(shù)可設(shè)定),現(xiàn)場數(shù)據(jù)采集GPRS模塊將通過固定內(nèi)容短信的方式告知數(shù)據(jù)中心的GPRS模塊,數(shù)據(jù)中心的GPRS模塊通過回應(yīng)固定內(nèi)容的短信對遠(yuǎn)程控制單元實(shí)現(xiàn)緊急處理。
嵌入式Web Server部分主要負(fù)責(zé)將數(shù)據(jù)通過串口轉(zhuǎn)發(fā)至GPRS模塊或者上位機(jī),并實(shí)現(xiàn)現(xiàn)場監(jiān)控計(jì)算機(jī)可通過瀏覽器對監(jiān)控網(wǎng)頁進(jìn)行訪問和在LCD端顯示數(shù)據(jù)采集信息,嵌入式Web Server主要通過公共網(wǎng)關(guān)接口CGI以及服務(wù)器端嵌入標(biāo)簽SSI Tag實(shí)現(xiàn)對外網(wǎng)頁表單數(shù)據(jù)的更新與獲?。?]。同時(shí),監(jiān)控計(jì)算機(jī)進(jìn)入系統(tǒng)配置更改前,需通過串口發(fā)送字符“authenticated_id_loop”(也可自定義為其他)到LM3S9D92串口1,特定字符串檢測主要是通過函數(shù)strstr(pstr,“authenticated_id_loop”)實(shí)現(xiàn),其中pstr為待檢測字符串地址,檢測到目標(biāo)字符串后返回該位置的指針,否則返回空指針。LM3S9D92串口接收中斷流程中檢測到目標(biāo)字符串后,將循環(huán)執(zhí)行PN532讀卡函數(shù)PN532_readPassiveTargetID(PN532_M(jìn)IFARE_ISO14443A,&uid[0],&uidLength)3次,當(dāng)讀取到特定ID后跳出該循環(huán),并將變量Authenticated_ID_OK置1,表明通過IC卡認(rèn)證流程,可繼續(xù)執(zhí)行系統(tǒng)配置。
圖4 現(xiàn)場嵌入式Web Server監(jiān)控端以及LCD信息顯示
通過對4個(gè)ZigBee終端節(jié)點(diǎn)I/O口P1.0控制的LED狀態(tài)進(jìn)行了采集和控制,并在嵌入式Web Server端及其LCD上顯示其開關(guān)狀態(tài),可通過網(wǎng)頁中的復(fù)選框?qū)/O狀態(tài)實(shí)現(xiàn)控制,具體如圖4所示。嵌入式Web Server端還分別在 Windows以及Ubuntu/Linux操作系統(tǒng)下使用系統(tǒng)自帶瀏覽器進(jìn)行了測試,均可正常使用,現(xiàn)場監(jiān)控計(jì)算機(jī)接入系統(tǒng)十分方便。另外,測試了修改系統(tǒng)關(guān)鍵信息時(shí)的安全性,更改數(shù)據(jù)采集端的GPRS模塊短信報(bào)警號碼時(shí),系統(tǒng)進(jìn)行了身份認(rèn)證,通過讀取卡號識別到程序內(nèi)已存的管理員1、2的信息,通過串口輸出調(diào)試信息。
本設(shè)計(jì)以ZigBee網(wǎng)絡(luò)和GPRS模塊為中心,結(jié)合ZigBee以及GPRS無線通信技術(shù),使得遠(yuǎn)程數(shù)據(jù)采集與控制更易實(shí)現(xiàn)。經(jīng)實(shí)際測試,采集和控制各個(gè)ZigBee節(jié)點(diǎn)CC2530P1.0引腳輸出狀態(tài),運(yùn)行結(jié)果能夠到達(dá)預(yù)期效果。另外,本系統(tǒng)還可根據(jù)實(shí)際情況在各個(gè)ZigBee終端節(jié)點(diǎn)添加其他數(shù)據(jù)采集電路,實(shí)現(xiàn)更加強(qiáng)大的功能或拓展網(wǎng)絡(luò)結(jié)構(gòu),因此,本文設(shè)計(jì)的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)具有較高的實(shí)用參考價(jià)值。
[1]高守瑋,吳燦陽.ZigBee技術(shù)實(shí)踐教程[M].北京:北京航空航天大學(xué)出版社,2009.
[2]何賽,陳小平.GPRS與ZigBee的城市照明系統(tǒng)網(wǎng)關(guān)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012(1):27-29,41.
[3]NXP Semiconductors.PN532Short form data sheet[EB/OL].[2012-10-25].http://www.cn.nxp.com.
[4]Texas Instruments.CC2530Datasheet[EB/OL].[2012-10-25].http://www.ti.com.
[5]SIMCOM.SIM900A模塊 AT命令手冊 V1.02[EB/OL].[2012-10-25].http://www.sim.com.
[6]ST.STM32F100xB Datasheet[EB/OL].[2012-10-25].http://www.st.com.
[7]Texas Instruments.Stellaris LM3S9D92MCU Datasheet[EB/OL].[2012-10-25].http://www.ti.com.
[8]索明何,饒運(yùn)濤,刑海霞.基于單片機(jī)的嵌入式 Web服務(wù)器設(shè)計(jì)與實(shí)現(xiàn)[J].科技廣場,2008(5):185-186.