国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

電視發(fā)射臺短信監(jiān)控系統(tǒng)設(shè)計

2012-06-26 09:53:14白小軍
電視技術(shù) 2012年18期
關(guān)鍵詞:發(fā)射機命令串口

白小軍,楊 軍

(西安工業(yè)大學(xué) 計算機科學(xué)與工程學(xué)院,陜西 西安 710032)

為了保證廣播電視節(jié)目的穩(wěn)定播出,需要對電視發(fā)射機的運行狀態(tài)進行監(jiān)測和控制[1]。目前,網(wǎng)絡(luò)化的遠程監(jiān)控已成為控制技術(shù)發(fā)展的一個主流方向,已有很多文獻介紹基于Web的發(fā)射臺遠程控制方案[2-5]。但有一個實際困難是:很多電視發(fā)射臺都建立在山頂,難以接入Inter?net,而人工現(xiàn)場監(jiān)控又費時費力,難以做到全天候監(jiān)控。這樣就要求有一種不依賴于Internet的便捷監(jiān)控手段。

短消息服務(wù)(Short Messaging Service,SMS)作為移動網(wǎng)絡(luò)的一項基本業(yè)務(wù),以其實現(xiàn)簡單、成本低廉、可靠性高等優(yōu)勢,在各行各業(yè)得到了廣泛的應(yīng)用[6-7]。目前,工業(yè)領(lǐng)域中的很多數(shù)據(jù)采集及遠程維護系統(tǒng)都用到了短消息服務(wù)。

將短消息服務(wù)引入發(fā)射臺遠程集中監(jiān)控系統(tǒng),可以將發(fā)射機的運行狀態(tài)以短信的形式發(fā)送給管理人員,也可以接收管理人員發(fā)來的短信命令以控制發(fā)射機執(zhí)行指定的動作,從而實現(xiàn)完整的控制與反饋,真正做到“無人值守,24小時監(jiān)控”。

1 系統(tǒng)總體結(jié)構(gòu)

傳統(tǒng)的控制設(shè)備一般都通過串口(RS-232和RS-485)與上位機通信,數(shù)據(jù)傳輸距離很短,難以實現(xiàn)遠程控制。借助近些年出現(xiàn)的設(shè)備服務(wù)器技術(shù),可以方便地將串口設(shè)備接入網(wǎng)絡(luò),從而為網(wǎng)絡(luò)化監(jiān)控創(chuàng)造了條件。

現(xiàn)代的電視發(fā)射機多配有控制器,可以采集各部件的運行參數(shù)并控制其動作??刂破饕话愣碱A(yù)留串口,并內(nèi)置了應(yīng)用層通信協(xié)議。上位機只要按協(xié)議格式向串口發(fā)送特定的消息,控制器就可以識別并執(zhí)行相應(yīng)的動作。借助一臺設(shè)備服務(wù)器,就可以將一臺發(fā)射機接入網(wǎng)絡(luò)。

短信收發(fā)設(shè)備又稱GSM Model(短信貓),也設(shè)計有串口與上位機通信,可以使用AT指令來控制短信收發(fā)。同理,借助設(shè)備服務(wù)器,也可以將短信收發(fā)設(shè)備接入網(wǎng)絡(luò),從而與控制設(shè)備并網(wǎng),如圖1所示。從圖1中可以看出,一組控制設(shè)備最終通過短信收發(fā)設(shè)備接入了GSM網(wǎng)絡(luò),為短信集中監(jiān)控創(chuàng)造了條件。

圖1 電視發(fā)射臺短信控制系統(tǒng)總體結(jié)構(gòu)

2 軟件體系結(jié)構(gòu)

設(shè)備服務(wù)器一般有兩種工作模式:一是透明傳輸模式,即串口數(shù)據(jù)不作任何處理打包成網(wǎng)絡(luò)數(shù)據(jù)(一般使用TCP或UDP包),而網(wǎng)絡(luò)數(shù)據(jù)也在解包后不作任何處理發(fā)往串口;二是網(wǎng)關(guān)模式,即在設(shè)備服務(wù)器上編程,實現(xiàn)定制的處理功能。顯然,第二種模式提供了更大的靈活性,可以滿足本系統(tǒng)的設(shè)計要求。

本系統(tǒng)選擇美國Lantronix公司的UDS1100設(shè)備服務(wù)器,設(shè)備代理及短信服務(wù)器軟件都運行在該平臺上。該平臺內(nèi)置有精簡的多任務(wù)操作系統(tǒng),使用時間片輪轉(zhuǎn)的方式進行并發(fā)處理;支持RS-232及RS-485接口,也支持TCP/IP協(xié)議棧中的常用協(xié)議;在此基礎(chǔ)上,提供了應(yīng)用程序開發(fā)工具包,即一系列C語言的API,可以編程訪問串口和網(wǎng)絡(luò)接口。本系統(tǒng)中的串口通信采用RS-232協(xié)議,網(wǎng)絡(luò)消息收發(fā)則采用UDP協(xié)議。

設(shè)備服務(wù)器上的軟件結(jié)構(gòu)如圖2所示。上層的應(yīng)用軟件主要分為3個模塊:串口通信模塊、網(wǎng)絡(luò)通信模塊和主控模塊。前兩個模塊封裝了串口和網(wǎng)絡(luò)通信數(shù)據(jù)收發(fā)的常用函數(shù),以方便主控程序調(diào)用;主控程序作為系統(tǒng)的主進程,實現(xiàn)核心處理功能。

圖2 設(shè)備服務(wù)器上的軟件體系結(jié)構(gòu)

從總體上看,本系統(tǒng)采用了“管理者—代理”的體系結(jié)構(gòu)。靠近發(fā)射機的設(shè)備服務(wù)器充當代理的角色,它要維護發(fā)射機的運行狀態(tài)數(shù)據(jù)以便管理者查詢,當管理者發(fā)來控制命令時,它還要控制發(fā)射機執(zhí)行指定的動作。而靠近短信收發(fā)器的設(shè)備服務(wù)器則充當了管理者的角色,管理所有的代理,并為手機用戶提供服務(wù)。

3 設(shè)備代理的設(shè)計

設(shè)備代理是系統(tǒng)設(shè)計的關(guān)鍵,其主要功能體現(xiàn)在4個方面:1)定期采集并維護設(shè)備的運行狀態(tài)數(shù)據(jù);2)處理管理者發(fā)來的查詢請求,返回請求數(shù)據(jù);3)處理管理者發(fā)來的命令請求,控制設(shè)備執(zhí)行指定的動作;4)當設(shè)備的關(guān)鍵信息項發(fā)生變化時,主動通知管理者。

針對電視發(fā)射機的管理要求,需要定制管理信息結(jié)構(gòu),以維護設(shè)備的運行數(shù)據(jù),所以定義了如下的數(shù)據(jù)結(jié)構(gòu):

在串口一側(cè),為采集設(shè)備數(shù)據(jù)或控制設(shè)備動作,需要通過串口向控制器發(fā)送特定的消息,并接收反饋,所以設(shè)計如下的串口通信組件:

在網(wǎng)絡(luò)一側(cè),要接收管理者發(fā)送的查詢或命令請求,并將設(shè)備狀態(tài)或告警信息發(fā)送給管理者,所以設(shè)計了如下的UDP通信組件:

主控程序的運行流程如圖3所示。在系統(tǒng)初始化完成后,就進入一個永真循環(huán),保證程序一直運行而不退出。循環(huán)內(nèi)部有兩個代碼塊,分別負責(zé)串口通信異常和正常兩種情況下的數(shù)據(jù)處理。代理首先通過串口向發(fā)射機發(fā)送查詢配置信息的命令,若正常返回結(jié)果,則說明設(shè)備連接正常;否則,進入異常處理流程,向短信服務(wù)器發(fā)送設(shè)備離線消息(短信服務(wù)器會將該消息通過GSM Mod?el發(fā)送到管理員手機上),并繼續(xù)測試串口,直到通信正常。在正確獲取發(fā)射機配置信息的前提下,程序?qū)⑦M入正常處理的循環(huán),按順序執(zhí)行兩項處理:一是通過串口采集設(shè)備的運行數(shù)據(jù),更新內(nèi)存中維護的數(shù)據(jù)集,若發(fā)現(xiàn)設(shè)備的運行狀態(tài)發(fā)生變化,則發(fā)送告警消息;二是檢測有沒有收到新的短信命令,若有,則處理該命令(對于查詢指令,直接向短信服務(wù)器發(fā)送狀態(tài)數(shù)據(jù)包;而對于控制指令,則通過串口向設(shè)備發(fā)送控制消息)。

4 短信服務(wù)器的設(shè)計

短信服務(wù)器的主要功能體現(xiàn)在3個方面:1)后臺維護。集中管理所有設(shè)備信息,維護其代理地址、管理員手機號及操作密碼等;2)命令處理。接收管理手機發(fā)送的短信命令,轉(zhuǎn)化成UDP消息發(fā)往指定的代理;3)消息處理。接收代理發(fā)送的告警消息和狀態(tài)消息,轉(zhuǎn)化為短信發(fā)送到指定的手機上。

圖3 設(shè)備代理上的主控程序流程

為同時監(jiān)控多臺發(fā)射機,需要為每臺設(shè)備指定一個設(shè)備號、設(shè)備名稱和代理地址;為實現(xiàn)系統(tǒng)的訪問控制,需要設(shè)置一組管理手機號碼,并為每個號碼分別設(shè)置查詢密碼和操作密碼。顯然,這些信息需要長期存儲,所以保存在UDS1100內(nèi)置的Flash存儲器中,當短信服務(wù)器啟動時,自動將這些信息讀入內(nèi)存以便主控進程訪問。為方便維護這些管理信息,可以在UDS1100上進行CGI編程,提供Web接口進行操作[4-5]。

短信服務(wù)器上的主控程序流程如圖4所示。系統(tǒng)初始化完成后就進入主控循環(huán),不斷處理來自設(shè)備代理的UDP消息以及來自GSM Model的短消息。當檢測到UDP消息到來時,根據(jù)該代理的IP地址檢索其連接的發(fā)射機名稱及管理員手機號,并根據(jù)消息體構(gòu)造短信內(nèi)容,通過GSM Model發(fā)送短信到該手機。當檢測到短信命令到來時,首先要從消息體中獲取手機號及操作密碼進行驗證,以確保操作的合法性;然后再解析短信內(nèi)容得到目標主機的代碼及控制命令;最后根據(jù)主機代碼查到該代理的IP地址,并向其發(fā)送UDP消息。

圖4 短信服務(wù)器上的主控程序流程

該模塊設(shè)計的一個難點是解決串口爭用問題:在網(wǎng)絡(luò)一側(cè),一個短信服務(wù)器可以連接多個設(shè)備代理,但在串口上,它只能連接一個短信收發(fā)器,這就存在爭用串口的可能;另外,Model發(fā)送一條短信的時延很長,通常都在10 s以上,這就意味著,當短時間內(nèi)有多條UDP消息到來時,串口將來不及處理,很容易造成消息丟失。使用消息隊列可以有效解決該問題。消息隊列是一塊內(nèi)存緩沖區(qū),用以對UDP消息進行排隊處理。該隊列設(shè)有兩個指針,分別指向隊頭和隊尾;當一個UDP消息到來時,自動被壓入隊尾;而在主控程序中,每輪循環(huán)都要檢測隊列頭指針,若有新消息,并且串口狀態(tài)為就緒,則處理該消息,否則跳過該步驟,等待下一輪循環(huán)處理。

5 應(yīng)用層通信規(guī)約

從圖1可以看出,本系統(tǒng)中有發(fā)射機、作為發(fā)射機代理的設(shè)備服務(wù)器、作為短信代理的設(shè)備服務(wù)器、短信收發(fā)設(shè)備及用戶手機等多種部件,各部件之間密切配合,需要制定一系列的通信規(guī)約。

1)設(shè)備服務(wù)器和發(fā)射機之間的串口通信規(guī)約

發(fā)射機的控制器和設(shè)備服務(wù)器之間使用RS-232通信,其消息結(jié)構(gòu)如表1。

表1 發(fā)射機控制器與設(shè)備服務(wù)器之間的串口通信消息結(jié)構(gòu)

表1中STX和ETX分別代表起始位和結(jié)束位;KEY表示消息類別,例如0x80代表上位機發(fā)往下位機的控制命令,0x81代表下位機向上位機返回的數(shù)據(jù)等;LENGTH表示消息正文的長度;MESSAGE為消息正文內(nèi)容,包含控制命令以及反饋數(shù)據(jù)等;BCC為校驗碼,用于驗證消息的完整性。

在消息正文中,又定義了一系列的控制命令,例如TXC:CFG命令用于獲取發(fā)射機的配置信息,TXC:QRY命令用于獲取發(fā)射機的運行狀態(tài)信息,TXC:CNTTX0代表關(guān)機命令,TXC:CNTTX1代表開機命令。

2)短信服務(wù)器和短信收發(fā)器之間的串口通信規(guī)約

GSM Model通過串口連接到短信服務(wù)器,標準的Model都可以使用AT指令來進行控制。由于AT指令涉及到通信的細節(jié)和交互過程,編程不夠方便,所以本系統(tǒng)選用的GSM Model又對AT指令做了一層封裝,使用約定好的文本消息結(jié)構(gòu)收發(fā)短信。

發(fā)送短信的串口消息格式為“%SSMS”+“字符編碼方式”+“手機號”+“短信內(nèi)容”。

其中:%SSMS為消息起始標記;字符編碼方式為一個數(shù)字字符,0代表本短信內(nèi)容采用UTF編碼,1代表采用ASCII編碼;手機號為目標手機的號碼。

例如,短信服務(wù)器向串口發(fā)送消息“%SSMS0,18999999999,TX01串口通信中斷”,表示向手機號為18999999999的用戶發(fā)送“TX01串口通信中斷”的短信。

短信服務(wù)器接收的串口消息格式為“$SMS”+“手機號碼”+“字符編碼方式”+“內(nèi)容長度”+“短信內(nèi)容”。

例 如 ,收 到“ $SMS+8618999999999,ASC,14,TX01#ON#123456”串口消息,表示號碼為18999999999的手機發(fā)來一條短信,要求控制代號TX01的發(fā)射機執(zhí)行開機指令,在短信內(nèi)容中還附有該用戶的操作密碼,為“123456”。

3)設(shè)備代理和短信服務(wù)器之間的UDP通信規(guī)約

設(shè)備代理和短信服務(wù)器之間使用UDP Socket通信。

從設(shè)備代理到短信服務(wù)器要發(fā)送3種消息,分別是設(shè)備運行狀態(tài)信息、設(shè)備告警信息、串口通信狀態(tài)信息。這里使用3個字母代表消息類別,一串數(shù)字字符代表消息內(nèi)容。例如COM0代表串口通信中斷、COM1代表串口通信恢復(fù);又如ALM0100102代表一條設(shè)備告警信息,ALM后面的每位數(shù)字分別代表發(fā)射機一個關(guān)鍵部件的告警狀態(tài),0表示正常,1表示告警,2表示重大告警。設(shè)備代理將消息代碼傳遞給短信服務(wù)器,后者再將代碼轉(zhuǎn)換為文字內(nèi)容發(fā)送給管理手機。

短信服務(wù)器發(fā)給設(shè)備代理的消息主要有兩種,一是查詢命令,二是控制命令,都使用簡寫的命令字表示。例如QRY表示查詢設(shè)備當前工作參數(shù),ON表示開機,OFF表示關(guān)機等。

4)用戶手機到短信收發(fā)器之間的短信格式規(guī)約

管理人員可以通過手機發(fā)送短信命令,格式為“Pass?word1”+“#”+發(fā)射機編碼+“#”+命令字+“#”+“Password2”。

其中Password1為GSM Model的驗證口令;Password2為用戶的操作口令;發(fā)射機編碼代表了不同的發(fā)射機;命令字代表本次要執(zhí)行的命令。GSM Model收到短信后,首先驗證Password1是否合法,若驗證通過,則將后面的內(nèi)容打包后通過串口發(fā)送給短信服務(wù)器,否則丟棄該短信。在短信中使用“#”分隔命令參數(shù),以便于短信服務(wù)器切分各參數(shù)。例如,發(fā)送短信“123456#TX01#QRY#654321”表示向TX01發(fā)射機發(fā)送一條查詢指令,短信貓的驗證口令為“123456”,該手機用戶的操作口令為“654321”。

6 結(jié)論

本文將短消息服務(wù)引入遠程監(jiān)控領(lǐng)域,徹底解決了偏遠環(huán)境中的數(shù)據(jù)采集和遠程控制問題;在對時延要求不太嚴格的應(yīng)用背景下,提出了一種非常廉價的遠程監(jiān)控方案。實際運行結(jié)果表明:在GSM信號能夠覆蓋到的范圍,該系統(tǒng)都能夠穩(wěn)定、高效的運行。

[1]吳升恒.廣播電視發(fā)射中心綜合監(jiān)控與管理系統(tǒng)的設(shè)計與實現(xiàn)[D].廈門:廈門大學(xué)軟件學(xué)院,2009.

[2]劉行兵,牟占生,孫斌.電視發(fā)射臺遠程監(jiān)控系統(tǒng)的實現(xiàn)[J].電視技術(shù),2008,32(11):70-71.

[3]周春來,趙成安,孫芳.基于嵌入式Web的發(fā)射機遠程監(jiān)控系統(tǒng)[J].控制工程,2008(5):605-609.

[4]白小軍,羅鈞旻.基于WEB的發(fā)射機遠程控制系統(tǒng)設(shè)計[J].通信技術(shù),2008(9):59-61.

[5]蘇振濤,羅鈞旻,白小軍.基于設(shè)備服務(wù)器的電視發(fā)射機遠程監(jiān)控系統(tǒng)[J].計算機測量與控制,2009,17(10):1883-1886.

[6]葛永明,程文鋒,饒琨.基于SMS通用型遠程無線監(jiān)控系統(tǒng)的實現(xiàn)[J].計算機測量與控制,2009,17(5):869-871.

[7]于立娟,于海業(yè),張志平.基于 GSM的遠程環(huán)境監(jiān)控系統(tǒng)[J].儀表技術(shù)與傳感器,2007(3):69-70.

猜你喜歡
發(fā)射機命令串口
只聽主人的命令
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
3DX系列發(fā)射機與DX系列發(fā)射機的比較——以3DX-50和DX-100為例
電子制作(2018年9期)2018-08-04 03:31:04
3DX-50發(fā)射機與PC之間通信的實現(xiàn)
電子制作(2018年12期)2018-08-01 00:48:02
移防命令下達后
USB接口的多串口數(shù)據(jù)并行接收方法探索
這是人民的命令
調(diào)頻發(fā)射機技術(shù)改造
BGTB5141型100kW發(fā)射機調(diào)諧控制系統(tǒng)
基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
地礦測繪(2015年3期)2015-12-22 06:27:26
志丹县| 肃南| 建湖县| 大理市| 北川| 宁明县| 望都县| 兴安县| 公主岭市| 林口县| 元江| 泗水县| 靖边县| 南平市| 田东县| 康乐县| 墨玉县| 谢通门县| 乌鲁木齐县| 漯河市| 宁阳县| 颍上县| 翁源县| 四会市| 昭平县| 德安县| 白沙| 崇阳县| 肥乡县| 柳江县| 广丰县| 阳高县| 乌苏市| 南陵县| 稻城县| 巴林右旗| 麻栗坡县| 通辽市| 扎赉特旗| 宁阳县| 新安县|