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