引言
路燈和景觀燈是城市夜晚一道亮麗的風景線,也是城市中必需的公用照明設施。城市照明監控系統是一種監測與控制的集成系統。一套高效的城市照明監控系統可以節省大量的人力物力。但目前,我國城市照明監控技術還比較落后,存在很多問題。主要表現在目前的城市照明燈光大多采用分散手控和時控的方式,即在路燈配電箱中安裝定時器,按預定的時間自行開/關燈,當季節變化時需要人工干預來調整開關時間;而有些景觀燈開關通常是人工手動控制方法,即根據開關燈時間表由值班人員手動進行開、關燈操作。現行的城市照明監控系統既不能及時調整開/關燈的時間,又無法及時反映照明設施的運行情況,并且故障率高、維修困難[1]。
基于ZigBee的城市照明監控系統可以很好地解決這些問題,它采用了GPRS[2]和ZigBee[3]技術,不但可以采用電感降功率和電子整流器無級變功率等方法來節省路燈的用電量,還可以實時檢測并控制照明設施狀態。本文主要闡述照明監控系統中網關[45]節點的軟硬件設計方案。
1 照明監控系統架構
基于ZigBee技術的城市照明監控系統采用“監控中心—網關節點—單燈測控節點”的三層結構,通過GPRS的技術將監控中心的城市照明控制系統軟件和網關節點聯系起來,而網關節點又通過ZigBee路燈網絡將路燈的數據信息發送到相關的路燈節點。城市照明監控系統的架構如圖1所示。
圖1 城市照明監控系統架構
圖1中的路燈節點1至N通過網絡協議實現了路燈通信的網絡結構,每個網關節點作為該條道路的主控節點。通過GPRS通信技術和ZigBee技術的結合,可以將路燈的狀態信息發送到中心服務器,并存入數據庫中。監控中心通過對服務器的數據庫進行操作就可以實現對路燈狀態的監測和控制。
2 網關節點硬件設計
2.1 網關節點硬件架構
本設計的網關節點主要由主控芯片MCF52223、GPRS通信模塊、宏電H7710 DTU、ZigBee通信模塊MC13213[6]、EEPROM模塊AT24C256、液晶顯示模塊、按鍵以及應用程序等組成。網關節點的體系結構如圖2所示。
圖2 網關節點體系結構
2.2 主控芯片
主控芯片采用了Freescale公司生產的Codefire系列32位單片機MCF52223。該芯片不僅擁有UART、I2C、SPI、USB接口,還有A/D轉換接口、定時器接口等。它具有穩定性好、可靠性高、接口豐富等優點,可大大簡化外圍硬件電路設計,降低設計成本與復雜度。它主要用來采集和處理從路燈節點上傳的狀態信息,并通過接收監控中心發送的監控命令對ZigBee網絡路燈節點進行監控操作。
2.3 GPRS模塊
GPRS模塊采用宏電的H7710 DTU模塊,它是基于GPRS移動通信數據通信網路的終端產品。可為用戶提供高速、永遠在線、透明數據傳輸的虛擬專用數據通信網絡。同時擁有RS232/422/485及TTL電平接口,適用于環境惡劣的各種工業監控、交通管理、氣象等應用場合,易于集成。
H7710 DTU屬智能性數據通信終端,安裝設置完成后,接入用戶數據源即可使用。正常運行時無需用戶介入,且H7710正常運行時,無需日常維護。在許多嵌入式應用環境下通常只需通過數據中心發送檢測和維護信息來確認終端是否正常運行。用戶只需將數據送入H7710 DTU的串口,或者通過串口接收H7710 DTU傳輸來的命令幀進行解析。
本設計方案中H7710 DTU通過UART1與MCF52223芯片進行通信,H7710 DTU與MCF52223的接口電路如圖3所示。MAX3232是H7710DTU的外圍電路連接芯片。其中,TXD1為MCF52223的UART1發送數據引腳,RXD1為UART1接收數據引腳,DIN為串行數據輸入端引腳。
圖3 H7710 DTU與MCF52223接口電路
2.4 ZigBee通信模塊
ZigBee通信模塊采用Freescale公司生產的2.4 GHz射頻芯片MC13213。它采用Freescale公司的低電壓、低功耗HCS08核心,并帶有嵌入式閃存、10位模/數轉換器、低壓中斷和鍵盤中斷等功能。MC13213支持專用點到點,簡單星形以及MASH網絡,采用Figure 8 Wireless Zstack的符合ZigBee標準的網絡。MC13213最小系統電路如圖4所示。
圖4 MC13213最小系統電路
為了增加ZigBee的通信距離,在已有MC13211內部集成的射頻模塊的基礎上增加了功率放大器、低噪聲放大器、射頻收發開關等IC。最終經實測,ZigBee模塊的通信距離可以達到500 m左右,完全可以滿足本設計方案中照明監控的要求。此外,ZigBee通信模塊與主控芯片MCF52223之間亦是通過串口進行通信,本設計方案中采用的是MCF52223的UART0。
2.5 EEPROM模塊
AT24C256是Atmel公司生產的256 Kb串行電可擦的可編程只讀存儲器。它采用8引腳雙排式封裝,具有結構緊湊、存儲容量大等特點,特別適用于具有大容量數據存儲要求的數據采集系統。本設計方案中需要存儲大量的單燈節點上傳的路燈狀態信息,需要通過I2C總線與AT24C256進行通信,將路燈狀態信息存儲于其中。
2.6 液晶屏顯示模塊
液晶屏采用帶中文字庫的LCD12864液晶顯示屏,它包括4位/8位并行、2線或3線串行的多種接口方式,內部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊。其顯示分辨率為128×64,內置8 192個16×16點漢字和128個16×8點ASCII字符集。利用該模塊靈活的接口方式和簡單、方便的操作指令,可構成全中文人機交互圖形界面。可以顯示8×4行16×16點陣的漢字,也可完成圖形顯示,工作時低電壓低功耗。由該模塊構成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結構或顯示程序都要簡潔得多。
圖5 液晶顯示主控界面
本設計方案液晶顯示的主控界面如圖5所示。可使用上下鍵選擇菜單,使用OK鍵確認。
3 網關節點軟件設計
3.1 基本任務實現
MCF52223主要實現接收ZigBee無線傳感網絡主控節點傳輸的數據,然后通過GPRS發送到中心服務器。同時對于中心服務器發送的一些控制命令進行處理,并通過串口傳輸到無線傳感網絡主控節點中。此外還包括一些LCD顯示、按鍵、I2C總線的操作。MCF52223主控程序流程如圖6所示。
3.2 μC/OSII系統移植
μC/OSII作為一個源代碼公開的操作系統,在具體應用中穩定可靠,可擴展性強,功能強大,并且支持uIP、 TCP/IP協議棧、μC/GUI等。μC/OSII內核屬于搶占式,最多可以處理64個任務,每個任務相對獨立,都有超時函數,時間用完后交出MCU使用權。μC/OSII系統架構如圖7所示。
為了使所設計的網關程序實時性更強、運行穩定性更高、擴展性更強,將μC/OSII操作系統移植到MCF52223上。其移植步驟如下:
① 設置與處理器及編譯器相關的代碼(OS_CPU.H)。OS_CPU.H包括了用#define定義的與處理器相關的常量、宏和類型定義。不同的編譯器會使用不同的字節長度來表示同一數據類型,所以要定義一系列數據類型以確保移植的正確性。
② 處理器相關部分匯編實現OS_CPU_A.ASM函數的修改。要求用戶編寫4個匯編語言函數:OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()、OSTickISR()。
③ 用C語言實現與處理器任務相關的函數OS_CPU_C.C。μC/OS_II的移植要求用戶編寫6個簡單的C函數:OSTaskStkInit()、OSTaskCreateHook()、OSTaskDelHook()、OSTaskSwHook()、OSTaskStatHook()、OSTimeTickHook()。
圖6 MCF52223主控程序流程
圖7 μC/OSII系統架構
當μC/OSII系統移植完成后,添加網關節點實現的基本任務,包括網關與GPRS模塊通信任務;網關與ZigBee模塊通信任務;液晶屏顯示任務;按鍵任務;I2C總線存儲任務。
結語
在蘇州科技園的某條道路上對20個景觀燈安裝了單燈測控節點,組成單燈ZigBee無線傳感器網絡,而后在道路電控柜中安裝了所設計的網關,最后通過監控中心的上位機軟件進行了測試。經實際運行,該系統可以很好地達到預期的效果,該網關方案較好地解決了ZigBee無線傳感器網絡與監控中心之間的數據傳輸問題。此外,雖然該網關設計方案是以照明監控系統為依托的,但為類似的無線傳感器網絡的網關設計提供了很好的參考,具有較高的實際應用價值。