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