范超 趙琳 李真
摘要:該文設(shè)計(jì)一種基于FPGA的視頻采集系統(tǒng)。在本系統(tǒng)中FPGA作為系統(tǒng)的核心控制部件,控制圖像傳感器MB86S02進(jìn)行視頻采集,并通過(guò)SDRAM控制器將采集的視頻信息存儲(chǔ)在外部高速SDlLAM中以備后續(xù)使用。系統(tǒng)采用模塊化的設(shè)計(jì)方法,將整個(gè)系統(tǒng)劃分為視頻采集單元和視頻存儲(chǔ)單元,并在此基礎(chǔ)上進(jìn)行各功能模塊的設(shè)計(jì)以及各功能模塊間數(shù)據(jù)接口的設(shè)計(jì)。
關(guān)鍵詞:視頻采集;FPGA
1概述
在數(shù)字圖像處理中,圖像的采集是第一步,它的好壞直接影響到圖像處理的性能。視頻信號(hào)中除了包含圖像信號(hào)外,還包括了行同步信號(hào)、行消隱信號(hào)、場(chǎng)同步信號(hào)、場(chǎng)消隱信號(hào)以及槽脈沖信號(hào)、前均衡脈沖、后均衡脈沖等,因此對(duì)視頻信號(hào)的A/D轉(zhuǎn)換電路非常復(fù)雜。
本文采用富士通公司的MB86S02圖像傳感器作為視頻采集器,在FPGA的控制下進(jìn)行視頻采集,并通過(guò)乒乓操作實(shí)現(xiàn)視頻數(shù)據(jù)的存儲(chǔ),系統(tǒng)總體框圖如圖1所示。MB86S02片內(nèi)集成了圖像采集的所有前端處理,可以直接輸出數(shù)字信號(hào),大大簡(jiǎn)化了圖像應(yīng)用系統(tǒng)的設(shè)汁。
2視頻采集模塊設(shè)計(jì)
本系統(tǒng)的視頻采集模塊由MB86S02圖像傳感器和FPGA芯片組成,MB86S02在FPGA的控制下進(jìn)行視頻信號(hào)的采集。首先需要對(duì)MB86S02的寄存器進(jìn)行配置,本系統(tǒng)中MB86S02寄存器采用默認(rèn)值。MB86S02的硬件接口如圖2所示。
如圖2所示,F(xiàn)PGA通過(guò)控制信號(hào)和視頻信號(hào)連接MB86S02圖像傳感器和外部高速SDRAM。FPGA控制MB86S02圖像傳感器進(jìn)行視頻采集,并通過(guò)SDRAM控制器將采集的視頻信息存儲(chǔ)到外部高速SDRAM中,以備后續(xù)使用。
圖像采集模塊接口信號(hào)設(shè)計(jì)如圖3所示,在圖3模塊接口中,由MB86S02芯片輸出引腳提供的信號(hào)如下:
1、數(shù)據(jù)線(D0…7):按次序輸出格式為YUV422的圖像數(shù)據(jù),寬度為8bits;
2、數(shù)據(jù)同步時(shí)鐘(PCLK):每個(gè)時(shí)鐘周期,當(dāng)高電平時(shí),就輸出一個(gè)8位圖像數(shù)據(jù);
3、有效幀信號(hào)(AVF):在節(jié)能模式下使用,“1”代表幀有效,“0”代表幀無(wú)效,在普通模式下總為“1”;
4、行同步信號(hào)(AVH):“1”代表行數(shù)據(jù)有效;
5、幀同步信號(hào)(AVF):“1”代表幀數(shù)據(jù)有效。
接口的其他信號(hào)還包括:
1、24M主時(shí)鐘(CCLK):平臺(tái)主時(shí)鐘;
2、工作使能(ccs):“0”開(kāi)始采集,“1”停止采集;
3、數(shù)據(jù)輸出(CDAO):輸出有效圖像數(shù)據(jù),寬度為8bhs;
4、數(shù)據(jù)同步信號(hào)(CPS):下降沿輸出有效數(shù)據(jù)。
3視頻緩存模塊設(shè)計(jì)
針對(duì)視頻圖像數(shù)據(jù)量大的特點(diǎn),系統(tǒng)需要對(duì)采集到的視頻圖像信息進(jìn)行緩沖處理,緩沖電路常采用以下幾種實(shí)現(xiàn)方式:
1)雙口RAM結(jié)構(gòu)。雙口RAM具有兩套完全獨(dú)立的數(shù)據(jù)地址線,可同時(shí)對(duì)該存儲(chǔ)器進(jìn)行隨機(jī)訪問(wèn);
2)FIFO結(jié)構(gòu)。FIFO即先入先出隊(duì)列,可以進(jìn)行雙端操作,數(shù)據(jù)先進(jìn)先出,不能進(jìn)行隨機(jī)性訪問(wèn);
3)乒乓緩存結(jié)構(gòu)。乒乓緩存結(jié)構(gòu)的工作原理如圖3.1所示,輸人數(shù)據(jù)流通過(guò)輸人數(shù)據(jù)選擇單元等時(shí)地將數(shù)據(jù)流分配到兩個(gè)數(shù)據(jù)緩沖區(qū)。在第一個(gè)緩沖周期,將輸入的數(shù)據(jù)流緩存到數(shù)據(jù)緩沖模塊1上。在第二個(gè)緩沖周期,通過(guò)輸入數(shù)據(jù)選擇單元的切換,將輸入的數(shù)據(jù)流緩存到數(shù)據(jù)緩沖模塊2上。同時(shí),將數(shù)據(jù)緩存模塊1緩存的第一個(gè)周期的數(shù)據(jù)通過(guò)輸出數(shù)據(jù)選擇單元的選擇,送到運(yùn)算處理單元進(jìn)行處理。在第三個(gè)緩沖周期,再次切換數(shù)據(jù)的輸入與輸出緩沖模塊。如此循環(huán),周而復(fù)始。
由于大容量的RAM和FIFO價(jià)格昂貴,性?xún)r(jià)比不高,為滿足系統(tǒng)的實(shí)時(shí)性要求,本系統(tǒng)采用SDRAM實(shí)現(xiàn)的乒乓緩存結(jié)構(gòu)進(jìn)行數(shù)據(jù)緩存。如圖4所示數(shù)據(jù)緩存部分是數(shù)據(jù)輸入與數(shù)據(jù)處理之間的通道,輸入的數(shù)據(jù)首先經(jīng)過(guò)緩存再進(jìn)行數(shù)據(jù)處理,數(shù)據(jù)緩存部分的設(shè)計(jì)是確保數(shù)據(jù)輸入與數(shù)據(jù)處理間無(wú)縫銜接的關(guān)鍵。
如圖4所示,乒乓操作的工作原理是通過(guò)輸入數(shù)據(jù)選擇單元將輸人數(shù)據(jù)流存儲(chǔ)到兩個(gè)數(shù)據(jù)緩存模塊中并通過(guò)輸出數(shù)據(jù)選擇單元分別從兩個(gè)數(shù)據(jù)緩存模塊中讀取數(shù)據(jù)。
乒乓操作多采用兩片存儲(chǔ)器芯片來(lái)實(shí)現(xiàn),本系統(tǒng)通過(guò)對(duì)SDRAM的不同BANK分別執(zhí)行讀寫(xiě)操作在一片SDRAM芯片上實(shí)現(xiàn)了乒乓操作。SDRAM共分為4個(gè)BANK,可以將SDRAM的不同BANK分別作為讀寫(xiě)緩存,分別執(zhí)行讀寫(xiě)操作。當(dāng)讀取第一幀圖像時(shí)使用SDRAM的1、2 BANK作為讀緩存,3、4 BANK為寫(xiě)緩存,一幀圖像讀寫(xiě)完畢時(shí)切換BANK的讀寫(xiě)操作,讀取第二幀圖像時(shí)SDRAM的3、4 BANK切換為讀緩存,1、2 BANK切換為寫(xiě)緩存,這樣即在一片SDRAM芯片上實(shí)現(xiàn)了讀寫(xiě)緩存。由于SDRAM只有1組數(shù)據(jù)/地址線,所以不能同時(shí)對(duì)SDRAM進(jìn)行讀寫(xiě)操作,設(shè)計(jì)中采用分時(shí)的方式,通過(guò)在控制器中設(shè)計(jì)了一個(gè)指令計(jì)數(shù)器來(lái)切換讀寫(xiě)操作,實(shí)現(xiàn)乒乓操作。SDRAM控制器狀態(tài)轉(zhuǎn)換圖如圖5所示。
4結(jié)論
本設(shè)計(jì)方案已經(jīng)經(jīng)過(guò)了硬件驗(yàn)證,達(dá)到了預(yù)定的設(shè)計(jì)要求,實(shí)現(xiàn)了大數(shù)據(jù)量的實(shí)時(shí)采集及存儲(chǔ)功能,為圖像的后續(xù)處理打下良好的基礎(chǔ)。