摘要: 本文描述了一種基于GPRS通信方式的路燈監(jiān)控器設計。
關鍵詞: GPRS;路燈監(jiān)控
引言
隨著城市夜景照明設施的迅猛發(fā)展和人們生活品味的提高,對于城市的燈光設施建設提出了更高的要求。道路照明路燈,裝飾彩燈、燈光噴泉、彩燈草坪、大廈射燈等各種各樣的特色燈光構成了美麗的城市燈光夜景系統(tǒng)。但是,在這些美麗的燈光后面,我們的路燈管理部門擔負著沉重的燈光設備維護管理工作。隨著亮化工程腳步的進一步加快,這種沉重的負擔已經(jīng)成為困擾路燈管理部門的難題。
為了解決這個難題,提出了開發(fā)路燈監(jiān)控管理系統(tǒng),用于管理城市照明,目的是利用現(xiàn)代計算機技術,通訊技術對日益快速發(fā)展的城市道路照明路燈實現(xiàn)自動化監(jiān)控和智能化的科學管理,進一步提高道路照明質(zhì)量,從而提高服務質(zhì)量;進一步提高維護、檢修效率,從而保證城市整體亮燈率和設備完好率;進一步降低能耗、減輕勞動強度,從而避免無畏的電能和人力物力的浪費。
路燈監(jiān)控管理信息系統(tǒng)
路燈監(jiān)控管理信息系統(tǒng)是由通信服務器和若干路燈監(jiān)控器組成,如圖1所示。
圖1 路燈監(jiān)控管理信息系統(tǒng)
通信服務器通過局域網(wǎng)可以連接多個查詢終端,通信服務器和若干路燈監(jiān)控器采用ADSL與GPRS通訊方式。使用者可以在通信服務器上完成對整個城市內(nèi)任一區(qū)域、任一路燈監(jiān)控器的控制;可隨時向路燈監(jiān)控器發(fā)出查詢指令,對各路燈監(jiān)控器的運行狀態(tài)、電流、電壓、門開狀態(tài)等數(shù)據(jù)進行查詢。
路燈監(jiān)控器硬件設計
路燈監(jiān)控器在硬件電路設計上,根據(jù)其功能劃分,由六部分組成(見圖2)。
圖2 路燈監(jiān)控器功能結構圖
電路圖如圖3所示。
圖3 路燈監(jiān)控器電路
時鐘存儲單元
時鐘芯片選擇了高精度實時時鐘芯片-SD2000BPI 。該芯片具有內(nèi)置晶振、I2C總線接口、定時中斷輸出 、高精度、免調(diào)校的特點。同時該時鐘芯片內(nèi)部含有EEPROM,用于存儲開關燈時間表等信息:
每組開/關燈時間包括2個字節(jié),每個字節(jié)由2位BCD碼組成,由高到低分別為時、分。
每組報警時間包括4個字節(jié),每個字節(jié)由2位BCD碼組成,由高到低分別為年、月、日、時、分、秒。默認值為00H。
路燈監(jiān)控器編號2個字節(jié),可以表示00~65536數(shù)值。
路燈監(jiān)控器的工作狀態(tài)包括:報警狀態(tài)(ZT0)、門開狀態(tài)(ZT1)、手動/三遙狀態(tài)(ZT2)、全夜燈狀態(tài)(ZT3)、半夜燈狀態(tài)(ZT4)、景觀燈狀態(tài)(ZT5)。用連續(xù)的7個字節(jié)表示。
監(jiān)控器可以監(jiān)測9路工作電流,利用二個存儲單元的9個存儲位,分別存儲被監(jiān)測的電流的監(jiān)測狀態(tài)。
電壓電流采集
電壓及電流采集部分采用山東力創(chuàng)的EDA9016模擬量測量模塊,它可以采集12路電壓輸入信號,測量信號的輸入范圍0~10V,測量精度0.2級,其輸出采用RS-485總線。
將欲監(jiān)測的電壓、電流通過電壓互感器、電流互感器感應出0~10V的電壓,輸出給EDA9016的模擬量輸入端,EDA9016通過RS-485總線與監(jiān)控器的單片機連接,路燈監(jiān)控器可以按照EDA9016的通訊協(xié)議,采集各路的電壓及電流,通過通訊服務器的查詢命令發(fā)送給客戶端軟件,實現(xiàn)路燈工作參數(shù)的自動監(jiān)測,對電壓欠壓、電壓過壓、欠流、過流及時作出報警。
串口擴展
由于CPU采用PHILIPS的P89C51RD+芯片,該CPU只有一個串口,在本設計中用于同GPRS模塊通信。而多功能表和EDA9033均采用RS-485接口,所以要利用CPU普通IO口模擬SPI接口與MAX3100通信,MAX3100的串口再和MAX485相連,從而產(chǎn)生EDA9033和多功能電表需要的RS-485接口。
GPRS模塊
GPRS??焯峁㏑S-232接口與外界通信,透明傳輸模式,應用十分方便。在本設計中采用一片MAX232芯片,通過CPU和GPRS模塊進行通信。
控制執(zhí)行單元
控制執(zhí)行部分采用三級管驅(qū)動繼電器,繼電器控制交流接觸器的辦法。在三級管和CPU IO口之間采用光耦隔離,防止繼電器吸合對系統(tǒng)產(chǎn)生的干擾。
其他設計
由于路燈監(jiān)控器工作在無人職守的地方,為了路燈監(jiān)控器的安全防盜,設計時在路燈監(jiān)控器的門上,安裝了磁控開關,當門開時開關斷開,路燈監(jiān)控器判斷這個開關的狀態(tài),當門開時,路燈監(jiān)控器路燈監(jiān)控器先將報警類型、報警時間存儲在路燈監(jiān)控器的存儲器內(nèi),然后通過GPRS無線通訊終端將門開信息發(fā)送給通訊服務器,通訊服務器在轉發(fā)給客戶端,以便及時通知檢修人員對門開進行處理。
路燈監(jiān)控器軟件設計
本系統(tǒng)軟件采用keil C作為開發(fā)工具。除CPU程序外,還要開發(fā)一個對時鐘芯片進行時間預置的程序,以便于批量生產(chǎn)。
路燈監(jiān)控器的工作流程如下:首先進入上電初始化程序,對路燈監(jiān)控器的狀態(tài)進行初始化,包括全夜燈、半夜燈狀態(tài)、手動三遙狀態(tài)、報警狀態(tài)等變量進行初始化。然后初始化MAX3100和時鐘芯片,讀取設備的編號,初始化串口,讀取當前的電壓電流,然后進入主循環(huán)程序。
系統(tǒng)采用中斷方式接收GPRS串口數(shù)據(jù),根據(jù)通信協(xié)議規(guī)定的數(shù)據(jù)格式判斷接收的數(shù)據(jù)是否正確,并能在規(guī)定的時間內(nèi)接收不到數(shù)據(jù)后自動返回主程序,串口中斷子程序為:
while ((RI==0)&&(xj<5000))
{ Wdi=~Wdi; xj++; }
if((xj>=5000)||(SBUF!=Device_Codeh))
{ RI=0;return; } //B1!=Device_Codel
else
{ xj=0; RI=0; }
一幀數(shù)據(jù)接收完畢后,給串口中斷標志置位,然后在主程序中判斷傳口中斷標志,如果該標志被置位,則開始判斷控制位,并進入相應的子程序,如設置開關燈時間,查詢工作參數(shù),查詢工作狀態(tài),實時開燈,實時關燈等,在執(zhí)行完相應的子程序后將中斷標志復位。
控制位判斷程序為:
if (sflag)
{
IE=0x00;
switch (Gprs_Data[0])
{
case 0x01: /*實時開燈*/
{ res1(); }break;
case 0x02:
{ res2();}break;
。。。
case 0x0c:
{ resc(); }break;
default: {erro_report();} break;
}
sflag=0;
}
在主循環(huán)中同時執(zhí)行自動開關燈的處理和門開報警的判斷。
為了實現(xiàn)路燈監(jiān)控器與通訊服務器的可靠通訊,制定合理的通訊協(xié)議,具有非常重要的意義。在制定協(xié)議時,充分考慮協(xié)議的格式,使之規(guī)范化,使之具有良好的擴展性,規(guī)定好協(xié)議的起始標志、設備的編號、設備類型、控制碼、控制類型、數(shù)據(jù)長度、數(shù)據(jù)域、結束標志及如何進行校驗等,達到預期的功能,又最精簡。
現(xiàn)舉例如下:
實時開燈幀(C = 01H)
功能:通信服務器請求路燈監(jiān)控器立即開燈。
幀格式:
F (回應標志):默認值;
C (控制碼): 01H;
CT (控制類型): 01H表示全夜燈負載, 02H表示半夜燈負載,03H表示景觀燈負載, 04H表示全夜燈和半夜燈負載,05H全夜燈和景觀燈負載, 06H半夜燈和景觀燈負載,
FFH表示所有路燈負載;
I (后續(xù)幀標志):默認值;
L (數(shù)據(jù)長度): L=00H;
D (數(shù)據(jù)域): 無數(shù)據(jù)域;
結語
本系統(tǒng)采用51單片機作為主CPU,成本低,實時性高,已經(jīng)完成樣機試制,通過相關測試,并投入小批量生產(chǎn)。本產(chǎn)品已經(jīng)應用于城市路燈監(jiān)控系統(tǒng),運行穩(wěn)定,取得了良好的社會效益和經(jīng)濟效益。
參考文獻:
1. 馬忠梅,單片機C語言Windows環(huán)境編程寶典,北京航空航天大學出版社,2004年4月
2. 張毅剛,新編MCS-51單片機應用設計,哈爾濱工業(yè)大學出版社,2004年11月