基于樹(shù)莓派的視頻矩陣控制服務(wù)器設計
3.1 接收并解析鍵盤(pán)指令
本文引用地址:http://dyxdggzs.com/article/201709/364877.htm視頻矩陣控制服務(wù)器能夠支持多個(gè)鍵盤(pán)同時(shí)工作,多個(gè)鍵盤(pán)連到不同串口上,同時(shí)對視頻矩陣進(jìn)行控制。單個(gè)串口讀取鍵盤(pán)指令的程序流程如圖3所示。
控制服務(wù)器讀取鍵盤(pán)串口指令后,根據鍵盤(pán)協(xié)議解析每一條指令。鍵盤(pán)常用操作包括切換操作、設置(攝像頭)預置位、到達預置位、云臺PTZ控制、up到達上一攝像頭,down到達下一攝像頭。
切換指令解析流程如圖4所示,其它指令解析的流程與切換指令類(lèi)似。
3.2 生成并發(fā)送矩陣控制指令
矩陣控制服務(wù)器在接收并解析鍵盤(pán)指令后,會(huì )根據MAX-1000矩陣協(xié)議把鍵盤(pán)指令轉化為矩陣指令,然后存入到相應的串口指令隊列中,再由相應的串口線(xiàn)程輪詢(xún)該串口的指令隊列并給相應矩陣發(fā)送指令。
矩陣控制服務(wù)器與視頻矩陣之間通過(guò)RS-232協(xié)議通信,采用的7位數據位、1位停止位、奇校驗,波特率是19200或者9600。MAX-1000矩陣協(xié)議主要包括對云臺PTZ控制協(xié)議和對輸入輸出切換控制協(xié)議。矩陣指令的格式很固定,只需要根據鍵盤(pán)指令的類(lèi)型修改幾個(gè)固定的參數即可生成矩陣控制指令。
矩陣控制服務(wù)器為每個(gè)串口上外設為矩陣的串口啟動(dòng)了獨立的線(xiàn)程檢測串口的指令隊列中是否有指令,有指令就通過(guò)RS-232串口下發(fā)給視頻矩陣。利用隊列的先入先出特性,能夠保證指令的正確順序。
3.3 系統可靠性設計
由于控制服務(wù)器安裝環(huán)境的電磁干擾和輻射干擾比較強,需要保證控制服務(wù)器能夠穩定可靠地工作。
在硬件電路方面,設計了相應的保護裝置,同時(shí)將控制服務(wù)器的硬件設備安裝在密封的金屬外殼里,以屏蔽電磁干擾。
在軟件方面,采用看門(mén)狗技術(shù)來(lái)實(shí)現控制服務(wù)器在斷電等極端條件下自動(dòng)恢復的功能,保證系統長(cháng)時(shí)間不間斷運行的穩定性??刂破鳂?shù)莓派的CPU帶有硬件看門(mén)狗,由內核發(fā)送喂狗指令管理看門(mén)狗,只有在內核異常時(shí)看門(mén)狗才會(huì )起到重啟系統的作用。而在實(shí)際的應用情況下,系統工作異常很少由內核異常導致,因此,本文在應用程序里實(shí)現對看門(mén)狗的管理。在Linux系統下,通過(guò)操作/dev/watchdog來(lái)管理內核自帶的看門(mén)狗功能。在應用程序打開(kāi)/dev/watchdog設備后,即通知內核看門(mén)狗開(kāi)始工作,內核自動(dòng)啟動(dòng)看門(mén)狗計時(shí)器,如果沒(méi)有按時(shí)對/dev/watchdog設備進(jìn)行寫(xiě)操作,即沒(méi)有喂狗,內核就會(huì )重啟系統。
4 WEB控制設計
目前主流的WEB服務(wù)技術(shù)主要有Java WEB、PHP、ASP.NET和基于Python的WEB服務(wù)。其中ASP.NET、Java WEB和PHP對服務(wù)器的硬件要求較高,而基于Python的WEB服務(wù)則更為小巧輕便,開(kāi)發(fā)也更加方便,因此采用基于Python的WEB服務(wù)技術(shù)。
WEB服務(wù)器包括三個(gè)部分:前端WEB頁(yè)面、通信協(xié)議和后端WEB服務(wù)器。WEB服務(wù)構架如圖5所示。
瀏覽器訪(fǎng)問(wèn)網(wǎng)頁(yè)時(shí),網(wǎng)頁(yè)上的腳本獲取操作,并通過(guò)HTTP[6]協(xié)議將操作數據發(fā)送到服務(wù)器,服務(wù)器處理操作數據并控制視頻矩陣,同時(shí)向瀏覽器返回處理結果,頁(yè)面將展示處理結果。
4.1 前端頁(yè)面設計
WEB頁(yè)面的開(kāi)發(fā)采用的是HTML超文本標記語(yǔ)言和JQuery腳本語(yǔ)言。HTML 是為“網(wǎng)頁(yè)創(chuàng )建和其它可在網(wǎng)頁(yè)瀏覽器中看到的信息”設計的一種標記語(yǔ)言。JQuery是一個(gè)快速、簡(jiǎn)潔、優(yōu)秀的 JavaScript 代碼庫。
WEB頁(yè)面能夠進(jìn)行視頻矩陣的相關(guān)參數配置和矩陣切換與云平臺PTZ控制,其主要功能有:用戶(hù)管理、系統IP配置、矩陣配置、控制設備配置、攝像頭配置、輪詢(xún)方案配置、切換方案配置、切換方案配置、實(shí)時(shí)切換與PTZ控制。
4. 2 數據交互與數據響應格式設計
WEB服務(wù)器的前后臺數據交互技術(shù)采用Ajax技術(shù),以實(shí)現在不重新加載頁(yè)面的情況下更新網(wǎng)頁(yè)。Ajax的工作原理:首先創(chuàng )建XmlHttpRequest對象,該對象可以完成服務(wù)器端和后臺數據庫的數據交換,然后利用JQuery完成WEB頁(yè)面的更新,即在客戶(hù)端和服務(wù)器端增加一層后臺數據交互,也就是Ajax引擎[7]。
目前,前端與后臺服務(wù)器的數據響應主要是文本串和XML兩種。XML格式比較冗余,會(huì )增加用戶(hù)的訪(fǎng)問(wèn)流量,降低訪(fǎng)問(wèn)速度,所以采用文本串的形式。目前在WEB應用最為廣泛文本形式的是JSON,JSON(JavaScript Object Notation)是一種輕量級的數據交換格式[8]。JSON以嚴格的“鍵/值”的形式來(lái)傳輸數據對象,可在不同的編程語(yǔ)言中應用。
4.3 服務(wù)器設計
后臺服務(wù)器采用Tornado框架開(kāi)發(fā),數據庫選擇MySQL數據庫。Tornado框架采用Epoll來(lái)實(shí)現處理大量并發(fā)的連接,具有響應速度快、并發(fā)連接處理能力強等特點(diǎn),特別適用于實(shí)時(shí)的WEB服務(wù)[9]。
控制服務(wù)器收到前端請求,tornado會(huì )攔截請求,并根據請求的url把請求轉發(fā)到對應的處理類(lèi)去處理用戶(hù)請求并返回處理后的數據。
5 結論
本文設計的視頻矩陣控制服務(wù)器是控制外設和視頻矩陣的控制中心,硬件部分以樹(shù)莓派為核心,采用高速USB轉4串口模塊與控制鍵盤(pán)和MAX-1000矩陣通信,實(shí)現了視頻矩陣的傳統鍵盤(pán)控制;軟件部分采用嵌入式Linux系統,開(kāi)發(fā)了基于HTTP協(xié)議的WEB控制系統,通過(guò)配置控制服務(wù)器相關(guān)信息,實(shí)現了WEB遠程控制。目前已經(jīng)應用在北京東城檢察院,達到了預期的設計目標。
參考文獻:
[1]秦迎春.實(shí)現嵌入式矩陣切換控制系統的設計[J].微計算機信息,2008,4(23):121-122,132.
[2]鄭靈翔.嵌入式Linux系統設計[M].北京:北京航空航天大學(xué)出版社,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].長(cháng)安大學(xué),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技術(shù)的特點(diǎn)及發(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.
本文來(lái)源于《電子產(chǎn)品世界》2017年第10期第55頁(yè),歡迎您寫(xiě)論文時(shí)引用,并注明出處。
評論