,
(華北電力大學 控制與計算機工程學院,保定 071000)
視頻監(jiān)控系統(tǒng)能夠應用在許多領(lǐng)域,無論是安全防范、網(wǎng)絡(luò)直播還是視頻會議,都能看到它的影子。與文字、語音等形式相比,視頻監(jiān)控系統(tǒng)更加直觀、方便,信息內(nèi)容更加豐富。隨著嵌入式技術(shù)的發(fā)展和進步,視頻監(jiān)控系統(tǒng)也得到了快速的發(fā)展,從原來的模擬視頻監(jiān)控發(fā)展到現(xiàn)在的嵌入式視頻監(jiān)控,并得到了廣泛的應用,成為視頻監(jiān)控領(lǐng)域的一個應用熱點。本文設(shè)計了以嵌入式Linux操作系統(tǒng)和Hi3521A硬件平臺為核心的多路視頻監(jiān)控系統(tǒng)。
為實現(xiàn)多路視頻的采集和傳輸,獲得視頻的實時數(shù)據(jù)是一個重要環(huán)節(jié)[1]。本系統(tǒng)采用Hi3521A芯片作為核心芯片,并對其外圍設(shè)備進行擴展。Hi3521A是華為公司生產(chǎn)的針對多路標清、高清錄像產(chǎn)品應用研發(fā)的一款專業(yè)SoC芯片。海思Hi3521A芯片內(nèi)置有ARM處理器以及H.264視頻編解碼引擎,還包含了豐富的外圍接口,有極強的擴展能力?;谒x的芯片設(shè)計出的系統(tǒng)總體框圖如圖1所示。
圖1 系統(tǒng)總體設(shè)計框圖
其中A/D轉(zhuǎn)換模塊選擇的是Nextchip公司生產(chǎn)的NVP6134C芯片,共使用了4個NVP6134C芯片,每個芯片可將4路模擬視頻信號采樣轉(zhuǎn)換為數(shù)字視頻信號。每個A/D芯片傳輸?shù)囊曨l流通過指定的通道傳入Hi3521A芯片。
Flash模塊用于存儲Bootloader、啟動環(huán)境變量、Linux內(nèi)核、文件系統(tǒng)等數(shù)據(jù),系統(tǒng)掉電后數(shù)據(jù)不會丟失。DDR為內(nèi)存模塊,用來控制應用程序的運行以及臨時視頻信息的存放。
WiFi模塊選擇的是RTL8211EG芯片,使用RGMII接口模式與主芯片Hi3521A相連。對其進行交叉編譯,本系統(tǒng)可以通過無線網(wǎng)絡(luò)進行數(shù)據(jù)傳輸。
系統(tǒng)上電工作時,首先視頻采集端通過NVP6134C芯片將16路模擬攝像頭采集到的視頻流進行A/D采樣,轉(zhuǎn)換為數(shù)字視頻信號;其次主芯片的VI端接收轉(zhuǎn)換完成的視頻流,并對數(shù)據(jù)進行裁剪、縮放等預處理;再次對視頻流進行H.264編碼;最后將視頻輸出到屏幕顯示。
本文的多路視頻采集系統(tǒng)是基于Hi3521A及其外圍設(shè)備來進行開發(fā)的,需要完成視頻圖像的采集、處理及傳輸?shù)裙δ?,它采用了以下幾個功能模塊來設(shè)計:系統(tǒng)時鐘及復位模塊、視頻采集模塊、存儲模塊、電源模塊[2]。
通過Hi3521A芯片內(nèi)部的反饋電路與外部的24 MHz晶體振蕩電路一起構(gòu)成系統(tǒng)時鐘電路。同時,Hi3521A芯片內(nèi)置RTC,要使其正常工作,單板還需要給RTC提供時鐘電路。
在系統(tǒng)運行過程中,可能會因為各種干擾使系統(tǒng)出現(xiàn)異常,不能正常工作,這時設(shè)置復位電路就顯得十分重要,它能使系統(tǒng)在出現(xiàn)異常時重新初始化系統(tǒng),使系統(tǒng)重新工作。Hi3521A可通過判斷POR_ENABLE引腳在上電時的狀態(tài)來選擇內(nèi)部復位或外部復位。AB9引腳具備WDG_RSTN和SYS_RSTN_OUT兩種功能。當Hi3521A芯片使用內(nèi)部復位時,AB9引腳為SYS_RSTN_OUT功能;當Hi3521A芯片使用外部復位時,AB9引腳為WDG_RSTN功能。系統(tǒng)時鐘和復位設(shè)計電路如圖2所示。
圖2 系統(tǒng)時鐘和復位設(shè)計電路
在本系統(tǒng)中,主芯片Hi3521A的視頻輸入端有4個VI設(shè)備,每個VI設(shè)備有4個VI視頻物理通道,共包含16個VI視頻物理通道。為了實現(xiàn)對16路視頻的采集,使用了4個A/D轉(zhuǎn)換器,每個A/D轉(zhuǎn)換器對4路視頻信號進行采樣轉(zhuǎn)換為數(shù)字視頻信號,此時數(shù)字視頻信號采用的是YUV格式,采樣格式為4:2:2,即量度信道采樣率為色度信道的兩倍。Hi3521A通過BT.656對時序進行解析,并將解析后的視頻數(shù)據(jù)傳入物理通道。輸入設(shè)備解析后得到的視頻數(shù)據(jù)通過視頻的物理通道把視頻數(shù)據(jù)輸出到DDR。在真正將數(shù)據(jù)輸出到DDR之前,它可以實現(xiàn)裁剪、遮擋、水平垂直縮小和水平垂直翻轉(zhuǎn)等功能,其綁定關(guān)系如圖3所示,其中,Dev為設(shè)備,Chn為通道。
圖3 設(shè)備與通道綁定關(guān)系圖
存儲模塊包含ROM和RAM兩個部分,其中ROM采用Flash方式存儲。Flash閃存可以快速讀取數(shù)據(jù),并且系統(tǒng)掉電后數(shù)據(jù)不會丟失,因此用來存儲Bootloader、啟動環(huán)境變量、Linux內(nèi)核、文件系統(tǒng)等數(shù)據(jù)。目前Flash主要有兩種NOR Flash和NAND Flash,本系統(tǒng)同時使用了NOR Flash和NAND Flash兩種芯片,由于用戶不能直接運行NAND Flash上的代碼,所以使用NOR Flash用來運行啟動代碼,由于NAND Flash是以一次讀取一塊形式進行的,一般一次讀取512個字節(jié),所以采用NAND Flash進行讀取,這樣在很大程度上節(jié)約了成本。
RAM使用的是DDR3芯片,用來加載ROM中的信息,并存儲處理信息時產(chǎn)生的中間數(shù)據(jù)。在DDR3內(nèi)存中,一部分是由操作系統(tǒng)管理的,叫做OS內(nèi)存;另一部分是供媒體業(yè)務(wù)單獨使用的內(nèi)存,叫做MMZ內(nèi)存。其中OS內(nèi)存大小可以通過bootargs進行配置。
本系統(tǒng)核心芯片Hi3521A需要多種不同的輸入電壓為其供電,其中內(nèi)核所需電壓值為1.1 V,CPU電壓為1.25 V,I/O電壓為3.3 V,DDR3 SDRAM電壓為1.5 V。本系統(tǒng)的輸入電壓為12 V,系統(tǒng)的電源電路通過采用穩(wěn)壓芯片MP1494S和MP1495S來實現(xiàn)這4種不同電壓的輸出。
系統(tǒng)硬件設(shè)計完成以后需要進行軟件環(huán)境的開發(fā)和應用程序的設(shè)計。本系統(tǒng)主要包括主機端和目標板端的設(shè)計,核心芯片Hi3521A通過串口和網(wǎng)線與PC機相連,在PC機上安裝一臺虛擬機,且虛擬機使用Linux系統(tǒng)來對開發(fā)板進行開發(fā)。
系統(tǒng)軟件主要包括4個部分:Bootloader、Linux內(nèi)核、Linux文件系統(tǒng)以及應用程序,層次結(jié)構(gòu)如圖4所示。
圖4 系統(tǒng)軟件層次結(jié)構(gòu)圖
嵌入式Linux操作系統(tǒng)內(nèi)核的作用是對硬件進行管理,而應用程序是不直接作用于內(nèi)核的,它必須通過操作系統(tǒng)提供的系統(tǒng)調(diào)用接口作用于內(nèi)核,然后內(nèi)核作用于硬件。
系統(tǒng)分為主機端和目標板端,其中主機端開發(fā)環(huán)境的搭建需要建立Linux服務(wù)器、Windows軟件開發(fā)和Hi3521A嵌入式開發(fā)平臺三個部分的連接。在本系統(tǒng)中,Linux服務(wù)器和Windows工作臺使用一臺PC機,即在虛擬機下安裝一個Linux操作系統(tǒng),并將其連接在同一個局域網(wǎng)內(nèi)。Linux服務(wù)器用來建立交叉編譯環(huán)境與開發(fā)板進行交互,Windows工作臺主要用于登錄Linux服務(wù)器,完成Linux下的開發(fā)工作以及通過串口查看開發(fā)板的調(diào)試和運行信息。
本系統(tǒng)主要包括3個方面的設(shè)計:U-boot、Linux內(nèi)核和根文件系統(tǒng)。具體步驟為:Linux開發(fā)環(huán)境的搭建、U-boot的移植、Linux內(nèi)核的移植以及根文件系統(tǒng)的定制。使用Bootloader的版本為Ubuntu-12.04-x6-phoenix,使用Linux-3.10.y版本的內(nèi)核,以及使用JFFS2制作鏡像文件系統(tǒng)。
海思Hi3521A的SDK提供了多媒體軟件平臺(Media Process Platform,MPP),MPP提供的接口可用于視頻應用軟件快速開發(fā)。
首先在虛擬機中將MPP拷貝到SDK下的指定目錄中,對MPP進行編譯,即到mpp/sample下執(zhí)行:make clean; make。開發(fā)板上電并設(shè)置開發(fā)板IP地址,到mpp的ko 下運行./load3521a-i,加載固件,最后到mpp/sample/vio下執(zhí)行./sample_vio 2,即可在屏幕上顯示攝像信息。具體步驟如圖5所示。
圖5 Hi3521A運行MPP流程圖
系統(tǒng)采用像素為720P的AHD攝像頭進行圖像采集,HDMI接口連接屏幕輸出,視頻輸出的結(jié)果如圖6所示。
圖6 視頻輸出結(jié)果