葉倩
摘 要:隨著經(jīng)濟(jì)和社會(huì)的發(fā)展,無論是在公共還是在個(gè)人空間,人們的安全意識(shí)越來越高,傳統(tǒng)的鎖已不能滿足其需求,現(xiàn)在市面上的各種監(jiān)控系統(tǒng)種類繁多,大多采用單片機(jī)之類的微處理器實(shí)現(xiàn),監(jiān)控往往不僅需要報(bào)警而且要求對(duì)視頻進(jìn)行采集和存儲(chǔ),對(duì)于監(jiān)控視頻的大數(shù)據(jù)量處理,對(duì)于單片機(jī)來講處理能力往往不足,采用并行的FPGA技術(shù)作為處理器將會(huì)提升性能,解決數(shù)據(jù)處理的瓶頸問題,本文設(shè)計(jì)并實(shí)現(xiàn)一種采用FPGA技術(shù)實(shí)現(xiàn)的視頻監(jiān)控系統(tǒng),經(jīng)過測(cè)試驗(yàn)證本系統(tǒng)具有較高的穩(wěn)定性,表現(xiàn)出了較好的性能。
關(guān)鍵詞:FPGA 視頻監(jiān)控;并行處理;VGA顯示
中圖分類號(hào): TN4 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1673-1069(2016)17-156-2
1 視頻監(jiān)控系統(tǒng)設(shè)計(jì)
本視頻監(jiān)控系統(tǒng)主要由圖像采集終端,視頻轉(zhuǎn)換接口,VGA顯示終端組成,傳感器OV5620采集到現(xiàn)實(shí)景物后,將生成的RAW數(shù)據(jù)流由ITU 數(shù)據(jù)輸出端口發(fā)送給視頻轉(zhuǎn)換接口。視頻轉(zhuǎn)換接口將ITU 數(shù)據(jù)輸入端口送來的RAW數(shù)據(jù)流轉(zhuǎn)換成 RGB 數(shù)據(jù)流發(fā)送,通過VGA端口發(fā)送給顯示終端顯示。OV5620輸出圖像的最大分辨率為2592 ×1944。
2 系統(tǒng)硬件設(shè)計(jì)
硬件電路主要包括CMOS攝像頭傳感器,數(shù)據(jù)采集模塊,SDRAM存儲(chǔ)模塊,VGA視頻輸出接口模塊。
在現(xiàn)實(shí)景物的采集與顯示過程中,視頻轉(zhuǎn)換接口功能的實(shí)現(xiàn)通過以下步驟來完成:
①對(duì)采集到的RAW數(shù)據(jù)流進(jìn)行轉(zhuǎn)換。視頻轉(zhuǎn)換接口收到的是像素的RAW值,因此需要將每個(gè)像素的色彩值由RAW空間轉(zhuǎn)換到 RGB空間,然后再對(duì)RGB進(jìn)行數(shù)據(jù)平均,輸出RGB數(shù)據(jù),實(shí)現(xiàn)色彩空間的轉(zhuǎn)換。②將轉(zhuǎn)換后的每個(gè)像素的RGB值寫入存儲(chǔ)器中。由于視頻的轉(zhuǎn)換接口和VGA接口的視頻數(shù)據(jù)流工作的時(shí)鐘域是不同的,需要SDRAM來作為緩存,存儲(chǔ)一幀圖像的數(shù)據(jù),以供VGA顯示器顯示。③從存儲(chǔ)器中讀出像素的RGB值,并將其轉(zhuǎn)換成VGA模擬信號(hào)值。由于FPGA 內(nèi)部沒有D/A轉(zhuǎn)換單元,因此不能通過 FPGA 來直接產(chǎn)生模擬信號(hào),還需要另外添加專門的圖像 D/A芯片(ADV7123)來完成模擬信號(hào)的產(chǎn)生。系統(tǒng)工作時(shí),F(xiàn)PGA 將從SDRAM 存儲(chǔ)器中讀出的 RGB值送至圖像DA芯片進(jìn)行數(shù)模轉(zhuǎn)換變成模擬信號(hào)值VGA接口直接輸出,系統(tǒng)就能將圖像在VGA顯示器上直接顯示。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 攝像頭采集圖像模塊程序設(shè)計(jì)
攝像頭的采集過程和VGA的顯示恰好是個(gè)相反的過程,VGA的顯示是由FPGA產(chǎn)生行列時(shí)序,供給D/A轉(zhuǎn)換器,產(chǎn)生驅(qū)動(dòng)VGA顯示器的模擬信號(hào)。而攝像頭的采集圖像是攝像頭自動(dòng)產(chǎn)生行列信號(hào),用FPGA進(jìn)行采集就行。在對(duì)攝像頭進(jìn)行采集之前,需要用SCCB協(xié)議給攝像頭進(jìn)行配置,SCCB協(xié)議兼容I2C協(xié)議,前者寫數(shù)據(jù)和I2C是一樣的,就是讀數(shù)據(jù)的時(shí)序不一樣。本設(shè)計(jì)中因?yàn)橹粚?duì)攝像頭進(jìn)行配置,只用到了SCCB的寫協(xié)議。
3.2 圖像轉(zhuǎn)換模塊程序設(shè)計(jì)
攝像頭數(shù)據(jù)采集模塊采集到RAW數(shù)據(jù),需要轉(zhuǎn)化為RGB格式的數(shù)據(jù),才能夠驅(qū)動(dòng)攝像頭。10位的RAW數(shù)據(jù)經(jīng)過空間轉(zhuǎn)換把10位的采集數(shù)據(jù)轉(zhuǎn)換為10位的RGB數(shù)據(jù),然后數(shù)據(jù)進(jìn)入第二個(gè)模塊,對(duì)空間轉(zhuǎn)換的10位RGB數(shù)據(jù)進(jìn)行數(shù)據(jù)平均得到R[9..0],G[9..0],B[9..0],然后RGB數(shù)據(jù)經(jīng)過SDRAM進(jìn)行緩存。采用行緩沖+流水線的處理方式,將前一級(jí)抓取到的行數(shù)據(jù)(bayer color pattern),實(shí)時(shí)轉(zhuǎn)換成標(biāo)準(zhǔn)的30位RGB數(shù)據(jù)并進(jìn)行適當(dāng)?shù)南虏蓸樱员阌诤罄^的圖像處理及顯示。
3.3 SDRAM程序設(shè)計(jì)
SDRAM在此系統(tǒng)里,充當(dāng)?shù)氖菆D像緩存的作用,攝像頭將數(shù)據(jù)采集進(jìn)來,將圖像存儲(chǔ)到SDRAM中,然后VGA控制模塊從SDRAM讀出并顯示在VGA顯示器上。核心的代碼如下:
Sdram_Control_4Port u8 ( // HOST Side
.REF_CLK (CLOCK_50),
.RESET_N (1'b1),
.CLK_100OUT (CLOCK_100),
// FIFO Write Side 1
.WR1_DATA ({tCMOS_R,tCMOS_G,tCMOS_B}),
.WR1 (tCMOS_DVAL),
.WR1_ADDR (0),
.WR1_MAX_ADDR (1280*960),
.WR1_LENGTH (9'h100),
.WR1_LOAD (wSYNC),
.WR1_CLK (CMOS_PIXCLK),
// FIFO Read Side 1
.RD1_DATA ({Image_Read_R,Image_Read_G,Image_Read_B}),
.RD1 (VGA_Read_Req),
.RD1_ADDR (0),
.RD1_MAX_ADDR (1280*960),
.RD1_LENGTH (9'h100),
.RD1_LOAD (!DLY_RST_0),
.RD1_CLK (VGA_CTRL_CLK),
// SDRAM Side
.SA (SDR0_ADDR),
.BA (SDR0_BA),
.CS_N (SDR0_CS_N),
.RAS_N (SDR0_RAS_N),
.CAS_N (SDR0_CAS_N),
.WE_N (SDR0_WE_N),
.DQ (SDR0_DQ),
.DQM (SDR0_DQM)
,.SDR_CLK (SDR_CLK)
);
assign SDR0_CLK = SDR_CLK;
wire VGA_Read_Req,VGA_VS;
wire [9:0] Image_Read_R;
wire [9:0] Image_Read_G;
wire [9:0] Image_Read_B;
assign GPIO0[27] = VGA_CTRL_CLK;
assign GPIO0[28] = VGA_VS;
4 系統(tǒng)測(cè)試及結(jié)果
VGA控制模塊負(fù)責(zé)從SDRAM讀取圖像數(shù)據(jù)(RGB),然后驅(qū)動(dòng)D\A轉(zhuǎn)換器ADV7123在VGA顯示器上顯示對(duì)VGA模塊進(jìn)行仿真。
5 總結(jié)
本文從系統(tǒng)設(shè)計(jì),到各個(gè)模塊的軟硬件進(jìn)行了詳細(xì)的設(shè)計(jì),經(jīng)反復(fù)調(diào)試仿真,最終在FPGA平臺(tái)上進(jìn)行實(shí)現(xiàn),充分發(fā)揮了FPGA技術(shù)的并行處理技術(shù),經(jīng)測(cè)試達(dá)到了實(shí)時(shí)有效監(jiān)控的要求。
參 考 文 獻(xiàn)
[1] 潘松,黃繼業(yè),陳龍編著.ENA技術(shù)與VerilogHDL[M].清華大學(xué)出版社,2009.
[2] 潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程[M].第三版.科學(xué)出版社,2008.
[3] 夏宇聞編著.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程(第2版)[M].北京航空航天大學(xué)出版社,2010.
[4] 劉韜,樓興華編著.FPGA數(shù)字電子系統(tǒng)設(shè)計(jì)與開發(fā)實(shí)例導(dǎo)航[M].人民郵電出版社,2005.
[5] 聞見明編著.FPGA芯片在視頻通信實(shí)時(shí)處理中的應(yīng)用[J].警察技術(shù),1994(3)10-11.
[6] 胡瑤榮.基于FPGA的實(shí)時(shí)視頻采集系統(tǒng)[J].電視技術(shù),2005,29(2)81-83.