劉根水+蔣健+李振威+陳煒
摘要:本文設(shè)計了一種基于MAX-lOOO視頻矩陣系統(tǒng)和嵌入式Linux系統(tǒng)的視頻矩陣控制服務(wù)器。采用樹莓派作為控制器,通過RS-232串口接收鍵盤的切換和云臺控制指令,解析該指令并轉(zhuǎn)換成視頻矩陣指令,再通過RS-232串口將指令下發(fā)給視頻矩陣,實現(xiàn)對矩陣的切換和云臺的控制。同時,設(shè)計了一個WEB服務(wù)器,可在WEB頁面上配置視頻矩陣控制服務(wù)器的參數(shù),實現(xiàn)了視頻矩陣的遠(yuǎn)程切換和云臺PTZ控制。該控制服務(wù)器具有使用方便、功能強大、可擴展、易維護(hù)、可靠性高等特點,已成功應(yīng)用到現(xiàn)場,能夠滿足大型監(jiān)控現(xiàn)場的監(jiān)控需求。
關(guān)鍵詞:視頻矩陣;控制服務(wù)器;嵌入式Linux;WEB服務(wù)器;RS-232
DOI: 10.3969/j.issn.1005-5517.2017.9.013
引言
視頻矩陣是一種能夠滿足視頻選擇和切換的設(shè)備,其首要的功能是將視頻圖像從任意一個輸入通道切換到任意一個輸出通道,使圖像能夠按需顯示。而視頻矩陣切換控制服務(wù)器則是視頻監(jiān)控系統(tǒng)的核心[1]。
本文基于嵌入式Linux系統(tǒng)[2]開發(fā)的視頻矩陣控制服務(wù)器與傳統(tǒng)單片機控制的視頻矩陣系統(tǒng)相比,具有更好的移植性和擴展性。同時,開發(fā)了基于HTTP協(xié)議的WEB控制系統(tǒng),相比于傳統(tǒng)的鍵盤按鍵控制具有更豐富的應(yīng)用場景,實現(xiàn)了網(wǎng)絡(luò)化。
1 系統(tǒng)總體結(jié)構(gòu)設(shè)計
本文采用MAX-1000視頻矩陣系統(tǒng),該系統(tǒng)是一個集視頻切換、報警處理、多媒體圖像控制、視頻和數(shù)據(jù)信息交換的多功能開放系統(tǒng)。
視頻矩陣控制系統(tǒng)由控制終端(包括鍵盤控制和WEB控制)、視頻矩陣控制服務(wù)器、MAX-1000矩陣、監(jiān)控設(shè)備和顯示設(shè)備構(gòu)成,視頻矩陣控制系統(tǒng)結(jié)構(gòu)如圖1所示。
控制終端在本地鍵盤控制的基礎(chǔ)上,增加了WEB控制,實現(xiàn)了對視頻矩陣的遠(yuǎn)程控制。鍵盤采用HEGS-5300控制鍵盤,提供6級調(diào)速和27級調(diào)速兩種云臺速度調(diào)整范圍,通過單工的RS-232串行頻道與MAX-1000系統(tǒng)控制服務(wù)器通信。鍵盤按鍵發(fā)送切換指令,鍵盤三維比例操縱桿發(fā)送云臺轉(zhuǎn)動和鏡頭變焦的指令。
矩陣控制服務(wù)器和MAX-1000矩陣之間通過RS-232協(xié)議通信,控制服務(wù)器將矩陣控制的指令發(fā)送給MAX-1000矩陣,MAX-1000矩陣的控制卡根據(jù)接收到的指令進(jìn)行輸入通道和輸出通道的切換或者進(jìn)行云臺的控制。
2 控制服務(wù)器硬件設(shè)計
控制服務(wù)器包含較復(fù)雜的控制功能以及WEB服務(wù)功能,因此沒有采用基于單片機的設(shè)計,而是采用了嵌入式的設(shè)計。主控制器選擇樹莓派,以開源的Uburitu[3]為操作系統(tǒng),選擇Python為主要編程語言。
樹莓派是一款基于ARM[4]的微型電腦主板,具備PC的基本功能。目前共發(fā)行A、B和B+三個版本,綜合來說,B+版本的功耗更低,接口也更豐富,并且對熱插拔和過流保護(hù)做了改良,因此,本系統(tǒng)選擇B+版本,其各接口示意圖如圖2所示,其性能參數(shù)如表1所示。
控制服務(wù)器通過RS-232[5]串口與其他設(shè)備通信,需要較多的RS-232串口,可在樹莓派USB口上外接兩個高速USB轉(zhuǎn)4串口模塊擴展出八個串口,并將該模塊的串口模式設(shè)置為RS-232以滿足需求。整個控制服務(wù)器采用9-36V供電,USB轉(zhuǎn)4串口模塊則由樹莓派的USB口直接供電,實現(xiàn)低功耗設(shè)計。電源模塊由EMC濾波器和DC-DC隔離電源模塊組成,DC-DC電源選擇URB2405YMD-6WR2隔離穩(wěn)壓電源模塊,其輸入為9-36V,輸出為5V,作為樹莓派的供電電源。
3 控制服務(wù)器軟件設(shè)計
視頻矩陣控制服務(wù)器主要的功能是視頻矩陣的切換和云臺的PTZ控制。
切換功能的主要流程是:根據(jù)串口參數(shù)初始化鍵盤串口和矩陣串口,開啟串口線程讀取鍵盤指令,開啟矩陣下發(fā)串口指令線程,根據(jù)鍵盤協(xié)議解析鍵盤指令,根據(jù)矩陣協(xié)議生成矩陣控制指令,下發(fā)串口指令線程下發(fā)矩陣控制指令。
PTZ控制的主要流程和切換功能的流程類似,解析鍵盤指令稍有區(qū)別。
3.1 接收并解析鍵盤指令
視頻矩陣控制服務(wù)器能夠支持多個鍵盤同時工作,多個鍵盤連到不同串口上,同時對視頻矩陣進(jìn)行控制。單個串口讀取鍵盤指令的程序流程如圖3所示。
控制服務(wù)器讀取鍵盤串口指令后,根據(jù)鍵盤協(xié)議解析每一條指令。鍵盤常用操作包括切換操作、設(shè)置(攝像頭)預(yù)置位、到達(dá)預(yù)置位、云臺PTZ控制、up到達(dá)上一攝像頭,down到達(dá)下一攝像頭。
切換指令解析流程如圖4所示,其它指令解析的流程與切換指令類似。
3.2 生成并發(fā)送矩陣控制指令
矩陣控制服務(wù)器在接收并解析鍵盤指令后,會根據(jù)MAX-1000矩陣協(xié)議把鍵盤指令轉(zhuǎn)化為矩陣指令,然后存入到相應(yīng)的串口指令隊列中,再由相應(yīng)的串口線程輪詢該串口的指令隊列并給相應(yīng)矩陣發(fā)送指令。
矩陣控制服務(wù)器與視頻矩陣之間通過RS-232協(xié)議通信,采用的7位數(shù)據(jù)位、1位停止位、奇校驗,波特率是19200或者9600。MAX-1000矩陣協(xié)議主要包括對云臺PTZ控制協(xié)議和對輸入輸出切換控制協(xié)議。矩陣指令的格式很固定,只需要根據(jù)鍵盤指令的類型修改幾個固定的參數(shù)即可生成矩陣控制指令。
矩陣控制服務(wù)器為每個串口上外設(shè)為矩陣的串口啟動了獨立的線程檢測串口的指令隊列中是否有指令,有指令就通過RS-232串口下發(fā)給視頻矩陣。利用隊列的先入先出特性,能夠保證指令的正確順序。
3.3 系統(tǒng)可靠性設(shè)計
由于控制服務(wù)器安裝環(huán)境的電磁干擾和輻射干擾比較強,需要保證控制服務(wù)器能夠穩(wěn)定可靠地工作。
在硬件電路方面,設(shè)計了相應(yīng)的保護(hù)裝置,同時將控制服務(wù)器的硬件設(shè)備安裝在密封的金屬外殼里,以屏蔽電磁干擾。endprint
在軟件方面,采用看門狗技術(shù)來實現(xiàn)控制服務(wù)器在斷電等極端條件下自動恢復(fù)的功能,保證系統(tǒng)長時間不問斷運行的穩(wěn)定性??刂破鳂漭傻腃PU帶有硬件看門狗,由內(nèi)核發(fā)送喂狗指令管理看門狗,只有在內(nèi)核異常時看門狗才會起到重啟系統(tǒng)的作用。而在實際的應(yīng)用情況下,系統(tǒng)工作異常很少由內(nèi)核異常導(dǎo)致,因此,本文在應(yīng)用程序里實現(xiàn)對看門狗的管理。在Linux系統(tǒng)下,通過操作/dev/watchdog來管理內(nèi)核自帶的看門狗功能。在應(yīng)用程序打開/dev/watchdog設(shè)備后,即通知內(nèi)核看門狗開始工作,內(nèi)核自動啟動看門狗計時器,如果沒有按時對/dev/watchdog設(shè)備進(jìn)行寫操作,即沒有喂狗,內(nèi)核就會重啟系統(tǒng)。
4 WEB控制設(shè)計
目前主流的WEB服務(wù)技術(shù)主要有Java WEB、PHP、ASP.NET和基于Python的WEB服務(wù)。其中ASP.NET、Java WEB和PHP對服務(wù)器的硬件要求較高,而基于Python的WEB服務(wù)則更為小巧輕便,開發(fā)也更加方便,因此采用基于Python的WEB服務(wù)技術(shù)。
WEB服務(wù)器包括三個部分:前端WEB頁面、通信協(xié)議和后端WEB服務(wù)器。WEB服務(wù)構(gòu)架如圖5所示。
瀏覽器訪問網(wǎng)頁時,網(wǎng)頁上的腳本獲取操作,并通過HTTP[6]協(xié)議將操作數(shù)據(jù)發(fā)送到服務(wù)器,服務(wù)器處理操作數(shù)據(jù)并控制視頻矩陣,同時向瀏覽器返回處理結(jié)果,頁面將展示處理結(jié)果。
4.1 前端頁面設(shè)計
WEB頁面的開發(fā)采用的是HTML超文本標(biāo)記語言和JQuery腳本語言。HTML是為“網(wǎng)頁創(chuàng)建和其它可在網(wǎng)頁瀏覽器中看到的信息”設(shè)計的一種標(biāo)記語言。JQuery是一個快速、簡潔、優(yōu)秀的JavaScript代碼庫。
WEB頁面能夠進(jìn)行視頻矩陣的相關(guān)參數(shù)配置和矩陣切換與云平臺PTZ控制,其主要功能有:用戶管理、系統(tǒng)IP配置、矩陣配置、控制設(shè)備配置、攝像頭配置、輪詢方案配置、切換方案配置、切換方案配置、實時切換與PTZ控制。
4.2 數(shù)據(jù)交瓦與數(shù)據(jù)響應(yīng)格式設(shè)計
WEB服務(wù)器的前后臺數(shù)據(jù)交互技術(shù)采用Ajax技術(shù),以實現(xiàn)在不重新加載頁面的情況下更新網(wǎng)頁。Ajax的工作原理:首先創(chuàng)建XmIHttpRequest對象,該對象可以完成服務(wù)器端和后臺數(shù)據(jù)庫的數(shù)據(jù)交換,然后利用JQuery完成WEB頁面的更新,即在客戶端和服務(wù)器端增加一層后臺數(shù)據(jù)交互,也就是Ajax引擎[7]。
目前,前端與后臺服務(wù)器的數(shù)據(jù)響應(yīng)主要是文本串和XML兩種。XML格式比較冗余,會增加用戶的訪問流量,降低訪問速度,所以采用文本串的形式。目前在WEB應(yīng)用最為廣泛文本形式的是JSON,JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式[8]。JSON以嚴(yán)格的“鍵/值”的形式來傳輸數(shù)據(jù)對象,可在不同的編程語吉中應(yīng)用。
4.3 服務(wù)器設(shè)計
后臺服務(wù)器采用Tornad??蚣荛_發(fā),數(shù)據(jù)庫選擇MySQL數(shù)據(jù)庫。Tornad??蚣懿捎肊poll來實現(xiàn)處理大量并發(fā)的連接,具有響應(yīng)速度快、并發(fā)連接處理能力強等特點,特別適用于實時的WEB服務(wù)[9]。
控制服務(wù)器收到前端請求,tornad。會攔截請求,并根據(jù)請求的url把請求轉(zhuǎn)發(fā)到對應(yīng)的處理類去處理用戶請求并返回處理后的數(shù)據(jù)。
5 結(jié)論
本文設(shè)計的視頻矩陣控制服務(wù)器是控制外設(shè)和視頻矩陣的控制中心,硬件部分以樹莓派為核心,采用高速USB轉(zhuǎn)4串口模塊與控制鍵盤和MAX-1000矩陣通信,實現(xiàn)了視頻矩陣的傳統(tǒng)鍵盤控制:軟件部分采用嵌入式Linux系統(tǒng),開發(fā)了基于HTTP協(xié)議的WEB控制系統(tǒng),通過配置控制服務(wù)器相關(guān)信息,實現(xiàn)了WEB遠(yuǎn)程控制。目前已經(jīng)應(yīng)用在北京東城檢察院,達(dá)到了預(yù)期的設(shè)計目標(biāo)。
參考文獻(xiàn):
[1]奏迎春.實現(xiàn)嵌入式矩陣切換控制系統(tǒng)的設(shè)計[J]微計算機信息,2008.4(23):121-122.132
[2]鄭靈翔.嵌入式Linux系統(tǒng)設(shè)計[M]北京:北京航空航天大學(xué)出版社,2008.67-83
[3]何曉龍,李明完美應(yīng)用Ubuntu[M]北京電子工業(yè)出版社,2010:12-15
[4]M Doraipandian,P Neelamegam.Wireless Sensor Network Using ARM Processors:A Review in Hardware Perspective[J].lnternational JournaIl of Embedded and Real-TimeCommunication Systems.2013.4(4):48-59
[5]李雪紅.USB/RS232接口轉(zhuǎn)換器的設(shè)計[D]長安大學(xué),2004
[6]A Rousskov.V Soloviev.A Performance Study of the Squid Proxy on HTTP/l.O[J].Worid WideWeb-internet& Web Information Systems.2000.2(1-2):47-67
[7]譚日森.Alax技術(shù)的特點及發(fā)展前景[J]黑龍江科技信息,2007(21):87-87
[8]Smith. Beginning JSON [EB/OL]. http://dx.doi.org/10.1007/978-1-4842-0202-94.2015
[9]Tornado. Tornado WEB Server[EB/OL]. http://www.tornadoWEB.org/en/stable/, 2009endprint