基于ZigBee的光伏照明控制系統(tǒng)設(shè)計
摘要:設(shè)計一種基于ZigBee無線網(wǎng)絡(luò)的光伏照明控制系統(tǒng),給出系統(tǒng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和節(jié)點的硬件設(shè)計方案,以及軟件結(jié)構(gòu)設(shè)計。該系統(tǒng)采用CC2430實現(xiàn)無線數(shù)據(jù)傳輸,采用CC2591功率放大器提高發(fā)射功率,傳輸距離遠(yuǎn),可靠性高,有效地克服了傳統(tǒng)照明控制方式落后和布線復(fù)雜等缺點。
引言
光伏發(fā)電作為利用太陽能的主要方式,已經(jīng)得到廣泛的應(yīng)用。光伏照明是一種獨立的光伏發(fā)電系統(tǒng),主要用于城市和建筑物照明系統(tǒng)的建設(shè)和改造。目前,照明控制系統(tǒng)中多采用有線網(wǎng)絡(luò)方式,維護起來比較復(fù)雜,如何簡化施工、降低成本并實現(xiàn)遠(yuǎn)距離控制是一個值得探討的問題。本文介紹了一種利用ZigBee無線傳感器網(wǎng)絡(luò)技術(shù)實現(xiàn)光伏照明系統(tǒng)遠(yuǎn)程監(jiān)控的方案,并給出了詳細(xì)的軟硬件設(shè)計。
1 光伏照明控制系統(tǒng)組成及工作原理
光伏照明控制系統(tǒng)由光伏發(fā)電系統(tǒng)、無線通信系統(tǒng)和監(jiān)控計算機3個部分組成。
光伏發(fā)電系統(tǒng)由建筑頂部的太陽能電池板、鉛酸蓄電池組和光伏充電機構(gòu)成。太陽能電池是照明系統(tǒng)的輸入電源,為照明系統(tǒng)提供照明和控制所需電能。白天,在光照充足的條件下將所接收的光能轉(zhuǎn)換為電能,經(jīng)光伏充電機對蓄電池組充電;夜晚,蓄電池組將儲存的電能經(jīng)光伏充電機切換輸出到路燈負(fù)載。當(dāng)光伏充電機對蓄電池組進行充電時,為延長蓄電池壽命,必須避免蓄電池處于過充電或者過放電的狀態(tài)。因此,需要對光伏充電機充電電流、電壓和發(fā)電量等數(shù)據(jù)進行實時監(jiān)控和保存,還要求能對路燈進行獨立的開關(guān)控制。
由于本系統(tǒng)中太陽能電池板位于圖書館頂部,監(jiān)控計算機處于相隔200 m的另外一個建筑物中,中間相隔了水池,如果采用有線通信方式則需要重新進行布線,施工復(fù)雜且成本較高,因此,采用無線通信網(wǎng)絡(luò)。無線通信方式不僅簡單靈活,無需考慮布線問題,還可以通過和其他總線通信方式的結(jié)合,實現(xiàn)遠(yuǎn)距離數(shù)據(jù)傳輸和路燈控制。采用ZigBee無線傳感器網(wǎng)絡(luò)技術(shù)可實現(xiàn)對充電機狀態(tài)數(shù)據(jù)的傳輸;同時,監(jiān)控計算機可以通過無線網(wǎng)絡(luò)控制路燈的開關(guān)狀態(tài),實現(xiàn)了對充電機狀態(tài)的實時監(jiān)控和燈光控制效果。控制范圍在300 m以內(nèi),如果增加路由器,還可擴展到更遠(yuǎn)的范圍。
ZigBee是一種短距離、低速率、低功耗、低成本和低復(fù)雜度的無線傳輸技術(shù),非常適合于低功耗和低數(shù)據(jù)量的短距離無線傳輸。ZigBee的低功耗特點限制了節(jié)點之間的通信距離(一般為70 m)。本系統(tǒng)中,節(jié)點之間的距離超過了其正常通信距離。有2種解決辦法:一種是通過增加路由器節(jié)點來擴大覆蓋范圍,缺點是增加硬件成本;另一種是利用PA(Power Amplification,功率放大)提高發(fā)射功率,該方法較為簡單且成本較低。本設(shè)計中采用后者來擴大網(wǎng)絡(luò)覆蓋范圍。
ZigBee設(shè)備可分為全功能設(shè)備(FFD)和精簡功能設(shè)備(RFD)。FFD可以與RFD或者FFD通信,而RFD只能和FFD通信;FFD可作為網(wǎng)絡(luò)協(xié)調(diào)器、路由器或終端設(shè)備,RFD只能作為終端設(shè)備。本系統(tǒng)中網(wǎng)絡(luò)協(xié)調(diào)器和監(jiān)控計算機通過RS485總線相連,負(fù)責(zé)建立、管理和維護網(wǎng)絡(luò),控制其他節(jié)點接收數(shù)據(jù)等功能。路由器通過RS485總線和光伏充電機相連,實現(xiàn)對其數(shù)據(jù)的采集和控制,終端節(jié)點接收監(jiān)控計算機的命令控制路燈電源的開關(guān)。ZigBee網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)支持星形(Star)、樹形(Clustetree)和網(wǎng)狀(Mesh)。為簡化設(shè)計,無線網(wǎng)絡(luò)采用樹形網(wǎng)絡(luò)拓?fù)?,系統(tǒng)組成如圖1所示。
監(jiān)控計算機負(fù)責(zé)光伏數(shù)據(jù)采集和系統(tǒng)管理,通過RS485總線和安裝在戶外的網(wǎng)絡(luò)協(xié)調(diào)器進行通信。光伏充電機數(shù)據(jù)通過RS485總線傳送到路由器節(jié)點,再由協(xié)調(diào)器轉(zhuǎn)發(fā)到監(jiān)控計算機。路由器還起到延長ZigBee網(wǎng)絡(luò)傳輸距離的作用。監(jiān)控計算機通過網(wǎng)絡(luò)協(xié)調(diào)器發(fā)送命令給路由器,實現(xiàn)對充電機電源開關(guān)的切換控制。路燈供電線纜通電后,終端節(jié)點加入ZigBee網(wǎng)絡(luò)。網(wǎng)絡(luò)協(xié)調(diào)器對終端節(jié)點進行檢查,并將節(jié)點狀態(tài)傳輸給監(jiān)控計算機。監(jiān)控計算機通過網(wǎng)絡(luò)協(xié)調(diào)器發(fā)送命令給各個終端節(jié)點,控制各個節(jié)點路燈電源開關(guān)導(dǎo)通或者斷開,從而實現(xiàn)路燈的單獨或者分段照明控制。當(dāng)需要實現(xiàn)景觀燈效果時,可通過監(jiān)控軟件設(shè)計向各個終端節(jié)點發(fā)送相應(yīng)的控制命令。
2 硬件節(jié)點設(shè)計
考慮到無線通信系統(tǒng)中各個節(jié)點的功能不完全相同,為了方便硬件設(shè)計和降低成本,對硬件部分進行了模塊化處理。節(jié)點的核心部分為ZigBee通信模塊,設(shè)計成只負(fù)責(zé)RF收發(fā),其他部分由路燈開關(guān)模塊、電源和RS485通信模塊等構(gòu)成。無線通信模塊采用支持ZigBee協(xié)議的超低功耗SoC芯片CC2430。該芯片集成ZigBee射頻RF前端、內(nèi)存和微控制器,具有8位增強型8051 MCU、128KB可編程閃存和8 KB的RAM,另外還包含A/D轉(zhuǎn)換器、定時器、AESl28協(xié)處理器、看門狗定時器、休眠模式定時器、上電復(fù)位電路、掉電檢測電路以及21個可編程I/O引腳。TI公司提供免費的ZigBee協(xié)議棧,可以方便地完成系統(tǒng)的硬件和軟件設(shè)計。
2.1 ZigBee通信模塊硬件設(shè)計
圖2為ZigBee通信模塊原理圖。經(jīng)過現(xiàn)場試驗發(fā)現(xiàn),由于網(wǎng)絡(luò)協(xié)調(diào)器和其他節(jié)點之間距離較遠(yuǎn),只采用CC2430時網(wǎng)絡(luò)數(shù)據(jù)傳輸不穩(wěn)定。為延長無線通信模塊的通信距離,又采用了TI公司的高性能射頻前端CC2591。CC2591可提供22 dBm的輸出功率,能夠與CC2430無縫連接,射頻輸入/輸出之間不需要增加額外的匹配網(wǎng)絡(luò)。簡單起見,圖中沒有給出電源和退耦電路、GPIO、JTAG等部分,空余引腳通過排座引出以便與其他模塊連接。
CC2591的HGM引腳為增益控制,當(dāng)它為高電平時處于高增益模式;EN和PAEN為高電平時CC2591工作在正常模式,為低電平時進入低功耗模式。R1、R2為偏置電阻,為晶體振蕩器提供合適的工作電流。天線采用50 Ω鞭狀天線。由于ZigBee模塊工作在2.4 GHz頻段,對PCB設(shè)計要求很高,PCB板材、元件封裝、布局和布線必須參照TI公司的參考設(shè)計。特別是天線阻抗匹配部分,在布線中應(yīng)直接采用TI公司提供的GERBER文件,復(fù)制其PCB布線方式才能保證CC2591的高性能和穩(wěn)定性。另外,PCB的電源退耦和地線處理也非常重要,退耦電容應(yīng)盡可能接近電源引腳,PCB空余的部分需進行覆銅接地處理,在頂層和底層覆銅之間按照一定的間隔用過孔相連。
2.2 協(xié)調(diào)器和路由器硬件設(shè)計
由于協(xié)調(diào)器和路由器都需要通過RS485總線和其他設(shè)備進行遠(yuǎn)距離通信,因此需要設(shè)計RS485通信模塊與ZigBee通信模塊相連。通信模塊采用MAX485和光耦實現(xiàn),MAX485通過CC2430的PO.5腳完成RS485收發(fā)控制。CC2430電源采用LTlll7-3.3等芯片供電。在ZigBee協(xié)議中,網(wǎng)絡(luò)協(xié)調(diào)器負(fù)責(zé)建立網(wǎng)絡(luò)和實現(xiàn)路由控制等功能,因此必須保持工作狀態(tài),保證數(shù)據(jù)采集的可靠性和穩(wěn)定性。本系統(tǒng)中,網(wǎng)絡(luò)協(xié)調(diào)器和路由器正常工作時采用外部交流電源供電。當(dāng)外部交流電源掉電時,通過微處理器監(jiān)控芯片ADM690實現(xiàn)電源切換,利用電池組對其供電,以保證網(wǎng)絡(luò)的穩(wěn)定工作。ADM690具有低功耗、低導(dǎo)通電阻和大電流輸出等特性,非常適合實現(xiàn)微處理器的電池后備功能。該電路設(shè)計如圖3所示。其中,R1為充電限流電阻,在外部電源正常時可以對電池涓流充電。
2.3 終端節(jié)點硬件設(shè)計
終端節(jié)點的功能是接收協(xié)調(diào)器發(fā)送的指令控制路燈開關(guān)。其電源是在監(jiān)控計算機發(fā)送命令到光伏充電機對路燈供電線纜供電之后提供,因此硬件部分不需要電池后備功能、光伏照明系統(tǒng)中供電電壓為直流220 V,終端節(jié)點電源部分采用DC-DC開關(guān)電源產(chǎn)生5 V直流供電,路燈開關(guān)控制則通過CC2430的GPIO和三極管控制繼電器實現(xiàn)。由于CC2430只有引腳P1.O和P1.1具有20 mA的驅(qū)動能力,而其他引腳最大驅(qū)動電流為4 mA,所以使用SN74HC04D作為輸出緩沖。其原理圖如圖4所示。
3 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件主要包括ZigBee協(xié)調(diào)器節(jié)點程序、路由器節(jié)點程序、終端節(jié)點程序和監(jiān)控計算機程序。監(jiān)控計算機程序?qū)崿F(xiàn)對光伏照明系統(tǒng)的監(jiān)控和數(shù)據(jù)處理,LED路燈通斷控制,以及與之相連的另外一套光伏發(fā)電系統(tǒng)和環(huán)境監(jiān)測系統(tǒng)的數(shù)據(jù)采集和監(jiān)控。監(jiān)控計算機與協(xié)調(diào)器節(jié)點通信通過二進制編碼的方式進行通信,每隔5 s發(fā)送1次采集命令。其數(shù)據(jù)包格式如下:
其中,數(shù)據(jù)包包頭(HEADER)占2字節(jié),可設(shè)置為0x81、Ox82,用于區(qū)分是計算機數(shù)據(jù)包輸出還是數(shù)據(jù)包輸入;數(shù)據(jù)長度(LENGTH)為1字節(jié);命令類型包括充電機數(shù)據(jù)采集、路燈開關(guān)狀態(tài)采集、環(huán)境參數(shù)采集等;數(shù)據(jù)字節(jié)數(shù)由LENGTH指定;數(shù)據(jù)CRC校驗占1字節(jié)。
ZigBee節(jié)點程序是在TI公司提供的ZStack-1.4.3-1.2.1協(xié)議棧的基礎(chǔ)上編寫的,可以實現(xiàn)網(wǎng)絡(luò)建立、節(jié)點加入和退出、數(shù)據(jù)傳輸?shù)裙δ?。該協(xié)議棧將應(yīng)用層和堆棧層進行了分離,提供了類似于操作系統(tǒng)的運行機制(OSAL)(主要包括任務(wù)的注冊、初始化、啟動,任務(wù)間的消息交換,任務(wù)同步,中斷處理,以及時間管理和內(nèi)存分配等),具有很好的可移植性。
節(jié)點程序流程如圖5所示。當(dāng)對硬件和協(xié)議棧各層初始化后,采用有限狀態(tài)機以事件輪詢方式對事件進行處理。如果同時有幾個事件發(fā)生,則判斷事件優(yōu)先級后逐次處理。該協(xié)議棧提供了豐富的API函數(shù)供用戶調(diào)用,這種軟件構(gòu)架可方便地構(gòu)造用戶應(yīng)用程序。由于對終端節(jié)點的供電是由光伏充電機根據(jù)監(jiān)控計算機的命令來控制,因此在正常情況下終端節(jié)點每天都會加人和退出網(wǎng)絡(luò)。
ZigBee節(jié)點之間的通信有兩種尋址方式,分別通過固定的64位IEEE地址和16位網(wǎng)絡(luò)地址來尋找網(wǎng)絡(luò)設(shè)備。當(dāng)節(jié)點加入ZigBee網(wǎng)絡(luò)時,它可以通過協(xié)調(diào)器隨機獲取唯一的l6位網(wǎng)絡(luò)地址。光伏照明系統(tǒng)要求能按照路燈的編號任意控制其點亮或者關(guān)閉,而要與特定節(jié)點通信必須采用IEEE地址,故利用TI公司提供的SmartRF軟件對ZigBee節(jié)點的64位IEEE地址進行人工分配。協(xié)調(diào)器向終端節(jié)點傳送數(shù)據(jù)使用AF_DataReqt-lest()函數(shù)實現(xiàn),該函數(shù)需要節(jié)點的網(wǎng)絡(luò)地址作為參數(shù),通過IEEE地址獲取16位網(wǎng)絡(luò)地址的功能由NLME_GetShortAddr()函數(shù)實現(xiàn)。程序設(shè)計中,在應(yīng)用層添加用戶所需要的任務(wù),對接收到的事件進行處理。節(jié)點在啟動時需完成以下工作:初始化CC2430和協(xié)議棧;幫助協(xié)調(diào)器節(jié)點建立ZigBee網(wǎng)絡(luò),設(shè)置網(wǎng)絡(luò)PAN ID,等待其他節(jié)點加入網(wǎng)絡(luò);對監(jiān)控計算機傳送的命令進行解析和轉(zhuǎn)發(fā);讀取路由器和各個終端節(jié)點發(fā)送的狀態(tài)數(shù)據(jù),并轉(zhuǎn)發(fā)給監(jiān)控計算機處理。
配置ZigBee設(shè)備對象(ZD0)端點時,網(wǎng)內(nèi)的所有節(jié)點其端點ID和端點描述符必須相同,否則節(jié)點之間不能進行通信。圖5的程序流程主要是針對用戶事件處理(包括串口事件、數(shù)據(jù)傳送事件、定時器事件等),路由器和終端節(jié)點的程序設(shè)計流程類似,分別在用戶事件中根據(jù)協(xié)調(diào)器發(fā)送的命令類型完成充電機狀態(tài)數(shù)據(jù)采集、回傳,以及路燈開關(guān)控制。
結(jié)語
將ZigBee無線網(wǎng)絡(luò)用于光伏照明系統(tǒng)控制,具有通信距離遠(yuǎn)、成本低,維護方便等優(yōu)點,控制路燈總數(shù)可達(dá)64盞,覆蓋范圍大于300 m,并可以進一步擴展。該系統(tǒng)已經(jīng)成功應(yīng)用于建設(shè)部太陽能建筑應(yīng)用示范工程,且通過建設(shè)部驗收。