浦 煒,郭 凱
(常熟理工學(xué)院,江蘇 常熟 215500)
當(dāng)前高校對(duì)開(kāi)放實(shí)驗(yàn)平臺(tái)的管理還主要停留在人力上,這種方式不僅浪費(fèi)人力,增加管理成本,而且實(shí)驗(yàn)設(shè)備的狀態(tài)信息也得不到及時(shí)反饋。鑒于這種現(xiàn)象,基于物聯(lián)網(wǎng)技術(shù)的實(shí)驗(yàn)平臺(tái)管理模塊設(shè)計(jì)就凸顯出其實(shí)際應(yīng)用價(jià)值。
ZigBee 是基于IEEE802.15.4 標(biāo)準(zhǔn)的個(gè)域網(wǎng)協(xié)議,該協(xié)議定義了一種近距離、低復(fù)雜度、低功耗、低數(shù)據(jù)速率、低成本的雙向無(wú)線通信技術(shù)[1]。采用基于CC2530 的ZigBee 無(wú)線傳輸技術(shù)設(shè)計(jì)的實(shí)驗(yàn)平臺(tái)管理模塊,可實(shí)現(xiàn)實(shí)驗(yàn)平臺(tái)管理數(shù)據(jù)的自動(dòng)采集、自動(dòng)控制平臺(tái)的運(yùn)行情況。在物聯(lián)網(wǎng)發(fā)展的大勢(shì)下,實(shí)驗(yàn)室的管理和運(yùn)作將朝著更加自動(dòng)化和人性化的方向發(fā)展。
結(jié)合高校開(kāi)放實(shí)驗(yàn)教學(xué)管理平臺(tái)的需求,系統(tǒng)總體設(shè)計(jì)由三個(gè)子系統(tǒng)構(gòu)成,分別為基于嵌入式Web 的遠(yuǎn)程實(shí)驗(yàn)教學(xué)監(jiān)控系統(tǒng)、基于QtE 界面設(shè)計(jì)的ARM 主控系統(tǒng)以及基于ZigBee 的實(shí)驗(yàn)平臺(tái)管理模塊。前兩個(gè)模塊是對(duì)實(shí)驗(yàn)平臺(tái)的本地化和遠(yuǎn)程化的管理,而平臺(tái)數(shù)據(jù)的采集和控制由第三模塊實(shí)現(xiàn)。總體架構(gòu)如圖1。
圖1 系統(tǒng)總體架構(gòu)
實(shí)驗(yàn)平臺(tái)管理模塊作為系統(tǒng)的一部分,其功能由系統(tǒng)需求而定。以下為具體功能:
1)系統(tǒng)上電后,管理模塊以ZigBee 無(wú)線的方式實(shí)現(xiàn)了實(shí)驗(yàn)平臺(tái)與ARM 主控端的連接。如此避免了布線的麻煩,使系統(tǒng)管理起來(lái)更方便。
2)學(xué)生可以自主選擇實(shí)驗(yàn)平臺(tái),系統(tǒng)通過(guò)管理模塊開(kāi)放相應(yīng)的實(shí)驗(yàn)平臺(tái)供電。
3)學(xué)生在實(shí)驗(yàn)過(guò)程中,如有信息反饋,可通過(guò)管理模塊上的輸入設(shè)備(如按鍵)來(lái)發(fā)送反饋信息。
4)管理模塊可以采集實(shí)驗(yàn)平臺(tái)傳感信息,如溫度、工作電流等,反饋給本地或遠(yuǎn)程監(jiān)控終端。
由于實(shí)驗(yàn)教學(xué)管理平臺(tái)是通過(guò)無(wú)線方式管理具體實(shí)驗(yàn)平臺(tái),從成本、構(gòu)建復(fù)雜度等因素考慮,選擇了基于ZigBee的無(wú)線網(wǎng)絡(luò)解決方案。
構(gòu)建ZigBee 無(wú)線通信網(wǎng)絡(luò)的一種典型的方案是CC2530片上系統(tǒng)和ZigBee 協(xié)議棧(Z-Stack)[2]。CC2530 是德州儀器推出的一款用于IEEE 802.15.4、ZigBee 應(yīng)用的片上系統(tǒng)(SoC)解決方案。CC2530 集成了增強(qiáng)工業(yè)標(biāo)準(zhǔn)的8051MCU,能夠以極低的成本構(gòu)建強(qiáng)大的網(wǎng)絡(luò)節(jié)點(diǎn),使用CC2530 可以很大程度的滿足設(shè)計(jì)要求[3,4]。
模塊的硬件包含基于CC2530 的協(xié)調(diào)器和節(jié)點(diǎn)兩部分。協(xié)調(diào)器主要與主控ARM 系統(tǒng)通過(guò)串口通訊,實(shí)現(xiàn)控制指令的下發(fā)和采集數(shù)據(jù)的上傳。協(xié)調(diào)器與各節(jié)點(diǎn)間通過(guò)ZigBee無(wú)線網(wǎng)絡(luò)交換數(shù)據(jù)。節(jié)點(diǎn)部分通過(guò)驅(qū)動(dòng)電路實(shí)現(xiàn)實(shí)驗(yàn)平臺(tái)的供電控制,采集平臺(tái)工作狀態(tài)、學(xué)生反饋信息等。
協(xié)調(diào)器和節(jié)點(diǎn)均由CC2530 作為核心單元,它是基于IEEE 802.15.4、ZigBee 應(yīng)用的片上系統(tǒng)(SoC)解決方案。CC2530 采用的是增強(qiáng)工業(yè)級(jí)8051 內(nèi)核,提供了一個(gè)IEEE 802.15.4 兼容無(wú)線收發(fā)器,RF 內(nèi)核控制模擬無(wú)線模塊,提供MCU 和無(wú)線設(shè)備之間的接口[5]。CC2530 最小系統(tǒng)包括晶振電路、復(fù)位電路、天線匹配電路等。
圖2 模塊硬件框圖
圖3 平臺(tái)供電控制電路
如圖3,繼電器的作用是開(kāi)閉實(shí)驗(yàn)平臺(tái)的電源。模塊所選繼電器由5 V 電壓驅(qū)動(dòng),通過(guò)單片機(jī)IO 控制繼電器。當(dāng)IO 輸出高電平,三極管達(dá)到飽和狀態(tài),集電極和射極導(dǎo)通。導(dǎo)通后二者之間壓差大約為0.2 V,這就使繼電器兩輸入端的電壓約為4.8 V,很接近5 V,完全可以滿足需要。
圖4 按鍵及狀態(tài)指示燈電路
按鍵狀態(tài)采集,學(xué)生可通過(guò)按鍵反饋實(shí)驗(yàn)平臺(tái)運(yùn)行情況的反饋信息,如圖4。
溫度的采集依靠CC2530 內(nèi)部集成溫度傳感器,可通過(guò)寄存器操作實(shí)現(xiàn)溫度采集。
實(shí)驗(yàn)平臺(tái)工作電流狀態(tài)的采集采用電流檢測(cè)芯片ACS712 模塊,接入CC2530 的AD 通道實(shí)現(xiàn)。
管理模塊分為協(xié)調(diào)端和節(jié)點(diǎn)終端。協(xié)調(diào)器主要負(fù)責(zé)建立網(wǎng)絡(luò)及網(wǎng)絡(luò)配置;接收上層實(shí)驗(yàn)教學(xué)管理系統(tǒng)通過(guò)串口發(fā)過(guò)來(lái)的指令,包括電源控制指令、狀態(tài)信息獲取指令、傳感數(shù)據(jù)采集指令等;與節(jié)點(diǎn)交互數(shù)據(jù)。
節(jié)點(diǎn)終端的功能則是接收協(xié)調(diào)器指令,對(duì)指令進(jìn)行解析,然后對(duì)相關(guān)設(shè)備進(jìn)行操作,或?qū)?shù)據(jù)返回給上層協(xié)調(diào)器。
ZigBee 無(wú)線網(wǎng)絡(luò)有三種拓?fù)浣Y(jié)構(gòu):星型網(wǎng)絡(luò)、網(wǎng)狀結(jié)構(gòu)和簇狀結(jié)構(gòu)。系統(tǒng)選擇星型網(wǎng)絡(luò)可以滿足功能的需要,只需協(xié)調(diào)器和終端節(jié)點(diǎn)就可實(shí)現(xiàn)星型網(wǎng)絡(luò)。在網(wǎng)絡(luò)中,協(xié)調(diào)器建立網(wǎng)絡(luò)之后,就可充當(dāng)路由器使用,終端節(jié)點(diǎn)則作為數(shù)據(jù)采集終端。通過(guò)ZigBee 協(xié)議棧,由選擇協(xié)議棧的配置文件設(shè)定設(shè)備類型。系統(tǒng)上電后,協(xié)調(diào)器自動(dòng)選擇一個(gè)信道,接著選擇一個(gè)網(wǎng)絡(luò)號(hào),建立網(wǎng)絡(luò)。網(wǎng)絡(luò)建立后,協(xié)調(diào)器就可進(jìn)行數(shù)據(jù)路由,充當(dāng)路由器的角色。路由器進(jìn)行數(shù)據(jù)的路由,允許節(jié)點(diǎn)加入網(wǎng)絡(luò),并可輔助其子節(jié)點(diǎn)通信[6]。終端節(jié)點(diǎn)主要功能是數(shù)據(jù)采集,不具有網(wǎng)絡(luò)維護(hù)功能。
協(xié)調(diào)器軟件具體實(shí)現(xiàn)功能:建立網(wǎng)絡(luò),實(shí)現(xiàn)數(shù)據(jù)的收發(fā)。首先存儲(chǔ)節(jié)點(diǎn)端的地址信息,為向終端節(jié)點(diǎn)發(fā)送數(shù)據(jù)做準(zhǔn)備。同時(shí),協(xié)調(diào)器接收終端節(jié)點(diǎn)發(fā)送過(guò)來(lái)的傳感數(shù)據(jù)和狀態(tài)信息,然后通過(guò)串口將數(shù)據(jù)傳送給上位機(jī)。協(xié)調(diào)器也從串口接收上位機(jī)指令,發(fā)送給終端節(jié)點(diǎn),實(shí)現(xiàn)對(duì)終端的控制。
圖5 是協(xié)調(diào)器程序流程圖。
圖5 協(xié)調(diào)端程序流程
終端節(jié)點(diǎn)實(shí)現(xiàn)功能:加入網(wǎng)絡(luò),實(shí)現(xiàn)數(shù)據(jù)的收發(fā)。一方面,終端定時(shí)采集傳感信息發(fā)送給協(xié)調(diào)器(如圖7),再由協(xié)調(diào)器傳給上位機(jī)。另一方面,終端也接收協(xié)調(diào)器發(fā)來(lái)的上位機(jī)指令,完成相關(guān)操作。
終端節(jié)點(diǎn)程序具體的工作是接收由協(xié)調(diào)端發(fā)送過(guò)來(lái)的指令,然后解析指令,進(jìn)行設(shè)備狀態(tài)獲取、開(kāi)閉設(shè)備、啟動(dòng)或停止傳感數(shù)據(jù)采集等操作。另外,終端還可通過(guò)按鍵向協(xié)調(diào)端發(fā)送反饋信息。
終端程序流程圖如圖6。
圖6 終端節(jié)點(diǎn)主程序流程
圖7 定時(shí)中斷服務(wù)程序流程
對(duì)ZigBee 的實(shí)驗(yàn)平臺(tái)管理模塊的測(cè)試?yán)么谥噶罴瘉?lái)調(diào)控模塊。模塊與ARM 系統(tǒng)依靠串口通信,利用串口指令集進(jìn)行功能調(diào)控,簡(jiǎn)單可靠。
上位機(jī)串口指令長(zhǎng)度設(shè)計(jì)為6 個(gè)字節(jié),具體格式定義為:
設(shè)備號(hào)用于區(qū)分向那個(gè)模塊發(fā)送指令,如設(shè)備號(hào)為0x01 時(shí),就控制對(duì)應(yīng)設(shè)備號(hào)的實(shí)驗(yàn)平臺(tái)。需要注意的是,若設(shè)備號(hào)為0xff,表示控制所有實(shí)驗(yàn)平臺(tái)。這用于區(qū)分協(xié)調(diào)端發(fā)送數(shù)據(jù)是單播模式還是廣播模式。
自定義命令則是根據(jù)模塊的功能設(shè)計(jì)確定的。以下是部分定義的命令。
測(cè)試數(shù)據(jù)如下:
串口指令為:0xff 0xaa 0xbb 0x02 0x05 0x23,表示獲取2 號(hào)實(shí)驗(yàn)平臺(tái)的使用狀態(tài)。
串口指令為:0xff 0xaa 0xbb 0xff 0x05 0x23,表示獲取所有實(shí)驗(yàn)平臺(tái)的使用狀態(tài)。
串口接收到的數(shù)據(jù)也要具有一定的數(shù)據(jù)格式,以便于上位機(jī)提取信息。
數(shù)據(jù)長(zhǎng)度定義為9 個(gè)字節(jié),具體格式如下:
設(shè)備地址是指數(shù)據(jù)返回終端的網(wǎng)絡(luò)地址,網(wǎng)絡(luò)地址是一個(gè)16 位數(shù)據(jù)。
數(shù)據(jù)類型用來(lái)標(biāo)明返回的是哪一類數(shù)據(jù)。若數(shù)據(jù)類型值為字符T,表示數(shù)據(jù)位溫度值;若數(shù)據(jù)類型值為字符S,表示數(shù)據(jù)位為設(shè)備使用狀態(tài)值。諸如此類。
測(cè)試數(shù)據(jù)如下:
串口接收數(shù)據(jù):0x23 0x23 0x02 0x72 0x33 0x54 0x32 0x33 0x26,表示接收到設(shè)備2 的溫度為23℃。其中0x54 為字符T 的ASCII 碼,溫度值以字符的形式顯示。
串口接收數(shù)據(jù):0x23 0x23 0x02 0x72 0x33 0x53 0x00 0x01 0x26,表示接收到設(shè)備2 的使用狀態(tài)信息。0x53 為字符S 的ASCII 碼,數(shù)據(jù)第八位值為0x01,表示設(shè)備正在使用,若為0x00,則表示設(shè)備關(guān)閉。
基于CC2530 的實(shí)驗(yàn)平臺(tái)管理模塊,彌補(bǔ)了傳統(tǒng)實(shí)驗(yàn)平臺(tái)無(wú)法實(shí)時(shí)監(jiān)管的弊端,使高校開(kāi)放實(shí)驗(yàn)平臺(tái)的管理智能化成為可能,具有現(xiàn)實(shí)的應(yīng)用價(jià)值。該管理模塊采用CC2530為核心處理器,體現(xiàn)了組網(wǎng)便捷、成本較低、充分結(jié)合物聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)無(wú)線遠(yuǎn)程監(jiān)控,將該模塊接入上位機(jī)即可實(shí)現(xiàn)多功能的、便捷化的監(jiān)控系統(tǒng),具有很強(qiáng)的可操作性。
[1]原羿,蘇鴻根.基于ZigBee 技術(shù)的無(wú)線網(wǎng)絡(luò)應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用與軟件,2004,21(6):89-91.
[2]呂西午,劉開(kāi)華,趙巖.基于ZigBee 的無(wú)線監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2010,36(5):243-244.
[3]杜煥軍,張維勇,劉國(guó)田.ZigBee 網(wǎng)絡(luò)的路由協(xié)議研究[J].合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2008,31(10):1617-1621.
[4]任智,李鵬翔,姚玉坤,等.基于分段的ZigBee 網(wǎng)絡(luò)按需可擴(kuò)展地址分配算法[J].通信學(xué)報(bào),2012,33(5):131-137.
[5]Texas Instruments.CC2530:A True System-on-Chip Solution for 2.4GHz IEEES02.15.4/ZigBee[OL].(2005-09-14).http://www.ti.com/
[6]王小強(qiáng),歐陽(yáng)駿,黃寧淋.ZigBee 無(wú)線傳感器網(wǎng)絡(luò)設(shè)計(jì)與實(shí)現(xiàn)[M].北京:化學(xué)工業(yè)出版社,2012.