劉策倫, 張 陌, 張 剛
(1. 北京理工大學 信息與電子學院, 北京 100081;2. 太原理工大學 信息工程學院, 山西 太原 030024)
一種視頻監控實驗系統簡易且低成本制作方案
劉策倫1, 張 陌2, 張 剛2
(1. 北京理工大學 信息與電子學院, 北京 100081;2. 太原理工大學 信息工程學院, 山西 太原 030024)
選取視頻監控系統,抽象其原理框架并進行必要的簡化和技術替代:用文件傳輸代替傳統視頻監控的流傳輸,回避了復雜的SIP會話管理和復雜的RTP/RTSP流傳輸協議;采用極低成本的Xilinx Zynq 7020構建存儲服務器,其中內嵌2個高端ARM處理器分別用作文件服務器和存儲服務器,省略了傳統視頻監控系統的注冊/代理服務器和流媒體中間件;采用Marvell的SATA端口復用芯片構建大容量磁盤陣列,實現存儲服務器擴容量,形成一款適用于學生制作的極低成本、大存儲容量的簡易視頻監控系統,也適用于對成本控制嚴格的智能社區或家居的應用場合。
視頻監控; 文件傳輸; 端口復用器; 存儲陣列
視頻監控系統是一種復雜應用系統,具有客戶端/視頻服務器/流媒體中間件/存儲服務器的復雜體系結構[1],涉及音視頻壓縮編解碼、流媒體網絡實時傳輸協議、大數據云存儲等綜合技術領域,在安防、智能家居、工業自動化、物聯網IoT等行業領域應用普遍,也十分適合用作高等理工科學校計算機和電子工程專業的綜合型實驗項目。但是由于其技術和結構的復雜性導致成本昂貴,價格難以被普通理工科高校所接受。此外,高成本也阻礙視頻監控系統作為智能家居產品進入普通家庭。而作為智能社區集中使用,由多個家庭分擔成本的解決方案,因私密性難以得到保障和認可,目前還難以推廣[2]。
本文作者曾經提出將當前熱門的理論體系簡化提煉成高校的實驗教學內容,并給出一個緊湊云的實驗平臺方案[3]。本文從計算機應用和電子工程專業實驗教學內容出發,提出一種視頻監控實驗裝置的低成本簡化方案,可由相關專業本科生協同完成制作,其作品也適合于低端智能家居市場的應用推廣[4]。
由于家庭、無人值守倉庫等應用場景主要的技術需求是記錄/回放,而必須滿足的關鍵需求是獨立存儲。現有監控架構因實時性要求引入復雜技術,諸如視頻服務器,流傳輸等技術,完全可省略從而大幅度降低成本。根據上述需求分析,本文提出了一個簡化視頻監控系統的低成本解決方案。該方案利用3個途徑大幅提升系統性能并降低成本:
(1) 用文件傳輸技術代替流傳輸,用成熟可靠的B/S架構傳輸文件可大幅降低系統復雜性;
(2) 用極低成本、高性能的FPGA芯片Xilinx 7020搭建嵌入式Web/文件服務器和存儲服務器,大幅降低系統成本;
(3) 用先進的Marvell端口復用芯片88sm9705構建低成本的家庭私有存儲陣列,容量可達10~30 TB,代替傳統的視頻錄像機大幅降低系統造價。
該實驗裝置平臺造價極低(0.5萬元以下),原理相對簡單,在理解原理基礎上,學生也能動手制作,可以作為高年級學生的綜合型實驗項目,也可作為研究生相關課程的課程設計項目內容。
基于SIP和RTP協議的傳統監控系統包括視頻采集處理服務器、注冊代理/存儲服務器、客戶端和視頻存儲裝置4個部分,其結構見圖1。

圖1 傳統監控系統結構
圖1中視頻服務器A集成了視頻采集攝像頭、視頻壓縮編碼和流媒體傳輸等功能。典型的視頻服務器芯片如華為(海思)的Hi3520內嵌了壓縮編碼ASIC,壓縮數字化視頻信號并輸出H.264碼流,另有內嵌的高端ARM處理器實現SIP呼叫連接和RTP/RTSP流媒體傳輸。視頻服務器一般不配置本地存儲的文件系統。客戶端B接收H264碼流并還原成視頻流供調度臺顯示播放。如果視頻服務器與客戶端點對點連接,不必配置注冊/代理服務器。
一般應用場景需有多個攝像頭,在多個家庭共享的智能社區應用場景,系統還必須支持多個客戶端同時工作,分別為不同家庭提供服務,因此還必須部署注冊/代理服務器。此外社區存儲中心集中存儲模式下,還需配置存儲服務器和存儲陣列;在多個攝像頭和多個客戶端配置下,系統還需部署流媒體中間件實現軟交換,造成視頻監控價格和運行費用昂貴,限制其普及推廣。一個極低成本的視頻監控系統,具有明顯的市場需求和前景。
由圖1可以看出,傳統監控系統的技術組成結構是成本昂貴的主要原因,即流媒體傳輸和集中存儲兩要素。本文提出基于TFTP的低成本視頻監控系統,不需SIP和RTP協議傳輸視頻信息媒體流;采用端口復用芯片方案搭建低成本存儲陣列,實現分散存儲,其結構如圖2所示。

圖2 系統整體構架
3.1 視頻文件傳輸代替碼流傳輸
以文件而不是碼流的形式傳輸視頻信息,完全可以滿足對實時傳輸要求不高的場合,例如家居、無人值守倉庫等記錄/回放的應用模式。視頻文件尺寸可根據攝像頭數目現場配置確定,比如每1~10 min上傳1次采集的視頻數據文件。
圖2中將Hi3520編碼生成的H.264碼流存入視頻數據文件,放在本地存儲裝置中,通過TFTP協議傳輸到文件/存儲服務器,不但技術簡單可靠,同時省去了價格昂貴的SIP和RTP的注冊/代理服務器[5],可獨立部署到每個用戶。
3.2 基于ARM實現服務器
大型存儲陣列價格昂貴,一般采用集中部署方案,私密性差。廉價的Zynq 7020芯片內部有2個高端ARM Cortex A9處理器,最高1 GHz主頻[6]。本文選擇2個A9處理器分別搭建文件服務器和存儲服務器;存儲服務器還需外接一片Marvell 88SM9705芯片,實現多個SATA硬盤的端口復用,構成低成本的存儲陣列。目前Zynq 7020評估版售價約200元,7020芯片售價不足百元,9705芯片售價低于80元,Hi3520芯片售價約30元,整個系統(不計硬盤和光學輸入裝置)造價容易控制在0.5萬元以下。
3.2.1 TFTP服務器原理
TFTP是一種用在客戶機與服務器之間進行簡單文件傳輸的協議,能夠提供開銷小、不復雜的文件傳輸服務[7]。本系統將TFTP協議部署在Zynq 7020其中內嵌的一個A9處理器中,搭建文件服務器,作為TFTP的服務端。將tftp-server部署到Zynq 7020的A9處理器,將tftp-client部署到Hi3520的ARM作為客戶端。TFTP作為簡單網絡傳輸協議,便于實現且節省資源。
3.2.2 存儲陣列原理
Zynq 7020利用其內部應用處理單元在2個Cortex A9處理器之間通信,其中一片Cortex A9處理器支持完整的存儲服務器管理,外接一片Marvell的SATA端口復用器,實施存儲容量擴展,形成一個存儲陣列作為系統的存儲單元。
Marvell的88SM9705是一款SATA端口復用PM(port multiplier)控制芯片,允許主機端與多個設備端通信。主機端發送來的FIS中含有目標端口地址字段,根據該字段內容實施多個SATA硬盤的有序訪問,并且保持6.0 bit/s的傳輸速度[8]。Zynq 7020通過A9處理器訪問9705端口復用器PM上的任意一個硬盤,要給發送的消息添加設備端口地址[9]。PM端口字段在SATA3.0 FIS的第一個雙字中,見表1。

表1 PM port在FIS中的位置
A9處理器通過程序改變PM端口字段的值,分別訪問9705上的不同硬盤,實現對多個硬盤的訪問管理。圖3是利用9705端口復用芯片搭建的存儲介質與Zynq 7020評估版連接的實例。實際系統可以將9705芯片與Zynq 7020制作在同一塊電路板上。

圖3 9705存儲介質與7020連接
4.1 Hi3520生成視頻文件
視頻數據經H.264編碼后每分鐘存儲1次,形成一個以時間命名的文件,通過localtime函數可以提取系統時間并以此命名文件,客戶端以時間為索引請求檢索文件數據。生成壓縮后碼流數據文件代碼如下:
sprint(filepath,”001/%d-%d-%d-%d-%d-%s.flv”,newtime->tm_year+1900,newtime->tm_mon+1,newtime->tm_mday,newtime->tm_hour,newtime->tm_min,number);
outfile=fopen(filepath,”wb”);
while(run){
new_time=time(null);
if((int)difftime(new_time,old_time)/60==1){
fclose(outfile);
……
}
}
4.2 Zynq 7020 ARM的Linux
可在Xinix官網上下載適用于Zynq 7020的Linux包:Zedboard_OOB_Design,將sd_image目錄下的文件拷入7020自帶的sd卡上,并將USB OTG口接入U盤作為存儲磁盤。上電配置ARM PS和FPGA引導開啟Linux,將鏡像文件ramdisk8K.Image.gz拷貝到DDR3中執行[10],如此可建立根文件系統。構建成功ARM Linux后,需在Linux上移植jamVM虛擬機、Winstone(servlet容器)、Sqlite數據庫以及Java jdbc等資源[11],至此搭建完成Linux的管理平臺。
4.3 通信協議TFTP
視頻采集模塊與存儲服務器間基于UDP傳輸協議實現TFTP文件的傳輸[12]。安裝tftp的過程需依次安裝xinetd、tftp client、tftp server;其代碼如下:
sudo rmp -ivh xinetd-2.3.14-18.fc9.i386.rpm
sudo rpm -ivh tftp-0.48-3.fc9.i386.rpm
sudo rpm -ivh tftp-server-0.48-3.fc9.i386.rpm
然后執行sudo gedit /etc/xinetd.d/tftp修改配置文件,編輯該文件將根目錄設為/tftpboot,注釋掉disable、設為no,最后賦予根目錄權限chmod 777 tftpboot并啟動服務器,至此完成服務器的配置安裝。
7020移植了winstone web服務器,可支持servlet2.4和jsp2.0。一個Web項目webmonitor發布到7020開發板的winstone服務器上,管理文件提供瀏覽器動態網頁。然后用ifconfig命令,分別設置7020開發板和客戶機IP地址,例如設置成192.168.1.101和192.168.1.100;類似地設置每個視頻采集終端hi3520的IP地址。在7020上啟動winstone服務器,在客戶機瀏覽器上輸入:192.168.1.101/webmonitor/index.jsp
測試結果顯示了所指定存儲視頻文件頁面,如圖4所示。頁面設置快速檢索,用戶可根據具體時間檢索需要的視頻,同時可選擇視頻屬于哪個攝像頭。

圖4 監控系統中心網頁
當前采用流媒體傳輸技術的視頻監控解決方案的體系結構復雜、價格昂貴且私密性差,不適合智能家居的應用。本文提出的簡化系統摒棄了視頻監控解決方案的流傳輸技術,采用TFTP傳輸視頻文件,避免部署SIP和RTP協議和代理服務器,大大降低了系統造價,可單獨部署到家庭等私密性場合。為了降低存儲
系統造價,本文設計開發了基于Zynq 7020和9705端口復用控制芯片的廉價的存儲陣列,最多能擴展5個SATA硬盤,容量可達10~30 TB,完全可滿足一般使用需求。Zynq 7020內部強大的ARM處理器和FPGA集于一身,作為家庭視頻監控的總體管理芯片,將Hi3520視頻采集系統和基于9705的存儲系統完美結合。同時Zynq 7020上安裝有支持jsp,servlet的Web服務器,使嵌入式系統可以使用動態網頁。如此形成一款集嵌入式Linux文件系統、B/S架構、TFTP文件傳輸、存儲陣列服務器及驅動、Java/C/VHDL混合編程等多個實驗內容于一體的綜合型實驗平臺。
如果視頻服務器不用海思Hi3520芯片,而是采用TI的高性能低成本的DSP+ARM雙核處理器,實現視頻數據采集和壓縮,系統造價基本不變,只是需要另外在DSP中實現視頻壓縮編碼算法。如此,可將該實驗平臺擴展至電子工程專業,包括本系統的原理圖設計、布線制作等任務。
本文將市場上的高技術的熱門系統抽象、簡化形成本科生可以設計制作的電子產品或系統,對于探索高校學生在校期間掌握市場技術需求、綜合把握所學知識、發現市場創新創業機會,提供一種思路。
References)
[1] 沈杰. 基于達芬奇技術的多路DVR硬件設計與實現[D]. 南京:南京郵電大學, 2013.
[2] 張軍衛. 基于嵌入式Web服務器的視頻監控系統設計[D].秦皇島:燕山大學,2011.
[3] 劉策倫,張陌,張剛.驗證云存儲原理的實驗裝置[J]. 實驗技術與管理,2016,33(8):87-90.
[4] 智之屋. 智能家居設計方案[J]. 數字社區&智能家居,2006(9):67-72.
[5] 謝佑軍. 嵌入式網絡視頻監控系統的研究[D]. 成都:西南交通大學,2005.
[6] Xilinx. UG585, Zynq-7000 All Programmable SoC Technical Reference Mannual[Z]. Xilinx,2013.
[7] 曾慧. 基于TFTP協議的嵌入式圖像傳輸系統研究[D]. 曲阜:曲阜師范大學,2011.
[8] Marvell.88SM9705 SATA 6.0 Gbps: 1-to-5 Port Multiplier Preliminary Specification[M]. USA, 2013.
[9] Serial ATA International Organization: Serial ATA Revision 3.0[M].USA, 2009.
[10] 超群晴天. 制作zedboard上的根文件系統[DB/OL]. ( 2013-01-12)[2016-11-20].http://www.cnblogs.com/surpassal/archive/2013/01/12/Zed_lab7.html.
[11] 王偉,周蘭江,劉禮東, 等. Java Web應用在ARM Linux平臺上實現[J]. 電腦知識與技術, 2009, 5(16):4196-4198.
[12] 姜露露. 多通道DVR系統的軟件設計與實現[D]. 南京:南京郵電大學, 2013.
Simple and low-cost manufacturing scheme for video monitoring experimental system
Liu Celun1, Zhang Mo2, Zhang Gang2
(1. School of Information and Electronics, Beijing Institute of Technology, Beijing 100081, China;2.College of Information Engineering, Taiyuan University of Technology, Taiyuan 030024, China)
The video monitoring system is selected to abstract its principle framework, and make the necessary simplification and technical substitution. The file transmission is used to replace the streaming transmission of the traditional video monitoring so as to avoid the complex SIP session management and the complex RTP/RTSP streaming transmission protocols. A very low cost Xilinx Zynq 7020 is adopted to build storage servers. Two high-end ARM processors are embedded and act as the file server and the storage server, omitting the registration/proxy server of the traditional video monitoring system and the streaming media middleware. The SATA port multiplexing chip of Marvell is used to build a large capacity disk array to realize the expansion capacity of the storage server. A simple video monitoring system with very low cost and large storage capacity is built, which is easy for the students to make, and is also suitable for the intelligent community or household applications with the strict cost control.
video monitoring; file transmission; port multiplexer; storage array
TP277
B
1002-4956(2017)10-0066-04
10.16791/j.cnki.sjg.2017.10.018
2017-04-29修改日期2017-06-10
山西省自然科學基金項目(2013011017-3)
劉策倫(1983—),男,湖南婁底,博士,實驗師,研究方向為電子工程和云存儲技術
張剛(1953—),男,山西汾陽,博士,教授,博士生導師,研究方向為集成電路設計和云存儲技術.
E-mail:tyzhgang@163.com