楊盛泉,劉海泉,劉白林
(西安工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,西安 710021)
?
ZigBee與RS485混合網(wǎng)絡(luò)的糧情監(jiān)控系統(tǒng)的研究
楊盛泉,劉海泉,劉白林
(西安工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,西安 710021)
為了解決使用傳統(tǒng)方式采集糧庫(kù)溫度、濕度過(guò)程中表現(xiàn)出的低效率、誤差大、維護(hù)難等問(wèn)題,提出研究與設(shè)計(jì)基于ZigBee與RS485混合網(wǎng)絡(luò)的糧情監(jiān)控系統(tǒng).文中首先介紹了糧情監(jiān)控混合網(wǎng)絡(luò)模型結(jié)構(gòu),它由感知層、網(wǎng)絡(luò)層與應(yīng)用層組成;進(jìn)而敘述了無(wú)線網(wǎng)絡(luò)中傳感器節(jié)點(diǎn)和匯聚節(jié)點(diǎn)的硬件組成和運(yùn)行機(jī)理;最后討論了ZigBee網(wǎng)絡(luò)通信的數(shù)據(jù)幀的設(shè)計(jì)以及節(jié)點(diǎn)底層程序與工控機(jī)上位程序設(shè)計(jì).通過(guò)工程實(shí)例運(yùn)行表明,糧庫(kù)監(jiān)控中使用ZigBee與RS485混合網(wǎng)絡(luò)模式搭建運(yùn)行可以揚(yáng)長(zhǎng)避短,具有組網(wǎng)靈活、數(shù)據(jù)精度高、低成本、方便維護(hù)管理等優(yōu)點(diǎn).
ZigBee; RS485; 傳感器節(jié)點(diǎn); 匯聚節(jié)點(diǎn)
我國(guó)是農(nóng)業(yè)大國(guó)且每年的糧食產(chǎn)量巨大,糧庫(kù)是保證糧食儲(chǔ)存安全的重要基礎(chǔ)設(shè)施,全國(guó)各地分布了大大小小若干糧庫(kù),每個(gè)糧庫(kù)一般來(lái)說(shuō)又由很多糧倉(cāng)組成.糧倉(cāng)的防潮、防霉、防火歷來(lái)是糧食倉(cāng)儲(chǔ)企業(yè)工作人員的主要任務(wù),而這個(gè)任務(wù)的順利完成需要通過(guò)一定的手段實(shí)現(xiàn)對(duì)糧倉(cāng)內(nèi)部溫濕度等信息的有效實(shí)時(shí)監(jiān)測(cè),且發(fā)現(xiàn)問(wèn)題后立即采取對(duì)應(yīng)有效措施[1].糧倉(cāng)內(nèi)部的溫度、濕度的監(jiān)測(cè)(又稱為糧情監(jiān)測(cè))在現(xiàn)代科學(xué)儲(chǔ)糧中占有非常重要地位,傳統(tǒng)的糧情監(jiān)測(cè)方法主要有兩種:① 早期自動(dòng)化落后的糧庫(kù)是利用手持式傳感儀器進(jìn)行人工讀數(shù)監(jiān)測(cè)并手動(dòng)記錄,該方法存在勞動(dòng)強(qiáng)度大、精度低、不連續(xù)、效率低下等缺點(diǎn);② 現(xiàn)代很多新建的糧庫(kù)糧情監(jiān)控系統(tǒng)大多采用了有線集散式(DCS)監(jiān)控系統(tǒng),其糧倉(cāng)內(nèi)外均采用多點(diǎn)有線傳輸儀器進(jìn)行監(jiān)測(cè),克服了早期人工監(jiān)測(cè)系統(tǒng)的部分缺點(diǎn),但該方法實(shí)踐上存在施工周期長(zhǎng)、糧倉(cāng)內(nèi)部布線復(fù)雜、系統(tǒng)擴(kuò)展適應(yīng)能力差等缺點(diǎn).
ZigBee作為一種新興物聯(lián)網(wǎng)的通信技術(shù),是一種低成本、低復(fù)雜度、低功耗、高可靠性、高效率的雙向無(wú)線通信技術(shù).ZigBee一般有效傳輸距離在10~100 m,主要用于物聯(lián)網(wǎng)中位置分散、結(jié)構(gòu)復(fù)雜且組網(wǎng)靈活多變的各種電子設(shè)備之間進(jìn)行數(shù)據(jù)傳輸以及典型的有周期性數(shù)據(jù)、間歇性數(shù)據(jù)和低延遲時(shí)間數(shù)據(jù)傳輸?shù)膽?yīng)用[2].但是ZigBee技術(shù)本身是一種短距離的無(wú)線通信技術(shù),有效通信距離不超過(guò)100 m.傳統(tǒng)RS485接口在工業(yè)通信總線型網(wǎng)絡(luò)上是允許連接多達(dá)128個(gè)下位收發(fā)器,即具有多站能力,這樣用戶可以利用單一的RS485接口方便地建立起總線型設(shè)備網(wǎng)絡(luò).RS485不僅可以只需要兩個(gè)線連接遠(yuǎn)距離的下位設(shè)備,而且可以保持很強(qiáng)的抗干擾能力.因此采用新興無(wú)線ZigBee網(wǎng)絡(luò)技術(shù)與傳統(tǒng)RS485有線工業(yè)總線網(wǎng)絡(luò)相結(jié)合的糧情監(jiān)控策略,可以揚(yáng)長(zhǎng)避短、實(shí)現(xiàn)兩者優(yōu)勢(shì)互補(bǔ).將ZigBee無(wú)線通信技術(shù)應(yīng)用于糧食存儲(chǔ)環(huán)境的溫度、濕度監(jiān)測(cè),可以很好地解決糧倉(cāng)中監(jiān)測(cè)節(jié)點(diǎn)眾多,分散性強(qiáng),擴(kuò)展和維修不方便等問(wèn)題,將有效地解決糧倉(cāng)內(nèi)有線系統(tǒng)的局限性以及各種缺點(diǎn).同時(shí)利用RS485通信遠(yuǎn)距離與抗干擾多機(jī)通信優(yōu)勢(shì)實(shí)現(xiàn)糧倉(cāng)外與遠(yuǎn)程糧情中心工控機(jī)持續(xù)高效通信.
在無(wú)線網(wǎng)絡(luò)IEEE802.15.4協(xié)議標(biāo)準(zhǔn)中ZigBee網(wǎng)絡(luò)一共定義了3種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu):星型(Star Net)拓?fù)浣Y(jié)構(gòu)、樹簇型(Cluster Net) 拓?fù)浣Y(jié)構(gòu)和網(wǎng)格型(Mesh Net) 拓?fù)浣Y(jié)構(gòu)[3].根據(jù)糧庫(kù)中糧情監(jiān)測(cè)的特點(diǎn),本系統(tǒng)采用星型(Star Net)拓?fù)浣Y(jié)構(gòu),基于ZigBee與RS485混合網(wǎng)絡(luò)的糧庫(kù)監(jiān)測(cè)系統(tǒng)宏觀結(jié)構(gòu)如圖1所示.
圖1 糧庫(kù)ZigBee與RS485混合網(wǎng)絡(luò)監(jiān)控宏觀結(jié)構(gòu)圖
整個(gè)系統(tǒng)采用一般物聯(lián)網(wǎng)分層設(shè)計(jì)的方式,本系統(tǒng)設(shè)計(jì)為三層,具體如下:① 糧庫(kù)中1#~n#糧倉(cāng)中各個(gè)傳感器節(jié)點(diǎn)為最低層,稱為感知層;② 每一個(gè)糧倉(cāng)都有一個(gè)匯聚節(jié)點(diǎn)對(duì)糧倉(cāng)信息統(tǒng)一采集管理,匯聚節(jié)點(diǎn)在物聯(lián)網(wǎng)中又稱為協(xié)調(diào)器節(jié)點(diǎn),若干個(gè)糧倉(cāng)的匯聚節(jié)點(diǎn)構(gòu)成了中間層,稱為網(wǎng)絡(luò)層;③ 本地工業(yè)控制計(jì)算機(jī)以及通過(guò)Lan、Internet向上拓展的遠(yuǎn)程客戶端為最高層,稱為應(yīng)用層.
1.1 糧庫(kù)ZigBee系統(tǒng)感知層
系統(tǒng)的感知層主要是在糧倉(cāng)中有規(guī)律地布置若干溫度、濕度傳感器節(jié)點(diǎn).糧倉(cāng)內(nèi)部的溫度、濕度進(jìn)行檢測(cè)主要使用熱電偶或熱電阻以及濕敏電阻或電容等測(cè)量技術(shù),其輸出信號(hào)是模擬量,需要經(jīng)過(guò)模數(shù)轉(zhuǎn)換才能得到實(shí)際的溫濕度值.本系統(tǒng)中糧倉(cāng)中傳感節(jié)點(diǎn)模塊硬件是通過(guò)ZigBee芯片及其輔助電路連接實(shí)際的各種傳感器進(jìn)行數(shù)據(jù)采集,并將數(shù)據(jù)進(jìn)行簡(jiǎn)單處理后通過(guò)其節(jié)點(diǎn)中的ZigBee自帶的RFID射頻發(fā)射器將數(shù)據(jù)發(fā)送給網(wǎng)絡(luò)層的ZigBee匯聚父節(jié)點(diǎn).傳感器節(jié)點(diǎn)不能再連接子節(jié)點(diǎn),它對(duì)于整個(gè)糧庫(kù)無(wú)線網(wǎng)絡(luò)系統(tǒng)來(lái)說(shuō)沒(méi)有特定的維持網(wǎng)絡(luò)結(jié)構(gòu)的責(zé)任,系統(tǒng)運(yùn)行過(guò)程中為了維持低功耗的設(shè)計(jì)要求,傳感器節(jié)點(diǎn)要么處于睡眠狀態(tài)(Sleeping State)要么處于喚醒啟動(dòng)至工作狀態(tài)(Working State),傳感器節(jié)點(diǎn)中一般使用氧化銀電池來(lái)供電.
一個(gè)糧庫(kù)中的各個(gè)ZigBee傳感節(jié)點(diǎn)模塊如何放置主要是由三大因素所決定的,他們分別是糧庫(kù)中糧倉(cāng)的面積、糧倉(cāng)之間的間距以及ZigBee節(jié)點(diǎn)模塊之間的通信距離[1].此外,它還受周圍環(huán)境等一些其它因素的影響.根據(jù)國(guó)家糧食行業(yè)標(biāo)準(zhǔn)規(guī)定,對(duì)于散裝糧食、農(nóng)副產(chǎn)品或者食用油料倉(cāng)庫(kù)采用糧情監(jiān)控時(shí),糧倉(cāng)上層、下層及四周檢測(cè)點(diǎn)應(yīng)分別設(shè)在距糧面、底部、倉(cāng)壁0.3 m處,糧倉(cāng)內(nèi)部在垂直方向大約每隔1 m左右安裝一套溫度、濕度傳感器,如高度為5 m左右的糧倉(cāng)大概可以分 6 層布置檢測(cè)點(diǎn).
1.2 糧庫(kù)ZigBee系統(tǒng)網(wǎng)絡(luò)層
糧庫(kù)ZigBee系統(tǒng)的網(wǎng)絡(luò)層由若干個(gè)匯聚節(jié)點(diǎn)通過(guò)有線的RS485總線連接組成,他們之間本身不進(jìn)行數(shù)據(jù)通信,它包含兩個(gè)部分:下行為無(wú)線網(wǎng)絡(luò)、上行為有線網(wǎng)絡(luò).匯聚節(jié)點(diǎn)在整個(gè)網(wǎng)絡(luò)系統(tǒng)也稱為協(xié)調(diào)器(Coordinator)節(jié)點(diǎn).每一個(gè)糧倉(cāng)內(nèi)部所有傳感器節(jié)點(diǎn)和該糧倉(cāng)的協(xié)調(diào)器節(jié)點(diǎn)實(shí)質(zhì)是一個(gè)相對(duì)獨(dú)立的ZigBee子網(wǎng),糧倉(cāng)的網(wǎng)絡(luò)協(xié)調(diào)器負(fù)責(zé)該糧倉(cāng)子網(wǎng)絡(luò)的啟動(dòng)和配置,它的硬件組成結(jié)構(gòu)非常復(fù)雜.糧倉(cāng)內(nèi)部系統(tǒng)工作的時(shí)候該糧倉(cāng)的協(xié)調(diào)器選擇一個(gè)信道和網(wǎng)絡(luò)標(biāo)識(shí)(Personal Area Network ID ,即PAN ID),發(fā)送網(wǎng)絡(luò)信標(biāo)給所有的子節(jié)點(diǎn),隨后啟動(dòng)該糧倉(cāng)子網(wǎng)絡(luò).它跟傳感器節(jié)點(diǎn)比,它的存儲(chǔ)容量大、計(jì)算能力強(qiáng),可以定期喚醒糧倉(cāng)子網(wǎng)內(nèi)所有傳感節(jié)點(diǎn)上傳測(cè)量信息,同時(shí)通過(guò)協(xié)調(diào)器節(jié)點(diǎn)模塊的串口(UART)RS485接口將信息實(shí)時(shí)傳給本地工業(yè)控制計(jì)算機(jī)處理.
協(xié)調(diào)器節(jié)點(diǎn)在本系統(tǒng)起到連接遠(yuǎn)程上位工業(yè)控制計(jì)算機(jī)與各糧倉(cāng)傳感器節(jié)點(diǎn)通信橋梁的作用.各個(gè)糧倉(cāng)的協(xié)調(diào)器節(jié)點(diǎn)一般安裝在糧倉(cāng)附近的控制箱中,必須是一直處于活動(dòng)狀態(tài),它需要使用持續(xù)電源供電.系統(tǒng)運(yùn)行過(guò)程中,糧倉(cāng)協(xié)調(diào)器節(jié)點(diǎn)通過(guò)動(dòng)態(tài)優(yōu)先級(jí)進(jìn)行周期循環(huán)掃描系統(tǒng)所有的傳感器節(jié)點(diǎn)并與其通信,如果某個(gè)糧倉(cāng)傳感節(jié)點(diǎn)出現(xiàn)故障(如節(jié)點(diǎn)因缺電死去),能夠自動(dòng)隔離并報(bào)警,同時(shí)將收集到的所有節(jié)點(diǎn)信息打包轉(zhuǎn)換成Modbus數(shù)據(jù)包發(fā)送給工業(yè)控制計(jì)算機(jī).協(xié)調(diào)器節(jié)點(diǎn)模塊本身有LCD顯示屏和按鍵Key,可以在本地查看對(duì)應(yīng)糧倉(cāng)中的所有測(cè)量數(shù)據(jù)和歷史數(shù)據(jù).
1.3 糧庫(kù)ZigBee系統(tǒng)應(yīng)用層
系統(tǒng)的應(yīng)用層主要是面向糧庫(kù)企業(yè)用戶和操作人員,它主要是一臺(tái)本地工業(yè)控制計(jì)算機(jī),內(nèi)部安裝糧情數(shù)據(jù)顯示管理軟件系統(tǒng)和糧情信息存儲(chǔ)數(shù)據(jù)庫(kù).
考慮到糧庫(kù)企業(yè)遠(yuǎn)程管理需要,系統(tǒng)可以通過(guò)企業(yè)局域網(wǎng)(LAN)或者廣域網(wǎng)(Internet)提供遠(yuǎn)程訪問(wèn)瀏覽糧情信息.遠(yuǎn)程系統(tǒng)可以基于傳統(tǒng)的PC機(jī),也可以基于移動(dòng)設(shè)備開發(fā)的專用客戶端程序.從本地工業(yè)計(jì)算機(jī)到遠(yuǎn)程系統(tǒng)信息傳輸使用網(wǎng)絡(luò)Socket通信中的TCP/IP協(xié)議進(jìn)行數(shù)據(jù)傳輸.系統(tǒng)擴(kuò)展這一部分不是本系統(tǒng)設(shè)計(jì)的重點(diǎn)(限于篇幅,本文后面不再詳述),但它可以提高糧情數(shù)據(jù)的使用效率和便捷性.
應(yīng)用層核心部分是軟件設(shè)計(jì),尤其是本地工業(yè)計(jì)算機(jī)中的管理系統(tǒng)軟件,它主要完成從ZigBee協(xié)調(diào)器節(jié)點(diǎn)串口通信過(guò)來(lái)的數(shù)據(jù)的采集、處理、分析、預(yù)警、顯示與儲(chǔ)存工作.
系統(tǒng)中節(jié)點(diǎn)設(shè)計(jì)主要包含:傳感器節(jié)點(diǎn)、匯聚節(jié)點(diǎn)的硬件設(shè)計(jì),這些節(jié)點(diǎn)他們的共同特征都包含無(wú)線通信ZigBee接口的設(shè)計(jì),這是ZigBee網(wǎng)絡(luò)系統(tǒng)硬件設(shè)計(jì)的重點(diǎn)部分.傳感器節(jié)點(diǎn)主要任務(wù)是收到匯聚節(jié)點(diǎn)數(shù)據(jù)請(qǐng)求后采集本地溫度、濕度信號(hào)數(shù)據(jù)、濾波管理后發(fā)送給匯聚節(jié)點(diǎn);匯聚節(jié)點(diǎn)設(shè)計(jì)中包含上下行通信接口,上行接口中要實(shí)現(xiàn)RS232向RS485轉(zhuǎn)換,其數(shù)據(jù)通過(guò)RS485送給工業(yè)計(jì)算機(jī)顯示、存儲(chǔ)管理.
2.1 CC2530
國(guó)際通信聯(lián)盟(ITU)規(guī)定ZigBee無(wú)線網(wǎng)絡(luò)可以使用的頻段共有868 MHz、 915 MHz和2.4 GHz三個(gè).其中915 MHz和2.4 GHz頻段為全球通用的ISM (Industrial Scientific Medical)頻段,此頻段主要是開放給工業(yè)、科學(xué)、醫(yī)學(xué)三個(gè)主要行業(yè)使用,屬于Free License,無(wú)需政府或者組織授權(quán)許可即可使用.CC2530 是德州儀器(TI)公司在2.4 GHz 頻段推出的第二代支持ZigBee 協(xié)議的片上系統(tǒng)(System On a Chip,SOC)芯片.它能夠以非常低的總的材料成本建立強(qiáng)大的物聯(lián)網(wǎng)節(jié)點(diǎn).CC2530芯片內(nèi)部集成了高性能射頻(Radio Frequency ,RF) 收發(fā)器、工業(yè)標(biāo)準(zhǔn)增強(qiáng)型8051 單片機(jī)(MCU)內(nèi)核、 256KB Flash ROM(Read-Only Memory)和 8KB RAM(Random Access Memory)存儲(chǔ)器[4].
CC2530芯片主要特性如下:具有2個(gè)USART(Universal Synchronous/Asynchronous Receiver/Transmitter)統(tǒng)一同步異步收發(fā)器、8位和16位普通定時(shí)器、硬件看門狗定時(shí)器(Watchdog Timer)、8路輸入可配置的12位ADC(Analog-to-Digital Converter)模擬量轉(zhuǎn)數(shù)字量轉(zhuǎn)換器、21 個(gè) GPIO(General Purpose Input Output)通用開關(guān)量輸入輸出單元、AES128 協(xié)同處理器,硬件支持CSMA/CA網(wǎng)絡(luò)監(jiān)測(cè)協(xié)議、數(shù)字化的接收信號(hào)強(qiáng)度指示(Received Signal Strength Indication,RSSI)/鏈路質(zhì)量指示(Link Quality Indication,LQI)和強(qiáng)大的 DMA(Direct Memory Access)直接數(shù)據(jù)傳輸功能,有電池監(jiān)測(cè)和溫度感測(cè)功能;內(nèi)部工作可支持5種工作模式,能較好地滿足低功耗系統(tǒng)的要求;在接收和發(fā)送模式時(shí),電流損耗分別為24 mA和29 mA[4].由于它的硬件設(shè)計(jì)比較簡(jiǎn)單、封裝小、功耗低,軟件上函數(shù)庫(kù)豐富、語(yǔ)法代碼兼容C語(yǔ)言,因此CC2530在無(wú)線傳感器網(wǎng)絡(luò)中得到了越來(lái)越廣泛的應(yīng)用,當(dāng)然它更滿足本系統(tǒng)硬件節(jié)點(diǎn)設(shè)計(jì)中應(yīng)用.
2.2 傳感器節(jié)點(diǎn)
糧庫(kù)傳感器節(jié)點(diǎn)有溫度、濕度兩種,本系統(tǒng)中溫度、濕度傳感器選取SHT15二合一溫濕度傳感器,它是瑞士Sensirion公司推出的超小型、自校準(zhǔn)、多功能式智能傳感器,可以測(cè)量相對(duì)濕度、溫度和露點(diǎn)等參數(shù)[5].SHT15傳感器是單片多用途的智能傳感器,芯片內(nèi)部包含基于濕敏電容器的微型濕度傳感器和基于帶隙電路的微型溫度傳感器,電路中使用了14位的A/D轉(zhuǎn)換器和2線串行接口,它內(nèi)部實(shí)時(shí)計(jì)算采集點(diǎn)的濕度和溫度數(shù)據(jù),所以節(jié)點(diǎn)中不再使用傳統(tǒng)設(shè)計(jì)需要的信號(hào)調(diào)理電路和放大電路,它能在同一測(cè)點(diǎn)位置測(cè)量糧倉(cāng)的濕度和溫度信息.
溫度、濕度傳感器節(jié)點(diǎn)硬件組成原理框圖如圖2所示,它主要包含傳感器芯片SHT15、電源管理模塊LM3671、USB接口FT232RL、無(wú)線ZigBee模塊CC2530、帶通濾波器2.4G、天線單元.各個(gè)部分功能分別描述如下:
圖2 糧庫(kù)傳感器節(jié)點(diǎn)硬件組成原理框圖
1) 傳感器芯片SHT15:智能芯片采集并內(nèi)部計(jì)算溫度、濕度原始數(shù)據(jù)信息,它通過(guò)I2C總線跟無(wú)線ZigBee模塊CC2530連接.
2) 電源管理模塊LM3671:提供節(jié)點(diǎn)運(yùn)行的供電電源,LM3671為電壓轉(zhuǎn)換芯片,它將鋰電池電壓轉(zhuǎn)換成3.3 V或者5 V給傳感器芯片和CC2430芯片使用.
3) USB接口FT232RL:本系統(tǒng)選取FTDI公司的FT232RL作為轉(zhuǎn)換芯片,用來(lái)將USB串行數(shù)據(jù)通過(guò)UART接口與CC2530數(shù)據(jù)實(shí)現(xiàn)透明傳輸.采用USB通信接口可以縮小傳感器節(jié)點(diǎn)體積,該接口既可用于程序的有線初始化下載和安裝前調(diào)試,也可作本地測(cè)試傳感器信息輸出的人機(jī)交互接入口.傳感器節(jié)點(diǎn)正常工作的情況下是采用無(wú)線的方式進(jìn)行數(shù)據(jù)收集和網(wǎng)絡(luò)節(jié)點(diǎn)管理,為了降低功耗,節(jié)點(diǎn)設(shè)計(jì)有專門的電源開關(guān)將該USB接口關(guān)閉.
4) 帶通濾波器2.4 G:帶通濾波器(band-pass filter)是一個(gè)允許特定頻段的波通過(guò)同時(shí)屏蔽其他頻段的設(shè)備.為CC2530芯片提供純凈的2.4 G信號(hào),濾去干擾頻率.
5) 天線單元:天線為ZigBee輸入輸出的信號(hào)變換器,它把節(jié)點(diǎn)傳輸線上傳播的導(dǎo)行波,變換成在給上行節(jié)點(diǎn)中傳播的電磁波,或者進(jìn)行相反的變換.
2.3 匯聚節(jié)點(diǎn)
每個(gè)糧倉(cāng)都設(shè)有一個(gè)匯聚節(jié)點(diǎn),它允許該糧倉(cāng)中的所有傳感器節(jié)點(diǎn)通過(guò)它加入到糧倉(cāng)子網(wǎng)絡(luò)并成為其子節(jié)點(diǎn),系統(tǒng)運(yùn)行時(shí),它負(fù)責(zé)與上層工業(yè)控制計(jì)算機(jī)進(jìn)行RS485有線通信,為糧倉(cāng)傳感器節(jié)點(diǎn)與遠(yuǎn)程工業(yè)控制計(jì)算機(jī)聯(lián)系起到中繼作用所以在本系統(tǒng)中也稱為中繼節(jié)點(diǎn),匯聚節(jié)點(diǎn)必須是一直處于活動(dòng)狀態(tài),要使用持續(xù)電源供電.系統(tǒng)設(shè)計(jì)的匯聚節(jié)點(diǎn)與傳感器節(jié)點(diǎn)硬件組成有部分一樣,其硬件組成原理如圖3所示,內(nèi)部包含的主要模塊有:無(wú)線ZigBee模塊CC2530、節(jié)點(diǎn)LCD本地顯示模塊、節(jié)點(diǎn)本地Key輸入模塊、節(jié)點(diǎn)輔助儲(chǔ)存模塊、帶通濾波器2.4 G、天線單元以及電源管理模塊9 V等組成.其中跟傳感器節(jié)點(diǎn)不同的部分功能描述如下:
1) 節(jié)點(diǎn)LCD本地顯示模塊:可以顯示網(wǎng)絡(luò)內(nèi)部傳感節(jié)點(diǎn)傳送過(guò)來(lái)的采集數(shù)據(jù)信息與節(jié)點(diǎn)運(yùn)行狀態(tài),還可以顯示節(jié)點(diǎn)本身的設(shè)置參數(shù),方便用戶現(xiàn)場(chǎng)直接查看或者通過(guò)本地Key修改.
2) 節(jié)點(diǎn)本地Key輸入模塊:提供一個(gè)專用的小型鍵盤,其使用矩陣掃描方式工作檢查用戶按鍵信號(hào),通過(guò)Key模塊,可以本地設(shè)定節(jié)點(diǎn)性質(zhì)參數(shù)和網(wǎng)絡(luò)參數(shù),可以設(shè)定節(jié)點(diǎn)的工作模式.匯聚節(jié)點(diǎn)有兩種模式:Remote與Local,正常情況處于遠(yuǎn)程Remote模式,對(duì)于一旦跟上位機(jī)通信故障該節(jié)點(diǎn)自動(dòng)轉(zhuǎn)入本機(jī)Local模式.匯聚節(jié)點(diǎn)處于Local模式時(shí)USB接口啟用,節(jié)點(diǎn)本地可以連接PC機(jī)進(jìn)行調(diào)試.
3) 節(jié)點(diǎn)輔助儲(chǔ)存模塊:選用了AT 24C256 芯片,通過(guò)多片互聯(lián),可方便擴(kuò)展存儲(chǔ)容量,主要是存放歷史采集數(shù)據(jù)與后備參數(shù)設(shè)置.
4) RS232 轉(zhuǎn)485單元:該單元將芯片的RS232接口轉(zhuǎn)換成RS485可以直接連接到計(jì)算機(jī)的RS485串口上進(jìn)行通信.匯聚節(jié)點(diǎn)可以用外部設(shè)備通過(guò)該通信口給其設(shè)定如波特率、地址、停止位等參數(shù).多個(gè)匯聚節(jié)點(diǎn)通過(guò)它掛到一條總線上直接與工業(yè)計(jì)算機(jī)進(jìn)行數(shù)據(jù)交換.節(jié)點(diǎn)的RS485通信口與USB通信接口任何時(shí)候只能啟用一個(gè)(通過(guò)Key可設(shè)置修改或者通信Remote/Local方式轉(zhuǎn)換),內(nèi)部都是直接通過(guò)電路連接到CC2530的通信接口.
5) 持續(xù)電源模塊9 V:因?yàn)閰R聚節(jié)點(diǎn)一直必須處于工作狀態(tài),所以必須選用持續(xù)直流9 V電源,通過(guò)電壓轉(zhuǎn)換給CC2530以及節(jié)點(diǎn)其他部分實(shí)現(xiàn)持續(xù)供電.
圖3 糧庫(kù)匯聚節(jié)點(diǎn)硬件組成原理框圖
3.1 節(jié)點(diǎn)底層軟件設(shè)計(jì)
節(jié)點(diǎn)底層軟件設(shè)計(jì)包含傳感器節(jié)點(diǎn)程序設(shè)計(jì)與協(xié)調(diào)器節(jié)點(diǎn)(匯聚節(jié)點(diǎn))程序設(shè)計(jì),底層程序下載首先要設(shè)置好常規(guī)參數(shù)如節(jié)點(diǎn)地址、節(jié)點(diǎn)性質(zhì)以及網(wǎng)絡(luò)號(hào)等,然后下載ZigBee默認(rèn)協(xié)議棧程序和用戶編制的程序.傳感器節(jié)點(diǎn)工作時(shí)收到匯聚節(jié)點(diǎn)周期性地采集溫度、濕度數(shù)據(jù)指令后,驅(qū)動(dòng)內(nèi)部芯片工作采集并適當(dāng)處理后,存入到儲(chǔ)存緩沖區(qū)中,經(jīng)過(guò)ZigBee內(nèi)部的8051MCU進(jìn)行數(shù)據(jù)打包并通過(guò)RFID發(fā)送給匯聚節(jié)點(diǎn).他們的無(wú)線通信程序是底層程序的核心,為了方便管理和編程,本系統(tǒng)中傳感器節(jié)點(diǎn)與匯聚節(jié)點(diǎn)通信的數(shù)據(jù)包協(xié)議格式統(tǒng)一設(shè)計(jì)見表1.
表1 節(jié)點(diǎn)通信數(shù)據(jù)包協(xié)議格式
各個(gè)部分解釋如下:
1) 幀頭(STX): 通信時(shí)標(biāo)志一個(gè)數(shù)據(jù)幀的開始.長(zhǎng)度為一個(gè)字節(jié),內(nèi)容固定為0x02.
2) 數(shù)據(jù)長(zhǎng)度(DLen):發(fā)送數(shù)據(jù)從幀頭到數(shù)據(jù)域長(zhǎng)度,不包括數(shù)據(jù)塊校驗(yàn)值和幀尾,在本協(xié)議中固定為0x10.
3) 源節(jié)點(diǎn)地址(SAddr): 該地址Zigbee為發(fā)送端節(jié)點(diǎn)地址,節(jié)點(diǎn)地址編號(hào)在網(wǎng)絡(luò)中唯一,占據(jù)2個(gè)字節(jié).
4) 目標(biāo)端節(jié)點(diǎn)地址(DAddr):該地址Zigbee為接收端節(jié)點(diǎn)地址,節(jié)點(diǎn)地址編號(hào)在網(wǎng)絡(luò)中唯一,占據(jù)2個(gè)字節(jié).
5) 數(shù)據(jù)域信息(Data):該項(xiàng)為信息內(nèi)容載體,包含發(fā)送控制指令信息2個(gè)字節(jié)和數(shù)據(jù)信息8個(gè)字節(jié),總共長(zhǎng)度10字節(jié).
6) 數(shù)據(jù)塊校驗(yàn)值(BCC):該數(shù)據(jù)幀校驗(yàn)方式為異或校驗(yàn),即由幀頭到數(shù)據(jù)域信息所有字節(jié)異或XOR得到.BCC為一個(gè)字節(jié).
7) 幀尾(ETX): 通信時(shí)標(biāo)志一個(gè)數(shù)據(jù)幀的結(jié)束.長(zhǎng)度為一個(gè)字節(jié),內(nèi)容固定為0x03.
傳感器節(jié)點(diǎn)上電后,裝載設(shè)定參數(shù)并且尋找有效ZigBee網(wǎng)絡(luò)加入.然后進(jìn)入休眠模式,在休眠狀態(tài)中主要是進(jìn)行低功耗地掃描上層網(wǎng)絡(luò)讀指令.節(jié)點(diǎn)一旦接收到測(cè)量指令,立刻喚醒其內(nèi)部的微處理器進(jìn)入工作模式,啟動(dòng)芯片工作讀取傳感器數(shù)據(jù).最后芯片處理器將測(cè)量數(shù)據(jù)按照幀協(xié)議格式打包發(fā)送給協(xié)調(diào)器節(jié)點(diǎn).其程序工作流程如圖4所示.
圖4 傳感器節(jié)點(diǎn)程序工作流程
在每一個(gè)糧倉(cāng)中,每個(gè)匯聚節(jié)點(diǎn)與該糧倉(cāng)的所有傳感器節(jié)點(diǎn)構(gòu)成一個(gè)糧倉(cāng)子網(wǎng),匯聚節(jié)點(diǎn)的ZigBee無(wú)線射頻模塊接通電源并復(fù)位后,首先開始一個(gè)具有唯一ID標(biāo)識(shí)的ZigBee網(wǎng)絡(luò)并初始化該子網(wǎng).節(jié)點(diǎn)程序其次掃描同信道號(hào)與網(wǎng)絡(luò)號(hào)的節(jié)點(diǎn)入網(wǎng)申請(qǐng)并應(yīng)答,為每個(gè)同糧倉(cāng)內(nèi)的傳感器節(jié)點(diǎn)分配本網(wǎng)絡(luò)內(nèi)唯一的16位的地址[6].為了遵守系統(tǒng)整體運(yùn)行低功耗的要求,匯聚節(jié)點(diǎn)程序每隔一定的周期(參數(shù)可設(shè),本系統(tǒng)默認(rèn)周期為300 S)掃描采集糧倉(cāng)內(nèi)所有傳感器節(jié)點(diǎn)的信息數(shù)據(jù),如果沒(méi)有到掃描周期,系統(tǒng)直接進(jìn)入LCD本地?cái)?shù)據(jù)顯示子程序;采集周期到了后,匯聚節(jié)點(diǎn)依次發(fā)出節(jié)點(diǎn)測(cè)量指令,直到收到所有節(jié)點(diǎn)的數(shù)據(jù)信息.匯聚節(jié)點(diǎn)收到傳感器傳過(guò)來(lái)的數(shù)據(jù)適當(dāng)濾波處理并且保存到本地節(jié)點(diǎn)儲(chǔ)存器中,通過(guò)節(jié)點(diǎn)設(shè)計(jì)的LCD顯示屏可以顯示當(dāng)前采集的數(shù)據(jù)和歷史數(shù)據(jù).節(jié)點(diǎn)同時(shí)還設(shè)計(jì)了按鍵Key,進(jìn)行本地參數(shù)設(shè)置和操控.每個(gè)周期中,節(jié)點(diǎn)都留有時(shí)間片,響應(yīng)跟上位工控機(jī)機(jī)進(jìn)行RS485通信.其程序工作流程如圖5所示.
圖5 協(xié)調(diào)器節(jié)點(diǎn)程序工作流程
3.2 本地工控機(jī)糧情管理軟件設(shè)計(jì)
本地上位工控機(jī)糧情管理軟件主要實(shí)現(xiàn)與現(xiàn)場(chǎng)各個(gè)匯聚節(jié)點(diǎn)控制模塊通過(guò)有線RS485通信,軟件畫面實(shí)時(shí)顯示各個(gè)糧倉(cāng)的各種測(cè)量溫度、濕度數(shù)據(jù).RS485的優(yōu)點(diǎn)可以實(shí)現(xiàn)遠(yuǎn)距離(最長(zhǎng)可達(dá)1 200 m)無(wú)干擾穩(wěn)定通信,滿足糧食倉(cāng)儲(chǔ)企業(yè)的布線長(zhǎng)距離要求,而且布線只需兩根線即可,實(shí)施成本低[7].本地上位工控機(jī)系統(tǒng)與多個(gè)糧倉(cāng)匯聚節(jié)點(diǎn)進(jìn)行有線RS485的通信采用動(dòng)態(tài)優(yōu)先級(jí)主從模式,通信程序算法步驟描述如下:① Open Comm_hand,用于初始化并打開上位機(jī)RS485串口; ② Build Handshake,用于與下位機(jī)匯聚節(jié)點(diǎn)RS485的建立握手信號(hào);③ Send Data Frame,定期循環(huán)發(fā)送通信數(shù)據(jù)幀給下位匯聚節(jié)點(diǎn);④ Receive Data Frame,接收來(lái)自于下位匯聚節(jié)點(diǎn)信測(cè)量數(shù)據(jù)幀;⑤ Close Comm_hand 關(guān)閉RS485串口.
本地上位工控機(jī)糧情管理軟件系統(tǒng)的主要模塊框圖如圖6所示,其主要包含:匯聚節(jié)點(diǎn)通信模塊、糧倉(cāng)布置顯示模塊、測(cè)量預(yù)警控制模塊、數(shù)據(jù)存儲(chǔ)管理模塊、曲線動(dòng)態(tài)顯示模塊、數(shù)據(jù)統(tǒng)計(jì)打印模塊等.系統(tǒng)將各個(gè)糧倉(cāng)所有的傳感器采集數(shù)據(jù)顯示到人機(jī)界面上并且在后臺(tái)定期記錄到數(shù)據(jù)庫(kù)中,另外還可以用動(dòng)態(tài)趨勢(shì)圖顯示溫度曲線或者圓餅圖的形式直觀顯示相對(duì)濕度百分比.系統(tǒng)可以根據(jù)事先設(shè)定的溫濕度監(jiān)控范圍對(duì)溫濕度進(jìn)行預(yù)警,一旦超出設(shè)定范圍,計(jì)算機(jī)立即啟動(dòng)聲光報(bào)警提醒操作人員進(jìn)行通風(fēng)或者干燥工作.操作人員根據(jù)系統(tǒng)存儲(chǔ)記錄數(shù)據(jù)可以按照一定的條件進(jìn)行篩選、統(tǒng)計(jì)并打印出來(lái),以供專家或技術(shù)人員離線存檔、分析或者決策,實(shí)現(xiàn)對(duì)糧情問(wèn)題提前發(fā)現(xiàn),提前提出控制策略來(lái)保護(hù)糧食的保存質(zhì)量.
圖6 糧情管理軟件系統(tǒng)模塊組成圖
基于無(wú)線ZigBee和有線RS485總線的混合網(wǎng)絡(luò)使用Delphi XE開發(fā)工具在Windows 7平臺(tái)下為國(guó)內(nèi)某糧食集團(tuán)糧庫(kù)設(shè)計(jì)了實(shí)時(shí)溫濕度監(jiān)控系統(tǒng),該企業(yè)的糧庫(kù)分布范圍廣,數(shù)量眾多,每個(gè)糧倉(cāng)內(nèi)部安裝若干溫濕度傳感器節(jié)點(diǎn),每個(gè)糧倉(cāng)旁安裝一個(gè)匯聚節(jié)點(diǎn)使用無(wú)線ZigBee網(wǎng)絡(luò)對(duì)其統(tǒng)一管理,并且所有匯聚節(jié)點(diǎn)都通過(guò)有線RS485總線連接到工控機(jī)的通信口上,其工控機(jī)運(yùn)行的軟件系統(tǒng)實(shí)際主畫面如圖7所示.
軟件系統(tǒng)中通過(guò)三維圖片逼真地顯示企業(yè)糧倉(cāng)布置情況,從畫面上可以直觀地顯示各個(gè)測(cè)量數(shù)據(jù).軟件中實(shí)現(xiàn)通過(guò)下拉列表選擇任意一個(gè)糧倉(cāng),糧倉(cāng)里面分多層布置了若干溫濕度傳感器,每一個(gè)傳感器節(jié)點(diǎn)都有三維坐標(biāo)(x,y,z)進(jìn)行標(biāo)識(shí),在窗口畫面中點(diǎn)擊哪一層按鈕,系統(tǒng)就自動(dòng)切換到該層的采集溫濕度標(biāo)簽顯示.軟件中另外設(shè)計(jì)了數(shù)據(jù)查詢、報(bào)警信息和溫濕度趨勢(shì)、歷史曲線和統(tǒng)計(jì)打印按鈕,可以切換到該糧倉(cāng)其他操作應(yīng)用界面窗口.
圖7 糧情管理系統(tǒng)實(shí)際開發(fā)主畫面
本文提出了一種基于無(wú)線ZigBee和有線RS485總線的混合網(wǎng)絡(luò)糧情監(jiān)控系統(tǒng),每個(gè)糧倉(cāng)采用核心為CC2530芯片的ZigBee模塊設(shè)計(jì)了若干溫濕度采集的傳感器節(jié)點(diǎn)和一個(gè)匯聚節(jié)點(diǎn),構(gòu)成了無(wú)線ZigBee網(wǎng)絡(luò).所有糧倉(cāng)的匯聚節(jié)點(diǎn)通過(guò)RS485有線網(wǎng)絡(luò)連接到遠(yuǎn)程工業(yè)控制計(jì)算機(jī).這種設(shè)計(jì)發(fā)揮了兩種網(wǎng)絡(luò)的優(yōu)點(diǎn),實(shí)際工程實(shí)施運(yùn)行表明,本系統(tǒng)具有易于搭建、組網(wǎng)靈活、施工周期短、通信距離長(zhǎng)、采集數(shù)據(jù)精度高、可擴(kuò)展性強(qiáng)和運(yùn)行穩(wěn)定可靠等優(yōu)點(diǎn),在國(guó)內(nèi)外糧庫(kù)監(jiān)控中具有良好的應(yīng)用前景.
[1] 姜輝,甄彤,王鋒.基于ARM/ZigBee 的遠(yuǎn)程糧情監(jiān)控系統(tǒng)的研究與設(shè)計(jì)[J].中國(guó)農(nóng)機(jī)化學(xué)報(bào),2015,36(2):99.
JIANG Hui,ZHEN Tong,WANG Feng.Research on and Design of the Remote Grain Monitoring System Based on ARM/ZigBee[J].Journal of Chinese Agricultural Mechanization,2015,36(2):99.(in Chinese)
[2] 梅志堅(jiān),馬婭婕,肖凡男.基于ZigBee和GPRS的大氣污染監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].武漢科技大學(xué)學(xué)報(bào),2015,38(1):63.
MEI Zhijian,MA Yajie,XIAO Fannan.Design of Air Pollution Monitoring System Based on ZigBee and GPRS[J].Journal of Wuhan University of Science and Technology,2015,38(1):63.(in Chinese)
[3] 金中朝,蘇本躍,江偉,等.基于ZigBee的自習(xí)室人數(shù)智能查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].貴州大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,31(6):85.
JIN Zhongchao,SU Benyue,JIANG Wei,et al.Design and Implementation of Self-Study Room People Number Intelligent Query System Based on Zigbee[J].Journal of Guizhou University(Natural Science Edition),2014,31(6):85.(in Chinese)
[4] 陳克濤, 張海輝, 張永猛, 等.基于CC2530的無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)節(jié)點(diǎn)的設(shè)計(jì)[J].西北農(nóng)林科技大學(xué)學(xué)報(bào)(自然科學(xué)版), 2014,42(5):183.
CHEN Ketao,ZHANG Haihui,ZHANG Yongmeng,et al.Desing of CC2530 Based Gateway Node for Wireless Sensor Network[J].Journal of Northwest A&F University(Natural Science Edition),2014,42(5):183.(in Chinese)
[5] 李艷,葛年明,陳杰.基于ZigBee的多傳感器物聯(lián)網(wǎng)無(wú)線監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].自動(dòng)化技術(shù)與應(yīng)用, 2015,34(1):47.
LI Yan,GE Nianming,CHEN Jie.Design of Multi-Sensor Iot Wireless Monitoring System Based on the ZigBee[J].Techniques of Automation & Applications,2015,34(1):47.(in Chinese)
[6] 趙樹恩,張沙沙.基于ZigBee技術(shù)的交通信號(hào)燈辨識(shí)系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2014,22(2):4066.
ZHAO Shuen,ZHANG Shasha.Design of Traffic Lights Identification System Based on ZigBee[J].Computer Measurement & Control,2014,22(2):4066.(in Chinese)
[7] 宋躍,楊雷,雷瑞庭,等. 基于ARM9與LINUX的RS485總線的通信接口設(shè)計(jì)[J].儀表技術(shù)與傳感器,2014,5:35.
SONG Yue,YANG Lei,LEI Ruiting,et al.Design of RS485 Bus Communication Interface Based on ARM9 and LINUX[J].Instrument Technique and Sensor,2014,5:35.(in Chinese)
(責(zé)任編輯、校對(duì) 肖 晨)
Research on Grain Monitoring System Based on ZigBee and RS485 Hybrid Network
YANGShengquan,LIUHaiquan,LIUBailin
(School of Computer Science and Engineering,Xi’an Technological University,Xi’an 710021)
The traditional way of collecting the temperature and humidity of grain depots has the disadvantages of low efficiency,big deviation and difficult maintenance. In order to solve the problems,the paper presents a new monitoring system based on the ZigBee and RS485 Hybrid Network.First,the structure of the hybrid network model is introduced, which is composed of a perception layer,a network layer and an application layer.Then the hardware composition and operation mechanism of the sensor node and sink node in the wireless network are described. Finally,the design of the data frame of the ZigBee network communication, the design of the chip internal programs of the two nodes and the design of the upper program of the industrial control computer are discussed in detail.An engineering example shows that the new monitoring system based on the ZigBee and RS485 hybrid network mode has the advantages of flexible networking,high data accuracy,low cost and simple maintenance,etc.
ZigBee;RS485;sensor node;sink node
10.16185/j.jxatu.edu.cn.2016.09.012
2016-03-28項(xiàng)目基金:新型網(wǎng)絡(luò)與檢測(cè)控制國(guó)家地方聯(lián)合工程實(shí)驗(yàn)室基金項(xiàng)目(GSYSJ2016014)
楊盛泉(1974-),男,西安工業(yè)大學(xué)副教授.主要研究方向?yàn)橹悄芸刂?、專家系統(tǒng)、軟件工程.E-mail:xaitysq@163.com.
TP277
A
1673-9965(2016)09-0749-08