新聞中心

EEPW首頁 > 網(wǎng)絡與存儲 > 設計應用 > 基于樹莓派的視頻矩陣控制服務器設計

基于樹莓派的視頻矩陣控制服務器設計

作者:劉根水 蔣健 李振威 陳煒 時間:2017-09-27 來源:電子產(chǎn)品世界 收藏
編者按:本文設計了一種基于MAX-1000視頻矩陣系統(tǒng)和嵌入式Linux系統(tǒng)的視頻矩陣控制服務器。采用樹莓派作為控制器,通過RS-232串口接收鍵盤的切換和云臺控制指令,解析該指令并轉換成視頻矩陣指令,再通過RS-232串口將指令下發(fā)給視頻矩陣,實現(xiàn)對矩陣的切換和云臺的控制。同時,設計了一個WEB服務器,可在WEB頁面上配置視頻矩陣控制服務器的參數(shù),實現(xiàn)了視頻矩陣的遠程切換和云臺PTZ控制。該控制服務器具有使用方便、功能強大、可擴展、易維護、可靠性高等特點,已成功應用到現(xiàn)場,能夠滿足大型監(jiān)控現(xiàn)場的監(jiān)控需求。

3.1 接收并解析鍵盤指令

本文引用地址:http://2s4d.com/article/201709/364877.htm

  能夠支持多個鍵盤同時工作,多個鍵盤連到不同串口上,同時對進行控制。單個串口讀取鍵盤指令的程序流程如圖3所示。

  讀取鍵盤串口指令后,根據(jù)鍵盤協(xié)議解析每一條指令。鍵盤常用操作包括切換操作、設置(攝像頭)預置位、到達預置位、云臺PTZ控制、up到達上一攝像頭,down到達下一攝像頭。

  切換指令解析流程如圖4所示,其它指令解析的流程與切換指令類似。

3.2 生成并發(fā)送矩陣控制指令

  矩陣在接收并解析鍵盤指令后,會根據(jù)MAX-1000矩陣協(xié)議把鍵盤指令轉化為矩陣指令,然后存入到相應的串口指令隊列中,再由相應的串口線程輪詢該串口的指令隊列并給相應矩陣發(fā)送指令。

  矩陣控制服務器與之間通過協(xié)議通信,采用的7位數(shù)據(jù)位、1位停止位、奇校驗,波特率是19200或者9600。MAX-1000矩陣協(xié)議主要包括對云臺PTZ控制協(xié)議和對輸入輸出切換控制協(xié)議。矩陣指令的格式很固定,只需要根據(jù)鍵盤指令的類型修改幾個固定的參數(shù)即可生成矩陣控制指令。

  矩陣控制服務器為每個串口上外設為矩陣的串口啟動了獨立的線程檢測串口的指令隊列中是否有指令,有指令就通過串口下發(fā)給視頻矩陣。利用隊列的先入先出特性,能夠保證指令的正確順序。

3.3 系統(tǒng)可靠性設計

  由于控制服務器安裝環(huán)境的電磁干擾和輻射干擾比較強,需要保證控制服務器能夠穩(wěn)定可靠地工作。

  在硬件電路方面,設計了相應的保護裝置,同時將控制服務器的硬件設備安裝在密封的金屬外殼里,以屏蔽電磁干擾。

  在軟件方面,采用看門狗技術來實現(xiàn)控制服務器在斷電等極端條件下自動恢復的功能,保證系統(tǒng)長時間不間斷運行的穩(wěn)定性。控制器樹莓派的CPU帶有硬件看門狗,由內(nèi)核發(fā)送喂狗指令管理看門狗,只有在內(nèi)核異常時看門狗才會起到重啟系統(tǒng)的作用。而在實際的應用情況下,系統(tǒng)工作異常很少由內(nèi)核異常導致,因此,本文在應用程序里實現(xiàn)對看門狗的管理。在Linux系統(tǒng)下,通過操作/dev/watchdog來管理內(nèi)核自帶的看門狗功能。在應用程序打開/dev/watchdog設備后,即通知內(nèi)核看門狗開始工作,內(nèi)核自動啟動看門狗計時器,如果沒有按時對/dev/watchdog設備進行寫操作,即沒有喂狗,內(nèi)核就會重啟系統(tǒng)。

4 WEB控制設計

  目前主流的WEB服務技術主要有Java WEB、PHP、ASP.NET和基于Python的WEB服務。其中ASP.NET、Java WEB和PHP對服務器的硬件要求較高,而基于Python的WEB服務則更為小巧輕便,開發(fā)也更加方便,因此采用基于Python的WEB服務技術。

  包括三個部分:前端WEB頁面、通信協(xié)議和后端。WEB服務構架如圖5所示。

  瀏覽器訪問網(wǎng)頁時,網(wǎng)頁上的腳本獲取操作,并通過HTTP[6]協(xié)議將操作數(shù)據(jù)發(fā)送到服務器,服務器處理操作數(shù)據(jù)并控制視頻矩陣,同時向瀏覽器返回處理結果,頁面將展示處理結果。

4.1 前端頁面設計

  WEB頁面的開發(fā)采用的是HTML超文本標記語言和JQuery腳本語言。HTML 是為“網(wǎng)頁創(chuàng)建和其它可在網(wǎng)頁瀏覽器中看到的信息”設計的一種標記語言。JQuery是一個快速、簡潔、優(yōu)秀的 JavaScript 代碼庫。

  WEB頁面能夠進行視頻矩陣的相關參數(shù)配置和矩陣切換與云平臺PTZ控制,其主要功能有:用戶管理、系統(tǒng)IP配置、矩陣配置、控制設備配置、攝像頭配置、輪詢方案配置、切換方案配置、切換方案配置、實時切換與PTZ控制。

4. 2 數(shù)據(jù)交互與數(shù)據(jù)響應格式設計

  的前后臺數(shù)據(jù)交互技術采用Ajax技術,以實現(xiàn)在不重新加載頁面的情況下更新網(wǎng)頁。Ajax的工作原理:首先創(chuàng)建XmlHttpRequest對象,該對象可以完成服務器端和后臺數(shù)據(jù)庫的數(shù)據(jù)交換,然后利用JQuery完成WEB頁面的更新,即在客戶端和服務器端增加一層后臺數(shù)據(jù)交互,也就是Ajax引擎[7]。

  目前,前端與后臺服務器的數(shù)據(jù)響應主要是文本串和XML兩種。XML格式比較冗余,會增加用戶的訪問流量,降低訪問速度,所以采用文本串的形式。目前在WEB應用最為廣泛文本形式的是JSON,JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式[8]。JSON以嚴格的“鍵/值”的形式來傳輸數(shù)據(jù)對象,可在不同的編程語言中應用。

4.3 服務器設計

  后臺服務器采用Tornado框架開發(fā),數(shù)據(jù)庫選擇MySQL數(shù)據(jù)庫。Tornado框架采用Epoll來實現(xiàn)處理大量并發(fā)的連接,具有響應速度快、并發(fā)連接處理能力強等特點,特別適用于實時的WEB服務[9]。

  控制服務器收到前端請求,tornado會攔截請求,并根據(jù)請求的url把請求轉發(fā)到對應的處理類去處理用戶請求并返回處理后的數(shù)據(jù)。

5 結論

  本文設計的視頻矩陣控制服務器是控制外設和視頻矩陣的控制中心,硬件部分以樹莓派為核心,采用高速USB轉4串口模塊與控制鍵盤和MAX-1000矩陣通信,實現(xiàn)了視頻矩陣的傳統(tǒng)鍵盤控制;軟件部分采用系統(tǒng),開發(fā)了基于HTTP協(xié)議的WEB控制系統(tǒng),通過配置控制服務器相關信息,實現(xiàn)了WEB遠程控制。目前已經(jīng)應用在北京東城檢察院,達到了預期的設計目標。

  參考文獻:

  [1]秦迎春.實現(xiàn)嵌入式矩陣切換控制系統(tǒng)的設計[J].微計算機信息,2008,4(23):121-122,132.

  [2]鄭靈翔.系統(tǒng)設計[M].北京:北京航空航天大學出版社,2008,67-83.

  [3]何曉龍,李明.完美應用Ubuntu[M].北京:電子工業(yè)出版社,2010:12-15.

  [4]M Doraipandian, P Neelamegam.Wireless Sensor Network Using ARM Processors: A Review in Hardware Perspective[J].International Journal of Embedded and Real-Time Communication Systems,2013,4(4):48-59.

  [5]李雪紅.USB/RS232接口轉換器的設計[D].長安大學,2004.

  [6]A Rousskov,V Soloviev. A Performance Study of the Squid Proxy on HTTP/1.0[J].World Wide Web-internet & Web Information Systems,2000,2(1-2):47-67.

  [7]譚日森.Ajax技術的特點及發(fā)展前景[J].黑龍江科技信息,2007(21):87-87.

  [8]B Smith. Beginning JSON [EB/OL]. http://dx.doi.org/10.1007/978-1-4842-0202-9_4,2015.

  [9]Tornado. Tornado WEB Server [EB/OL]. http://www.tornadoWEB.org/en/stable/, 2009.

  本文來源于《電子產(chǎn)品世界》2017年第10期第55頁,歡迎您寫論文時引用,并注明出處。


上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉