文丨李 頓 呂 航
采用GSM網(wǎng)絡(luò)遠(yuǎn)程對廣播電視無線發(fā)射系統(tǒng)進(jìn)行管控的應(yīng)用
文丨李 頓 呂 航
數(shù)字蜂窩移動通信技術(shù)GSM(Global System for Mobilecommunication)已經(jīng)成熟而得到廣泛的應(yīng)用。短消息服務(wù)是G S M網(wǎng)絡(luò)的一項重要業(yè)務(wù),采用G S M網(wǎng)絡(luò)的短消息服務(wù)功能,使用計算機(jī)技術(shù)和A R M管理技術(shù)實現(xiàn)對廣播電視無線發(fā)射系統(tǒng)遠(yuǎn)程管控,它能方便的為技術(shù)人員提供播出設(shè)備的工作狀態(tài),并根據(jù)管理需要進(jìn)行遠(yuǎn)程控制廣播電視無線發(fā)射有關(guān)設(shè)備的運行。
G S M; 遠(yuǎn)程管控; 數(shù)據(jù)采集; A R M管理
如圖1所示,本系統(tǒng)中硬件主要有MCU、GSM模塊、數(shù)據(jù)采集、顯示、鍵盤、和存儲等組成。MCU采用AVR mega16。mega16是一款高性能、低功耗8位微處理器,1K片內(nèi)SRAM完全可以接收容納一條短信內(nèi)容。它的8路10位ADC可以完成發(fā)射機(jī)的電壓、電流、入射功率、反射功率等模數(shù)轉(zhuǎn)換。同時MCU還來完成顯示、鍵盤掃描、異常報警、信息的發(fā)送與接收、信息存儲、信息解析、以及控制開關(guān)。
圖1 系統(tǒng)組成
根據(jù)需要,我們要采集的數(shù)據(jù)包括機(jī)房內(nèi)的溫度,發(fā)射機(jī)的工作電壓及發(fā)射機(jī)的入射功率和反射功率,MCU不斷的檢測這些參數(shù),當(dāng)某項參數(shù)出現(xiàn)異常后,MCU將發(fā)出報警聲并發(fā)出設(shè)備的報警信息,并將錯誤信息發(fā)送到指定的GSM手機(jī)終端上。
同時還可以根據(jù)我們的需要發(fā)送命令信息來了解機(jī)房內(nèi)設(shè)備的工作情況,命令信息分為查詢命令和控制命令。當(dāng)我們用手機(jī)發(fā)送查詢命令到本系統(tǒng)后,MCU將解析出是什么查詢命令(如“CHDY”查詢電壓), MCU將根據(jù)命令查詢機(jī)房相關(guān)設(shè)備的運行情況,并將查詢結(jié)果以短信息的形式發(fā)送給GSM手機(jī)終端上。如果我們發(fā)送到系統(tǒng)的是控制命令,MCU解析出控制命令并根據(jù)控制命令去打開或關(guān)閉相應(yīng)的設(shè)備,并將完成情況回傳給手機(jī)終端。
系統(tǒng)命令格式為:命令名:參數(shù)。命令名和參數(shù)均為英文字符,手機(jī)終端輸入命令時命令中間不能有空格。當(dāng)系統(tǒng)接收到命令并執(zhí)行完命令完后會將結(jié)果回傳給GSM手機(jī)終端,如果不是本系統(tǒng)可以識別的命令,系統(tǒng)會將錯誤信息返回給手機(jī)終端。
本系統(tǒng)是一個對外開放的系統(tǒng),系統(tǒng)安全很重要,所以本系統(tǒng)分為高級用戶、普通用戶和非法用戶。在系統(tǒng)接收到一條信息后,系統(tǒng)將發(fā)送信息者的號碼與E―PROM中保存的號碼相比較,然后分辨是什么用戶,如果是高級用戶,您就可以通過GSM手機(jī)終端設(shè)定本系統(tǒng)的狀態(tài)和工作值,如果是普通用戶,您只能查詢設(shè)備的工作情況,如果是非法用戶,本系統(tǒng)接收命令后將不做任何動作。
在本系統(tǒng)中,筆者選擇WAVECOM Q2303A GSM MODEM,這個模塊支持E-GSM/GPRS 900/1800MHz,具有符合V24協(xié)議的RS232接口,可以方便的與PC、單片機(jī)連機(jī)通訊。MODEM工作電壓范圍在3.6V,支持AT命令,適用于數(shù)據(jù)、傳真、短信息及話音的應(yīng)用,完善的功能能夠很好的完成信息發(fā)送與接收。
GSM MODEM模塊對外的通信是一個RS-232接口,因為不能直接與MCU通信,我們在GSM MODEM與MCU加入一個由MAX232組成的電平轉(zhuǎn)換電路,如圖2所示,這樣GSM MODEM就可以與MCU通信,同時這樣也方便在PC上調(diào)試GSM MODEM時,只需把GSM MODEM與PC的串口相接即可進(jìn)行調(diào)試,在PC上初次調(diào)試完成以后就可以接入MCU。
圖2 電平轉(zhuǎn)換電路
在硬件設(shè)計完成后,就要測試GSM MODEM的工作情況,這一步是為GSM MODEM接入本系統(tǒng)打好基礎(chǔ)。一般可以通過AT命令來測試GSM MODEM是否工作正常。完成這個測試的軟件有很多,也可以使用PC自帶超級終端完成測試,以下就以PC的超級終端來完成GSM MODEM的測試。
以Windwos XP操作系統(tǒng)為例,點擊“開始”→“附件”→“通訊”→“超級終端”打開超級終端,鍵入一個連接的名稱,按確定,下一步來選擇使用的COM口,并配置COM屬性時點擊“還原為默認(rèn)值”,GSM默認(rèn)波特率為9600bit/s,如果不能連接成功,可以選擇別的波特率,接下來點擊確定,連接成功以后就可以輸入AT命令。例如輸入“AT”回車,GSM MODEM就會返回“OK”。說明GSM MODEM工作基本正常,用戶可以根據(jù)自己的需要輸入AT命令設(shè)定GSM MODEM工作狀態(tài)。需要注意的是GSM MODEM的信號強度,如果信號強度不夠,GSM MODEM就不能完成信息的傳輸,輸入“AT+CSQ”回車(顯示強場),當(dāng)返回的數(shù)值為99時表示無強場,模塊不能正常工作,當(dāng)返回數(shù)值為0-31和0-7之間就可以工作。還可以輸入別的命令來測試GSM MODEM是否工作正常,具體的參考AT命令。
信息發(fā)送有兩個模式,TEXT模式和PDU模式,在EXET中,我們只可以傳送ASCII字符,不能傳送中文信息。在PDU模式中可以支持中文字符也可以支持ASCII字符,但是在信息發(fā)送接收程序中,TEXT模式要比PDU模式簡單一些,而且TEXT模式完全可以滿足系統(tǒng)要求,我們就以TEXT模式來完成信息的發(fā)送和遠(yuǎn)程報警。信息發(fā)送和接收中主要用到以下AT命令,如表1所示。
1)輸入“AT+CMGF=1”設(shè)置為TEXT模式。2)輸入“AT+CMGS=?”發(fā)送信息到(?是指目地號碼)。3)等待GSM MODEM返回“>”。4)輸入信息“www.zztv.cn”和“Ctrl+Z”(ASCII碼為0x1A)。5)GSM MODEM返回“+CMGS: 15”和“OK”說明信息發(fā)送成功。
還提到一個AT命令“AT+CNMI”。這個命令是用來設(shè)置有新信息來時GSM模塊怎樣處理信息。
0:將指示消息保留在TA的緩存區(qū),如果TA緩存區(qū)中指示信息已滿,指示信息將被緩存到其他地方或者老的指示信息被新收到的指示信息所覆蓋。
1:當(dāng)TA-TE無法連接或者處于數(shù)據(jù)狀態(tài)時,將刪除指示信息并且拒絕接收新收到的指示信息,若TA-TE正常連接并處于命令狀態(tài)時,則直接將指示信息發(fā)至TE。
2:當(dāng)TA-TE 無法連接或者處于數(shù)據(jù)狀態(tài)時,將指示消息保留在TA的緩存區(qū)中,否則將指示信息發(fā)至TE。若TA-TE 正常連接并處于命令狀態(tài)時,則直接將指示信息發(fā)至TE。
3:指示信息被直接儲存到TE。當(dāng)TA處在線數(shù)據(jù)方式下,TA-TE具體(特定)的波段內(nèi)連接被用于嵌入結(jié)果代碼和數(shù)據(jù)。
0:沒有新到達(dá)的SMS-DELIVER。
1:新到達(dá)的SMS-DELIVER被正確保存后,返回其存儲器及位置信息+CMTI:
2:新到達(dá)的SMS-DELIVER(除class2消息)直接發(fā)送至TE 端顯示。
3:class3的新SMS-DELIVER指示方式同
通以上命令我們可以設(shè)置G S M MODEM在收到信息時在什么樣的情況下通知MCU,根據(jù)需要我們在這里選擇“AT+CNMI=2,1”。當(dāng)收到新信息時,GSM MODEM就會向串口輸出一個信息,例如“+CMTI: "SM",1”。這個信息就告訴我們信息存儲在SIM的第1個位置,這時輸入“AT+CMGR=1”就能讀出SIM中第一個位置的信息。
通過以上調(diào)試完成以后G S M MODEM就可以接入MCU,MCU與GSM MODEM的通信過程與在PC調(diào)試GSM MODEM過程是一致的,不同的是通過PC的超級終端發(fā)送的命令現(xiàn)在換成了MCU。只要MCU按照以上提到幾個信息發(fā)送和接收命令即可完成信息的發(fā)送和接收。
表1 主要A T命令表
在MCU啟動過程中,首先執(zhí)行硬件的初始化,包括設(shè)置單片機(jī)的串口工作方式、波特率、變量參數(shù)和標(biāo)志位以及單片機(jī)與GSM是否連通。GSM模初始化包括關(guān)閉回顯、設(shè)置為TEXT模式。單片機(jī)運行時不斷的采集數(shù)據(jù),并分析其數(shù)據(jù)是否在正常的范圍內(nèi),如果數(shù)據(jù)出現(xiàn)異常或超過設(shè)定的值,MCU將把異常的數(shù)據(jù)發(fā)送到手機(jī)終端以供分析。如果運行過程中有信息到來,MCU將分析信息是控制命令還是查詢命令,如果是控制命令,MCU將會根據(jù)命令打開或關(guān)閉相應(yīng)的設(shè)備。如果是查詢命令,MCU將會根據(jù)命令查詢相應(yīng)的內(nèi)容并返回給手機(jī)終端。主程序流程圖,如圖3所示。
圖3 主程序流程圖
信息接收程序框圖如圖4所示,當(dāng)GSM模塊接收到一條新的信息時會向MCU串口發(fā)送信息的位置號。然后用AT+CMGR=“位置”讀出信息,讀出的信息經(jīng)過MCU解析。解析后的命令如果是查詢命令,MCU根據(jù)命令去查詢相應(yīng)的信息,如果是控制命令,MCU將根椐命令執(zhí)行相應(yīng)的功能。
信息發(fā)送程序框圖如圖5所示。在這里我們初始化發(fā)送模式為TEXT,然后發(fā)送信息目地號碼,系統(tǒng)要等待“>”,當(dāng)系統(tǒng)收到“>”后就將緩沖區(qū)中內(nèi)容傳送出去。在這里要注意,因為“>”返回的時間不定,所以設(shè)計程序要防止死循環(huán)。如果等待超時,系統(tǒng)將按照錯誤處理。
圖4 信息接收
圖4 信息發(fā)送
通過以上硬件和軟件的設(shè)計,系統(tǒng)經(jīng)過測試實現(xiàn)了廣播電視無線發(fā)射設(shè)備的遠(yuǎn)程管控,并且可以控制廣播電視無線發(fā)射設(shè)備的運行與關(guān)閉。為及時了解發(fā)射機(jī)設(shè)備的工作狀態(tài)提供數(shù)據(jù),降低維護(hù)費用。
(河南省無線發(fā)射傳輸管理中心,鄭州 450003)