宋紹劍 薛春偉
(廣西大學 電氣工程學院,廣西 南寧市 530004)
近年來,隨著城市道路照明現代化進程的加快,路燈監控系統受到很大關注。國內外已經出現了大量路燈監控系統方案,例如:采用GSM無線公共網短消息、基于PLC、基于組態王及GPRS通訊、基于Lonworks等[1]。然而這些方案實施復雜,費用也不低廉,而Zigbee技術是一種基于 IEEE 802.15.4的物理層和媒體訪問層標準,與其他短距離無線協議相比,具有功耗低、可靠性高、復雜度低、支持大量網絡節點和運行費用較低等顯著優點,非常適合在城市路燈系統中應用[2~3]。本文針對目前城市路燈照明系統存在的問題,如自動化管理水平還不很高、系統可靠性不高等,提出了一套基于Zigbee的路燈集中監控系統。該系統集無線通訊技術、自動化控制技術、監控系統組網技術和數據庫技術于一體,為城市路燈照明系統的新建或改造升級提供穩定、可靠、低成本的實施方案,有著廣闊的應用前景。
本文所設計的城市路燈智能監控系統由監控終端控制器、Zigbee網絡、監控中心三部分構成,如圖1所示。其中監控終端控制器由電參數采集板、ATmega128核心控制板、繼電器模塊、LCD顯示和Zigbee模塊組成,如圖2所示。系統工作原理如下:首先,通過電壓互感器和電流互感器將路燈的電參數送給電參數采集板,電參數采集板的ATT7O22B芯片讀取各類電參數,然后ATT7022B通過 SPI口將電參數的數據傳給控制核心板,并通過LCD模塊進行顯示;同時,還可以運用鍵盤模塊對ATmega128發送命令,ATmega128再通過 RS232接口將數據或命令傳給Zigbee終端節點,終端節點與相鄰節點互傳數據,匯總于匯節點,最終通過GPRS網絡傳給監控中心。

圖1 城市路燈智能監控系統部署圖

圖2 監控終端控制器結構框圖
核心控制板的CPU選用ATmega128單片機,它是8位基于AVR RISC結構的低功耗CMOS微處理器,具有性價比高、功耗小、可靠性高等特點。LCD模塊選用LCD12864帶中文字符型液晶顯示屏,它自帶漢字字庫,通過查詢中文字庫表便能實現LCD的中文顯示,只用三個管腳就能完成通訊和控制。繼電器模塊的工作線圈為24V。鍵盤模塊采用了一個4×4的矩陣鍵盤。時鐘模塊選用DS1302芯片,為CPU提供實時時鐘。它采用串行數據傳輸,可為掉電保護電源提供可編程的充電功能,并且可以關閉充電功能,編程簡單,功耗小 (見圖3)。

圖3 核心控制板主要模塊原理圖
電參數采集板的采集芯片采用ATT7022B芯片。它是一顆高精度的三相多功能電能計量專用芯片,集成了七路二階sigma-delta ADC,參考電壓電路以及所有功率、能量、有效值、功率因數、頻率測量的數字信號處理等電路,適用于三相三線和三相四線應用。電壓與電流互感器分別選擇了北京雙電的PT01(微型精密電壓互感器)和 CT01(微型精密電流互感器5A系列)。Zigbee模塊采用上海順舟網絡科技有限公司的SZ02系列Zigbee無線RS232串口通信設備,采用了加強型的Zigbee無線技術,是符合工業標準應用的無線數據通信設備。它具有通訊距離遠、抗干擾能力強、組網靈活等優點和特性,可實現多設備間的數據透明傳輸,可組MESH型的網狀網絡結構。
ATmega128單片機集成的指令功能豐富,內存等資源也都比較豐富,為了提高編程效率、代碼的可讀性、可移植性和可維護性,本系統使用C語言開發系統軟件。電參數采集芯片ATT7022B提供一個SPI接口,方便與外部MCU之間進行計量參數以及校表參數的傳遞。其SPI接口采用從屬方式工作,使用2條控制線和2條數據線:CS、SCLK、DIN和DOUT。ATT7022B能夠測量各相以及合相的有功功率、無功功率、視在功率、有功能量以及無功能量,同時還能測量各相電流、電壓有效值、功率因數、相角、頻率等參數,充分滿足三相復費率多功能電能表的需求。時鐘芯片DS1302采用串行數據傳輸,與CPU的連接需要三條線,即 SCLK(7)、I/O(6)、RST(5)。它可以對年、月、日、周日、時、分、秒進行計時,且具有閏年補償等多種功能。
系統的主程序流程如圖4所示。系統通電后,首先初始化各底層硬件 (包括LCD設備、串口參數等)和電參數測量 I/O口。初始化完成后,ATmega128通過DS1302和繼電器模塊定時開關路燈,然后循環讀取ATT7022B芯片發送的數據,獲取電壓、電流、功率、功率因數等各類電參數,將各種參數打包后,通過串行通訊口RS232上傳至Zigbee模塊,同時在本地LCD上顯示出來。

圖4 主程序流程圖
4.2.1 SPI通訊口介紹
ATT7022B內部集成了一個SPI串行通訊接口。ATT7022B的SPI接口采用從屬方式工作,使用2條控制線和2條數據線:CS、SCLK、DIN和DOUT。
CS:片選 (輸入腳),允許訪問串口的控制線。CS由高電平變為低電平時表示 SPI操作開始,CS由低電平變為高電平時表示SPI操作結束。所以每次SPI操作時CS必須出現下降沿,CS出現上升沿時表示SPI操作結束。
DIN:串行數據輸入 (輸入腳),用于把用戶的數據 (如:數據、命令、地址等)傳輸到ATT7022B。
DOUT:串行數據輸出 (輸出腳),用于從ATT7022B寄存器讀出數據。
SCLK:串行時鐘 (輸入腳),控制數據移出或移入串行口的傳輸率。上升沿放數據,下降沿取數據。SCLK下降沿時將DIN上的數據采樣到ATT7022B中,SCLK上升沿時將ATT7022B的數據放置于DOUT上輸出。
4.2.2 SPI讀、寫操作
SPI讀工作過程:通過SPI寫入一個8Bits的命令字后,可能需要一個等待時間,然后才能通過SPI讀取24Bits的數據。在 SCLK低于 200kHz時,可以不需要等待,即等待時間為0us;當SCLK頻率高于200kHz時,則需要等待大約3us。
SPI寫工作過程:通過SPI寫入一個8Bits的命令字后,不需要等待繼續通過SPI讀取24Bits的數據即可 (見圖5)。

圖5 SPI讀、寫時序圖
4.2.3 電參數測量程序
核心板通電后,先對電參數測量I/O口進行初始化,初始化函數如下:

按照ATT7022B芯片的寫入協議要求,在同步時鐘的作用下,從LSB到HSB按位串行輸入。當向該芯片寫入一個命令時,操作如下:

按照ATT7022B芯片的讀出協議要求,用ElePar_WriteByte(uint8 Com)向ATT7022B發送讀某一數據寄存器的命令后,ATT7022B將從HSB到LSB以串行方式向ATmega128輸出4個字節24位數據,操作如下:


向ATT7022B發送不同的命令 (一個字節的16進制形式),就可以方便地讀出各種電量參數,如要讀出A相電壓,操作如下:

函數返回的電壓、電流和功率均是16進制整數,代表實際測量得到的電壓、電流和功率的值,經過打包處理后可以上傳給控制中心,同時也在本地LCD顯示。
Zigbee采用按需路由算法 AODV,在節能和網絡性能上都有著很大的優勢。AODV路由協議是一種基于距離矢量的按需路由算法,只保持需要的路由,而不需要節點維持通信過程中未達目的節點的路由。節點僅記住下一跳,而不像源節點路由那樣記住整個路由。它能在網絡中的各移動節點之間動態地、自啟動地建立逐跳的路由。
當鏈路斷開時,AODV會通知受影響的節點,從而使這些節點能被確認為無效路由。AODV允許移動節點響應鏈路的破損情況,并以一種及時的方式更新網絡拓撲。AODV操作是無環回的,并避免了當Adhoc網絡拓撲變化時快速收斂的無限計算問題 (特別是當一個節點進入網絡時)[4]。
本文對整個系統進行了測試,系統運行界面如圖6所示。通過測試可以計算城市路燈亮燈率,進行電纜故障定位等。
本文綜合了單片機技術和無線傳感網絡技術,開發了一套基于Zigbee的城市路燈智能監控終端控制器,在解決城市路燈亮燈率計算、電纜故障定位和防盜等方面,技術先進、成本低,相關技術的適用范圍廣,具有很好的推廣應用前景。但同時Zigbee也存在不足,比如通信距離較短,應用不夠廣泛等等。

圖6 系統運行界面
[1]陳濤.照明控制與自動化系統的完美結合—智能照明控制系統的再認識 [J].照明工程學報,2003,14(3):26~32.
[2]成小良,鄧志東.基于Zigbee規范構建大規模無線傳感器網絡 [J].通信學報,2008(11):158~164.
[3]Zigbee Specification[S].Zigbee Standards Organization,2007.
[4]鄭鍇,童利標,何世杰等.一種無線傳感網絡節點硬件結構設計 [J].儀表技術與傳感器,2009(9):78~80.