基于CMOS圖像傳感器的視頻采集系統(tǒng)設(shè)計(jì)
2.4 緩存控制模塊
靜態(tài)隨機(jī)存儲(chǔ)器(Static Random Access Memory,SRAM)和同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(Synchronous DynamicRandom Access Memory,SDRAM)是目前常用的2種存儲(chǔ)器,2種存儲(chǔ)器各有優(yōu)劣,而SRAM相對(duì)于SDRAM時(shí)序控制較為簡(jiǎn)單,因此本系統(tǒng)采用SRAM作為數(shù)據(jù)緩存。緩存控制模塊主要實(shí)現(xiàn)將轉(zhuǎn)換后的數(shù)據(jù)緩存在SRAM寫FIFO中以及將從SRAM讀出的數(shù)據(jù)緩存在SRAM讀FIFO中,而前端數(shù)據(jù)采集和處理是用OV7670輸入的25 MHz的像素時(shí)鐘作為主控時(shí)鐘的,而SRAM的讀寫時(shí)鐘為100 MHz,而后端VGA控制模塊的時(shí)鐘也為25 MHz,對(duì)于數(shù)據(jù)在異頻的時(shí)鐘域之間的傳輸,需要利用例化2個(gè)異步FIFO模塊fifo_in和fifo_out作為數(shù)據(jù)在不同時(shí)鐘域之間的緩沖。FIFO通過IP核實(shí)現(xiàn),存儲(chǔ)寬度為16 b,存儲(chǔ)深度選擇512。緩存控制模塊的框圖如圖5所示。利用FIFO解決異頻時(shí)鐘域數(shù)據(jù)同步的方法是用上級(jí)隨路時(shí)鐘寫上級(jí)數(shù)據(jù),然后用本級(jí)時(shí)鐘讀出數(shù)據(jù)。由于時(shí)鐘頻率不同,因此兩個(gè)端口的數(shù)據(jù)吞吐率不一致,設(shè)計(jì)時(shí)要開好緩沖區(qū),并通過監(jiān)控確保數(shù)據(jù)不會(huì)溢出。本文引用地址:http://www.ex-cimer.com/article/159779.htm
2.4.1 fifo_in模塊
在本系統(tǒng)中用數(shù)據(jù)采集與格式轉(zhuǎn)換模塊處理后的16位圖像數(shù)據(jù)作為fifo_in模塊的輸入數(shù)據(jù),每次往FIFO中寫一行數(shù)據(jù)(320個(gè)16位數(shù)據(jù))OV7670輸入的像素時(shí)鐘作為寫時(shí)鐘,行有效cam_href作為FIFO寫使能,F(xiàn)IFO的讀時(shí)鐘rdclk為100 MHz,也是SRAM的讀寫時(shí)鐘。FIFO讀使能產(chǎn)生是通過判斷FIFO寫使能下降沿來生成一個(gè)計(jì)數(shù)值為320的計(jì)數(shù)器,在計(jì)數(shù)期間將讀使能置高,將數(shù)據(jù)由FIFO緩存到SRAM。因?yàn)樵?20個(gè)數(shù)據(jù)寫完后有一段時(shí)間行有效為低,由于SRAM讀速率遠(yuǎn)大于上一級(jí)寫速率,可以充分利用這段時(shí)間將數(shù)據(jù)存入SRAM。
2.4.2 fifo_out模塊
由于采用單片SRAM,SRAM的讀寫要避免沖突。因此通過判斷fifo_out模塊中的wrusedw(FIFO中剩余的數(shù)據(jù)數(shù)量)來控制FIFO的讀/寫。當(dāng)wrusedw的值小于192時(shí),將一個(gè)標(biāo)志位fifo_empty置高。為避免讀寫沖突,將SRAM讀使能的產(chǎn)生分為2種情況,在幀有效信號(hào)置高期間,此時(shí)一幀圖像的數(shù)據(jù)正在由圖像傳感器輸出,SRAM會(huì)存在寫入數(shù)據(jù)的情況,只有在fifo_empty置高和SRAM寫使能下降沿同時(shí)滿足的情況下讀使能才會(huì)置高,而在幀有效信號(hào)為低期間,SRAM不會(huì)寫入數(shù)據(jù),只需在fifo_empty置高時(shí)一個(gè)計(jì)數(shù)值為320的計(jì)數(shù)器開始計(jì)數(shù),在汁數(shù)期間將讀使能置高即可。而FIFO的讀使能來自VGA控制模塊,在需要輸出圖像數(shù)據(jù)到VGA顯示器上顯示時(shí),VGA控制模塊讀FIFO使能置高,來讀取FIFO中的圖像數(shù)據(jù)。
2.5 VGA控制模塊
VGA(Video Graphics Array)即視頻圖形陣列,是IBM在1987年隨PS/2機(jī)一起推出的一種視頻傳輸標(biāo)準(zhǔn),具有分辨率高、顯示速率快、顏色豐富等優(yōu)點(diǎn),在彩色顯示器領(lǐng)域得到了廣泛的應(yīng)用。
VGA控制模塊主要是產(chǎn)生符合要求的VGA時(shí)序,使得視頻圖像數(shù)據(jù)能夠正確地在VGA顯示器上進(jìn)行顯示。本系統(tǒng)中VGA控制模塊產(chǎn)生的是分辨率為640×480,刷新率為60 Hz的VGA時(shí)序,并將從SRAM讀出的16位像素信號(hào)分成5位red信號(hào)、6位green信號(hào)和5位blue信號(hào),輸出到D/A轉(zhuǎn)換電路。
VGA控制模塊中主要利用行同步計(jì)數(shù)器hcnt和場(chǎng)同步計(jì)數(shù)器vcnt來分別產(chǎn)生行同步和場(chǎng)同步。時(shí)序主要參考分辨率為640×480,刷新率為60 Hz的VGA工業(yè)標(biāo)準(zhǔn)時(shí)序,如表1所示。
評(píng)論