提出了基于FPGA的視頻監(jiān)控系統(tǒng)整體實現(xiàn)方案。首先介紹了在FPGA中設(shè)計I2C總線配置模塊對視頻處理芯片進行合理的配置,然后簡單介紹了視頻信號的處理過程。經(jīng)過處理后的視頻信號通過乒乓機制存儲到SDRAM緩存,最后按照VGA的時序送到顯示器正常顯示。本設(shè)計采用VerilogHDL語言編寫程序,并用Modelsim軟件進行仿真,采用ISE下載到Virtex-II XC2VP30 FFG896開發(fā)板實現(xiàn)了視頻監(jiān)控功能。
一個典型的視頻監(jiān)視系統(tǒng)一般由光源、攝像頭、視頻轉(zhuǎn)換單元、數(shù)字圖像傳輸處理及控制系統(tǒng)、輸入/輸出單元和監(jiān)視器等部分組成。現(xiàn)存的視頻監(jiān)控系統(tǒng)主要由工控機和視頻圖像采集卡構(gòu)成,存在系統(tǒng)穩(wěn)定性差、價格高昂等缺點。不斷發(fā)展的FPGA具有設(shè)計周期短、靈活、可提高系統(tǒng)的可靠性和集成度的優(yōu)點;Verilog HDL語言類似于C語言,靈活且容易上手,本文結(jié)合這兩者的優(yōu)點,提出了基于FPGA的視頻監(jiān)控系統(tǒng)。1 系統(tǒng)模塊劃分 本設(shè)計的視頻監(jiān)控系統(tǒng)的大部分設(shè)計工作都集中在對FPGA的編程開發(fā)上,通過分析可將系統(tǒng)分為以下5個功能模塊,如圖1所示。
(1)視頻接口模塊:視頻采集芯片具有多種采集方式,本設(shè)計中FPGA通過I2C總線對其內(nèi)部寄存器進行配置,使其按照一定的格式進行采樣。 (2)視頻變換模塊:對得到的視頻流進行解碼,識別出行、場同步信號,并且根據(jù)需要選擇采集圖像的大小,進而變換成RGB格式的圖像數(shù)據(jù),以便于后續(xù)顯示。 (3)異步FIFO模塊:由于視頻處理器和SDRAM工作在不同的時鐘頻率下,會出現(xiàn)讀寫速度不匹配的情況,解決的方法是在兩者之間添加一塊異步FIFO。 (4)圖像存儲模塊:將解碼后的數(shù)據(jù)經(jīng)由一個乒乓機制依次存放在兩片SDRAM中,每個SDRAM存放一幅圖像,通過乒乓機制使得兩塊存儲區(qū)域交替進行存儲輸入和顯示輸出,避免等待,提高速度。 (5)VGA控制模塊:根據(jù)VGA的工業(yè)參數(shù),產(chǎn)生相應(yīng)的行同步信號和場所同步信號,并在適當時刻送入VGA進行顯示。
2 系統(tǒng)模塊的具體設(shè)計2.1 視頻采集模塊
視頻采集芯片SAA7113通過I2C總線對其內(nèi)部寄存器的不同配置可以對4路輸入進行轉(zhuǎn)換,輸入可以為4路CVBS或2路S視頻(Y/C)信號,輸出8 bit“VPO”總線,為標準的ITU 656、YUV 4:2:2格式。I2C總線系統(tǒng)由兩根總線SCL(串行時鐘)和SDA(串行數(shù)據(jù))線構(gòu)成,I2C總線傳輸過程包括起始信號、傳輸包頭、傳輸數(shù)據(jù)、結(jié)束信號4個部分。整個模塊可以分為4種狀態(tài):普通狀態(tài)、等待ACK狀態(tài)、寫數(shù)據(jù)狀態(tài)和結(jié)束狀態(tài)。I2C總線數(shù)據(jù)傳送時序如圖2所示。
2.2 視頻變換模塊 視頻變換模塊是對得到的數(shù)字視頻流進行解碼,識別出行、場同步信號,并且將YUV數(shù)據(jù)格式變換成RGB格式的圖像數(shù)據(jù),以便后續(xù)顯示。2.2.1 ITUR 656解碼 PAL制式的圖像一幀有625行,其中有效圖像數(shù)據(jù)572行,其他為場消隱信號;每行圖像數(shù)據(jù)包含720個像素。因此,PAL制電視信號的分辨率為720&TImes;572。PAL制電視信號每秒掃描25幀圖像,每幀包括奇、偶兩場圖像。1幀圖像分為奇數(shù)場和偶數(shù)場,每場各有286行有效圖像。
SAA7113 輸出的數(shù)據(jù)格式為標準ITU.656、YUV4∶2∶2的視頻數(shù)據(jù)。每個像素點亮度信號占8 bit,兩個色度信號共占16 bit。每個像素都有自己的亮度數(shù)據(jù)Y,但是輸出的數(shù)據(jù)中每兩個相鄰的像素共用一組色差數(shù)據(jù)Cb、Cr。 ITU656每行的數(shù)據(jù)結(jié)構(gòu)如圖3所示, 每行數(shù)據(jù)包含水平控制信號和YCbCr視頻數(shù)據(jù)信號。視頻數(shù)據(jù)字是以27 MB/s的速率傳送的, 其順序是:Cb,Y,Cr,Y,Cb,Y,Cr,…。每行開始的288 B為行控制信號, EAV信號意思是有效視頻結(jié)束,SAV信號意思是有效視頻起始。
2.2.2 YUV4:2:2變換為YUV4:4:4 YUV4:2:2變換為YUV4:4:4主要是將串行數(shù)據(jù)轉(zhuǎn)化為并行數(shù)據(jù),并對YCbCr(4:2:2)視頻數(shù)據(jù)進行插值,得到Y(jié)CbCr(4:4:4)視頻數(shù)據(jù),分頻得到13.5 MHz的像素時鐘。
2.2.3 色度空間轉(zhuǎn)換
色彩空間變換公式為: R=1.164(Y-16)+1.596(Cr-128) G=1.164(Y-16)-0.813(Cr-128)-0.392(Cb-128) B=1.164(Y-16)+2.017(Cb-128)
2.3 異步FIFO模塊
FIFO是一種先進先出存儲器,主要用來緩沖數(shù)據(jù)和隔離時鐘或相位差異。其使用一個雙端口存儲器存放數(shù)據(jù),數(shù)據(jù)發(fā)送方在一端寫入數(shù)據(jù),接收方在另一端讀出數(shù)據(jù)。首先要利用FPGA的RAM資源例化一塊雙口RAM,需要同時對其進行讀寫操作,使其輸入和輸出以及深度按照設(shè)計要求大小進行設(shè)定,而FIFO控制器有復(fù)位、輸入輸出數(shù)據(jù)、讀寫時鐘、讀寫使能和空滿標志端口。其設(shè)計原理框圖如圖4所示。
2.4 SDRAM控制模塊2.4.1 SDRAM工作的原理簡介
一個SDRAM中包含幾個BANK,每個BANK的存儲單元是按行和列尋址的。由于這種特殊的存儲結(jié)構(gòu), SDRAM的工作原理有以下特點:(1)SDRAM在上電100 μs~200 μs 后,必須由一個初始化過程來配置SDRAM的模式寄存器,模式寄存器決定SDRAM的工作模式;(2)SDRAM的存儲單元可以理解為一個電容,總是傾向于放電,因此必須有定時的刷新周期以避免數(shù)據(jù)丟失,刷新周期可由最小刷新周期+時鐘周期計算獲得;(3)SDRAM的具體控制命令由一些專用控制引腳和地址輔助完成。
2.4.2 SDRAM控制器總體設(shè)計
SDRAM控制器與外部的接口示意圖如圖5所示??刂破髯蠖私涌谛盘枮榕cFPGA相連的系統(tǒng)控制接口信號,右端接口信號均為直接與DSRAM對應(yīng)管腳相連的信號。根據(jù)SDRAM的各個接口信號、時序要求和工作模式,將該SDRAM控制器的內(nèi)部進一步細化為多個功能模塊,包括系統(tǒng)控制接口模塊、CMD命令解析模塊、命令響應(yīng)模塊和數(shù)據(jù)通路模塊。系統(tǒng)控制接口模塊用于接收系統(tǒng)的控制信號,進而產(chǎn)生不同的CMD命令組合;CMD命令解析模塊用于接收CMD命令并解碼成操作指令;命令響應(yīng)模塊用于接收操作指令并產(chǎn)生SDRAM的操作運作;數(shù)據(jù)通路模塊用于控制數(shù)據(jù)的有效輸入輸出。
2.5 VGA控制模塊2.5.1 視頻數(shù)模轉(zhuǎn)換器FMS3818
FMS3818是一種低成本的視頻數(shù)模轉(zhuǎn)換器(DAC),能夠適應(yīng)具有180 MHz最大像素時鐘的圖形和視頻應(yīng)用。VGA_OUT_BLANK_Z信號輸入覆蓋RGB輸入和空白顯示輸出。當FPGA沒有對XSGA輸出編程時,這個信號通過下拉電阻保持顯示空白,而不需要由用戶控制。
2.5.2 VGA標準簡介
VGA是一種標準的顯示接口,采用逐行掃描的方式使圖像投射到屏幕上,標準VGA顯示的場頻為60 Hz,行頻為31.5 kHz。水平時序中包括水平脈沖寬度、水平同步脈沖結(jié)束到水平門的開始之間的寬度和一個完整的視頻行的寬度幾個時序參數(shù)。垂直時序與水平時序類似,包含垂直同步脈沖寬度、垂直同步結(jié)束到垂直門的開始之間的寬度、一個視頻幀可視區(qū)域的寬度和一個完整的視頻幀的寬度。
3 系統(tǒng)采用的硬件連接
攝像頭采集光源信號,F(xiàn)PGA通過I2C向SAA7113發(fā)送控制信息,使其按一定的格式進行采樣,轉(zhuǎn)換成RGB格式后,通過FIFO緩沖存儲到SDRAM,最后經(jīng)視頻數(shù)模轉(zhuǎn)換器FMS3818送到VGA顯示器進行顯示。系統(tǒng)硬件連接示意圖如圖6所示。
本設(shè)計采用從頂向下的分析方法,根據(jù)系統(tǒng)的功能需求分析系統(tǒng)的各個功能模塊,然后對各個模塊進行具體設(shè)計。將數(shù)字視頻技術(shù)與FPGA設(shè)計理論結(jié)合起來,采用Verilog HDL語言,系統(tǒng)具有設(shè)計靈活、易于修改等優(yōu)點,同時可與其他CPU協(xié)作完成進一步的設(shè)計,例如添加一定的算法可以實現(xiàn)相應(yīng)的模式識別等任務(wù)。