,,
(1.北京理工大學 化學與化工學院,北京 100081;2.北京世紀聯信科技有限公司)
樹莓派的多個視頻矩陣控制系統設計
謝成1,蔣健1,陳煒2
(1.北京理工大學 化學與化工學院,北京 100081;2.北京世紀聯信科技有限公司)
介紹了一種基于樹莓派的視頻矩陣控制系統的設計方法,描述了系統的硬件組成和軟件架構,并著重講述了多個視頻矩陣的串并聯組合以及基于確定有窮自動機的鍵盤控制程序。測試結果表明該系統穩定可靠,在兼容市場上現有視頻矩陣控制系統的同時具有自己獨特的功能。該系統已經成功的運用于視頻監控領域。
樹莓派;串口;Linux;DFA
隨著高清攝像技術的發展和人們對于實時監控安防的需求越來越迫切,視頻監控系統已經在工業現場、銀行服務、交通干道、軍事場所等社會生活的各個方面得到了廣泛的應用。而作為視頻監控的核心,視頻矩陣切換系統也在發揮著越來越重要的作用[1]。
視頻矩陣的主要功能是在不進行物理線纜切換的情況下,在設備的內部將任意端口的視頻輸入切換到任意端口的視頻輸出[2]。目前市場上的視頻矩陣控制系統多將視頻矩陣和控制系統部分設計為一個專用服務器,不僅價格昂貴、結構復雜,而且可擴展性弱。本系統專注于視頻矩陣的控制,在兼容市場上現有的視頻矩陣控制系統的情況下,實現視頻矩陣所有控制功能。基于樹莓派的硬件設計使得系統成本低廉、結構簡單、穩定性高、可擴展性強。
本系統的主要功能是通過串口將視頻矩陣和控制設備連接起來,通過程序解析控制設備的命令并轉發給視頻矩陣來實現控制設備對視頻矩陣的控制,并且能將多個視頻矩陣擬合成一個抽象的視頻矩陣進行控制,實現了對視頻矩陣輸入/輸出的擴容。其中控制設備除了通用的控制鍵盤以外,還兼容市場上現有的其他控制設備。
本系統的硬件結構組成如圖1所示,整個系統由樹莓派、電源模塊和USB/串口轉換器三個部分組成。搭載Linux系統的樹莓派作為控制器用來運行控制程序。

圖1 硬件結構
2.1 樹莓派
樹莓派是一款搭載完整Linux系統的單板計算機,體積只有信用卡大小,且功耗只有5 W。其運行的操作系統以Python作為開發語言,并支持MySQL作為穩定的數據存儲服務。樹莓派本身擁有一個串口作為通訊接口,本系統在樹莓派自帶的兩個USB接口上連接了高速USB轉串口的模塊用以增加系統的通信接口,擴展后的樹莓派最多能夠支持8個視頻矩陣和輸入設備連接到控制器[3]。
2.2 USB/串口轉換器
USB/串口轉換器實現了USB到串口的擴展,并且可以通過撥碼設置RS 232/422/485不同的接口方式[4]。通過該模塊能夠穩定、實時、快捷地完成各種工業設備的串口信號傳輸與轉換,廣泛地應用于化工、電力、氣體檢測等行業。
系統的軟件部分分成Web服務模塊、串口模塊、命令模塊、控制設備模塊、矩陣模塊5個模塊。
Web服務模塊作為控制系統的配置部分,能夠設置每個串口所連接的設備類型和設備的詳細參數信息。Web服務模塊的存在不僅能保證控制系統的正確運行,而且通過配置的形式極大地提高了控制系統的可擴展性[5]。串口模塊作為程序與外接設備的通信媒介,負責程序與控制設備和視頻矩陣的數據通信。命令模塊作為控制設備模塊與矩陣模塊之間通信的統一標準,包含了視頻矩陣的控制信息。控制設備模塊將串口模塊采集到的輸入信息解析成統一的命令并分派給自己控制的矩陣。矩陣模塊將接收到的命令根據矩陣的類型解析成指定的數據通過串口模塊下發給視頻矩陣。
整個系統最復雜的部分是矩陣模塊中多個矩陣的串并聯組合和控制設備模塊的控制鍵盤部分。
3.1 串并聯矩陣
矩陣模塊中包含視頻矩陣、音頻矩陣、串聯矩陣和并聯矩陣4種類型,其中視頻矩陣和音頻矩陣都是直接將命令通過串口模塊下發到指定矩陣設備上,而串并聯矩陣是在程序上將多個視頻矩陣用串并聯的方式擬合成一個視頻矩陣,通過算法實現矩陣輸入/輸出的擴容,所以串聯矩陣和并聯矩陣是根據矩陣組合方式將命令分別解析拆分并派發到自己的子矩陣上去。
3.1.1 串聯矩陣
串聯矩陣的組合方式如圖2所示。

圖2 串聯矩陣組合方式
假設矩陣1具有in1個輸入,out1個輸出;矩陣k具有ink個輸入,outk個輸出,則n個矩陣通過串聯形成的新的矩陣時,其輸入in如下所示:
輸出out如下所示:
若向此矩陣發送切換指令,切換的顯示器為mon,攝像頭為cam,則矩陣k切換的顯示器monk如下所示:
切換的攝像頭camk如下所示:

3.1.2 并聯矩陣
并聯矩陣的組合方式如圖3所示。

圖3 并聯矩陣的組合方式
當n個矩陣并聯形成新的矩陣時,輸入in如下所示:
in=in1=
輸出out為:
若向此矩陣發送切換指令,切換的顯示器為mon,攝像頭為cam,則矩陣k切換的顯示器monk如下所示:
切換的攝像頭camk如下所示:
串并聯矩陣除了可以將視頻矩陣或者音頻矩陣當作子矩陣以外,還可以將其他串并聯矩陣作為子矩陣,這意味著可以將子矩陣通過不斷的組合實現任意的擴充輸入與輸出,極大地提高了系統的可擴展性。
3.2 鍵盤控制設備
控制設備模塊除了實現基本的鍵盤控制以外,還兼容市場已有的其他視頻矩陣控制系統。其中控制鍵盤作為最基本的控制設備,需要實現以下6種功能:控制球機移動、切換球機、切換顯示器、球機預置位設置、自動掃描功能、宏功能。
其中功能3~6,需要按照指定的順序按下一系列按鍵才能發送相關指令,在這個過程中還要判定是否存在異常輸入和對異常的處理,因此引入了確定有窮自動機(DFA)來實現鍵盤的功能。

圖4 控制鍵盤的狀態轉換圖
確定有窮自動機是用來描述對象在它生命周期內可能存在的狀態以及對外界事件輸入的響應,它包含了一個有限狀態的集合和在不同事件輸入的情況下狀態轉換的方向[6]。
首先需要根據按鍵的順序來構建程序運行的狀態轉換圖,確定每個按鍵輸入后的程序狀態,并給每個狀態以單獨的標識符。圖4是控制鍵盤程序狀態轉換圖。
在狀態跳轉圖中定義了15個狀態(其中狀態0為起始狀態),根據輸入的按鍵將會在不同的狀態中跳轉,并且會在成功構建命令后回歸到狀態0。我們構建了一個狀態跳轉表,每次按鍵輸入的時候根據當前按鍵和當前狀態獲取跳轉函數,運行跳轉函數則會執行相關命令并且跳轉到下一個狀態。表1為構建的狀態跳轉表,其中“-”表示忽略此次按鍵。
在程序中用代碼實現跳轉表,最后鍵盤輸入的核心解析程序如下:
def parse(key):
#根據按鍵和當前狀態從跳轉表中取出跳轉函數
action=stateTable[key][current_state]
#執行跳轉函數,并將下一個狀態賦值給當前狀態
current_state=action(key)

表1 狀態跳轉表
本文結合了嵌入式技術、串口總線技術、矩陣串并聯機制、確定有窮自動機原理,設計了基于樹莓派的矩陣控制系統。在硬件上通過樹莓派作為控制核心,USB/串口轉換器作為串口擴展方式,保證了系統成本低廉、結構簡單、穩定性強。軟件方面通過在Linux系統上開發應用程序實現了控制設備對視頻矩陣的控制,程序的各個模塊耦合度低,可維護性強。通過串并聯擬合矩陣的機制,實現了視頻矩陣的擴容。基于確定有窮自動機的控制鍵盤程序實現了復雜的鍵盤控制功能,其中狀態跳轉表的構造保證了程序的可讀性以及可維護性。本系統在實現視頻矩陣控制的同時向下兼容市場上已有的視頻矩陣控制系統。目前該系統已經在部分地區公安局的視頻監控
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