,,
(1.北京理工大學(xué) 化學(xué)與化工學(xué)院,北京 100081;2.北京世紀(jì)聯(lián)信科技有限公司)
樹莓派的多個(gè)視頻矩陣控制系統(tǒng)設(shè)計(jì)
謝成1,蔣健1,陳煒2
(1.北京理工大學(xué) 化學(xué)與化工學(xué)院,北京 100081;2.北京世紀(jì)聯(lián)信科技有限公司)
介紹了一種基于樹莓派的視頻矩陣控制系統(tǒng)的設(shè)計(jì)方法,描述了系統(tǒng)的硬件組成和軟件架構(gòu),并著重講述了多個(gè)視頻矩陣的串并聯(lián)組合以及基于確定有窮自動(dòng)機(jī)的鍵盤控制程序。測試結(jié)果表明該系統(tǒng)穩(wěn)定可靠,在兼容市場上現(xiàn)有視頻矩陣控制系統(tǒng)的同時(shí)具有自己獨(dú)特的功能。該系統(tǒng)已經(jīng)成功的運(yùn)用于視頻監(jiān)控領(lǐng)域。
樹莓派;串口;Linux;DFA
隨著高清攝像技術(shù)的發(fā)展和人們對于實(shí)時(shí)監(jiān)控安防的需求越來越迫切,視頻監(jiān)控系統(tǒng)已經(jīng)在工業(yè)現(xiàn)場、銀行服務(wù)、交通干道、軍事場所等社會(huì)生活的各個(gè)方面得到了廣泛的應(yīng)用。而作為視頻監(jiān)控的核心,視頻矩陣切換系統(tǒng)也在發(fā)揮著越來越重要的作用[1]。
視頻矩陣的主要功能是在不進(jìn)行物理線纜切換的情況下,在設(shè)備的內(nèi)部將任意端口的視頻輸入切換到任意端口的視頻輸出[2]。目前市場上的視頻矩陣控制系統(tǒng)多將視頻矩陣和控制系統(tǒng)部分設(shè)計(jì)為一個(gè)專用服務(wù)器,不僅價(jià)格昂貴、結(jié)構(gòu)復(fù)雜,而且可擴(kuò)展性弱。本系統(tǒng)專注于視頻矩陣的控制,在兼容市場上現(xiàn)有的視頻矩陣控制系統(tǒng)的情況下,實(shí)現(xiàn)視頻矩陣所有控制功能?;跇漭傻挠布O(shè)計(jì)使得系統(tǒng)成本低廉、結(jié)構(gòu)簡單、穩(wěn)定性高、可擴(kuò)展性強(qiáng)。
本系統(tǒng)的主要功能是通過串口將視頻矩陣和控制設(shè)備連接起來,通過程序解析控制設(shè)備的命令并轉(zhuǎn)發(fā)給視頻矩陣來實(shí)現(xiàn)控制設(shè)備對視頻矩陣的控制,并且能將多個(gè)視頻矩陣擬合成一個(gè)抽象的視頻矩陣進(jìn)行控制,實(shí)現(xiàn)了對視頻矩陣輸入/輸出的擴(kuò)容。其中控制設(shè)備除了通用的控制鍵盤以外,還兼容市場上現(xiàn)有的其他控制設(shè)備。
本系統(tǒng)的硬件結(jié)構(gòu)組成如圖1所示,整個(gè)系統(tǒng)由樹莓派、電源模塊和USB/串口轉(zhuǎn)換器三個(gè)部分組成。搭載Linux系統(tǒng)的樹莓派作為控制器用來運(yùn)行控制程序。
圖1 硬件結(jié)構(gòu)
2.1 樹莓派
樹莓派是一款搭載完整Linux系統(tǒng)的單板計(jì)算機(jī),體積只有信用卡大小,且功耗只有5 W。其運(yùn)行的操作系統(tǒng)以Python作為開發(fā)語言,并支持MySQL作為穩(wěn)定的數(shù)據(jù)存儲(chǔ)服務(wù)。樹莓派本身擁有一個(gè)串口作為通訊接口,本系統(tǒng)在樹莓派自帶的兩個(gè)USB接口上連接了高速USB轉(zhuǎn)串口的模塊用以增加系統(tǒng)的通信接口,擴(kuò)展后的樹莓派最多能夠支持8個(gè)視頻矩陣和輸入設(shè)備連接到控制器[3]。
2.2 USB/串口轉(zhuǎn)換器
USB/串口轉(zhuǎn)換器實(shí)現(xiàn)了USB到串口的擴(kuò)展,并且可以通過撥碼設(shè)置RS 232/422/485不同的接口方式[4]。通過該模塊能夠穩(wěn)定、實(shí)時(shí)、快捷地完成各種工業(yè)設(shè)備的串口信號(hào)傳輸與轉(zhuǎn)換,廣泛地應(yīng)用于化工、電力、氣體檢測等行業(yè)。
系統(tǒng)的軟件部分分成Web服務(wù)模塊、串口模塊、命令模塊、控制設(shè)備模塊、矩陣模塊5個(gè)模塊。
Web服務(wù)模塊作為控制系統(tǒng)的配置部分,能夠設(shè)置每個(gè)串口所連接的設(shè)備類型和設(shè)備的詳細(xì)參數(shù)信息。Web服務(wù)模塊的存在不僅能保證控制系統(tǒng)的正確運(yùn)行,而且通過配置的形式極大地提高了控制系統(tǒng)的可擴(kuò)展性[5]。串口模塊作為程序與外接設(shè)備的通信媒介,負(fù)責(zé)程序與控制設(shè)備和視頻矩陣的數(shù)據(jù)通信。命令模塊作為控制設(shè)備模塊與矩陣模塊之間通信的統(tǒng)一標(biāo)準(zhǔn),包含了視頻矩陣的控制信息??刂圃O(shè)備模塊將串口模塊采集到的輸入信息解析成統(tǒng)一的命令并分派給自己控制的矩陣。矩陣模塊將接收到的命令根據(jù)矩陣的類型解析成指定的數(shù)據(jù)通過串口模塊下發(fā)給視頻矩陣。
整個(gè)系統(tǒng)最復(fù)雜的部分是矩陣模塊中多個(gè)矩陣的串并聯(lián)組合和控制設(shè)備模塊的控制鍵盤部分。
3.1 串并聯(lián)矩陣
矩陣模塊中包含視頻矩陣、音頻矩陣、串聯(lián)矩陣和并聯(lián)矩陣4種類型,其中視頻矩陣和音頻矩陣都是直接將命令通過串口模塊下發(fā)到指定矩陣設(shè)備上,而串并聯(lián)矩陣是在程序上將多個(gè)視頻矩陣用串并聯(lián)的方式擬合成一個(gè)視頻矩陣,通過算法實(shí)現(xiàn)矩陣輸入/輸出的擴(kuò)容,所以串聯(lián)矩陣和并聯(lián)矩陣是根據(jù)矩陣組合方式將命令分別解析拆分并派發(fā)到自己的子矩陣上去。
3.1.1 串聯(lián)矩陣
串聯(lián)矩陣的組合方式如圖2所示。
圖2 串聯(lián)矩陣組合方式
假設(shè)矩陣1具有in1個(gè)輸入,out1個(gè)輸出;矩陣k具有ink個(gè)輸入,outk個(gè)輸出,則n個(gè)矩陣通過串聯(lián)形成的新的矩陣時(shí),其輸入in如下所示:
輸出out如下所示:
若向此矩陣發(fā)送切換指令,切換的顯示器為mon,攝像頭為cam,則矩陣k切換的顯示器monk如下所示:
切換的攝像頭camk如下所示:
3.1.2 并聯(lián)矩陣
并聯(lián)矩陣的組合方式如圖3所示。
圖3 并聯(lián)矩陣的組合方式
當(dāng)n個(gè)矩陣并聯(lián)形成新的矩陣時(shí),輸入in如下所示:
in=in1=
輸出out為:
若向此矩陣發(fā)送切換指令,切換的顯示器為mon,攝像頭為cam,則矩陣k切換的顯示器monk如下所示:
切換的攝像頭camk如下所示:
串并聯(lián)矩陣除了可以將視頻矩陣或者音頻矩陣當(dāng)作子矩陣以外,還可以將其他串并聯(lián)矩陣作為子矩陣,這意味著可以將子矩陣通過不斷的組合實(shí)現(xiàn)任意的擴(kuò)充輸入與輸出,極大地提高了系統(tǒng)的可擴(kuò)展性。
3.2 鍵盤控制設(shè)備
控制設(shè)備模塊除了實(shí)現(xiàn)基本的鍵盤控制以外,還兼容市場已有的其他視頻矩陣控制系統(tǒng)。其中控制鍵盤作為最基本的控制設(shè)備,需要實(shí)現(xiàn)以下6種功能:控制球機(jī)移動(dòng)、切換球機(jī)、切換顯示器、球機(jī)預(yù)置位設(shè)置、自動(dòng)掃描功能、宏功能。
其中功能3~6,需要按照指定的順序按下一系列按鍵才能發(fā)送相關(guān)指令,在這個(gè)過程中還要判定是否存在異常輸入和對異常的處理,因此引入了確定有窮自動(dòng)機(jī)(DFA)來實(shí)現(xiàn)鍵盤的功能。
圖4 控制鍵盤的狀態(tài)轉(zhuǎn)換圖
確定有窮自動(dòng)機(jī)是用來描述對象在它生命周期內(nèi)可能存在的狀態(tài)以及對外界事件輸入的響應(yīng),它包含了一個(gè)有限狀態(tài)的集合和在不同事件輸入的情況下狀態(tài)轉(zhuǎn)換的方向[6]。
首先需要根據(jù)按鍵的順序來構(gòu)建程序運(yùn)行的狀態(tài)轉(zhuǎn)換圖,確定每個(gè)按鍵輸入后的程序狀態(tài),并給每個(gè)狀態(tài)以單獨(dú)的標(biāo)識(shí)符。圖4是控制鍵盤程序狀態(tài)轉(zhuǎn)換圖。
在狀態(tài)跳轉(zhuǎn)圖中定義了15個(gè)狀態(tài)(其中狀態(tài)0為起始狀態(tài)),根據(jù)輸入的按鍵將會(huì)在不同的狀態(tài)中跳轉(zhuǎn),并且會(huì)在成功構(gòu)建命令后回歸到狀態(tài)0。我們構(gòu)建了一個(gè)狀態(tài)跳轉(zhuǎn)表,每次按鍵輸入的時(shí)候根據(jù)當(dāng)前按鍵和當(dāng)前狀態(tài)獲取跳轉(zhuǎn)函數(shù),運(yùn)行跳轉(zhuǎn)函數(shù)則會(huì)執(zhí)行相關(guān)命令并且跳轉(zhuǎn)到下一個(gè)狀態(tài)。表1為構(gòu)建的狀態(tài)跳轉(zhuǎn)表,其中“-”表示忽略此次按鍵。
在程序中用代碼實(shí)現(xiàn)跳轉(zhuǎn)表,最后鍵盤輸入的核心解析程序如下:
def parse(key):
#根據(jù)按鍵和當(dāng)前狀態(tài)從跳轉(zhuǎn)表中取出跳轉(zhuǎn)函數(shù)
action=stateTable[key][current_state]
#執(zhí)行跳轉(zhuǎn)函數(shù),并將下一個(gè)狀態(tài)賦值給當(dāng)前狀態(tài)
current_state=action(key)
表1 狀態(tài)跳轉(zhuǎn)表
本文結(jié)合了嵌入式技術(shù)、串口總線技術(shù)、矩陣串并聯(lián)機(jī)制、確定有窮自動(dòng)機(jī)原理,設(shè)計(jì)了基于樹莓派的矩陣控制系統(tǒng)。在硬件上通過樹莓派作為控制核心,USB/串口轉(zhuǎn)換器作為串口擴(kuò)展方式,保證了系統(tǒng)成本低廉、結(jié)構(gòu)簡單、穩(wěn)定性強(qiáng)。軟件方面通過在Linux系統(tǒng)上開發(fā)應(yīng)用程序?qū)崿F(xiàn)了控制設(shè)備對視頻矩陣的控制,程序的各個(gè)模塊耦合度低,可維護(hù)性強(qiáng)。通過串并聯(lián)擬合矩陣的機(jī)制,實(shí)現(xiàn)了視頻矩陣的擴(kuò)容?;诖_定有窮自動(dòng)機(jī)的控制鍵盤程序?qū)崿F(xiàn)了復(fù)雜的鍵盤控制功能,其中狀態(tài)跳轉(zhuǎn)表的構(gòu)造保證了程序的可讀性以及可維護(hù)性。本系統(tǒng)在實(shí)現(xiàn)視頻矩陣控制的同時(shí)向下兼容市場上已有的視頻矩陣控制系統(tǒng)。目前該系統(tǒng)已經(jīng)在部分地區(qū)公安局的視頻監(jiān)控
VideoMulti-matrixControlSystemDesignBasedonRaspberryPi
XieCheng1,JiangJian1,ChenWei2
(1.Beijing Institute of Technology of Chemistry and Chemical Engineering, Beijing Institute of Technology, Beijing 100081,China;2.Beijing Century Lensys Technology Ltd)
In the paper,a kind of video matrix system design method which based on raspberry pi is proposed.The hardware and software constitution of system are described,and the series-parallel combination of multi-matrix and the keyboard control program based on DFA are introduced specially.The test results show that the system is stable and reliable with the unique features,and the system is compatible with the existing video matrix control system in the market.The system has been successfully applied in the field of video surveillance.
raspberry pi;serial;Linux;DFA
TP274.2
A