一種嵌入式的實(shí)時(shí)視頻采集系統(tǒng)設(shè)計(jì)
1 引言
本文引用地址:http://m.butianyuan.cn/article/149558.htm隨著中國(guó)機(jī)器人產(chǎn)業(yè)的迅猛發(fā)展,據(jù)預(yù)測(cè)到2010年,市場(chǎng)容量將超過93.1億人民幣。智能移動(dòng)機(jī)器人是在室外環(huán)境中,將視頻圖像采集回來之后,按照預(yù)先給定的目標(biāo)任務(wù),結(jié)合已知的地理信息做出路徑規(guī)劃,在行駛的過程中能夠不斷感知和判斷周圍的環(huán)境信息,自主地做出各種決策,隨時(shí)調(diào)整自身的行駛狀態(tài)并執(zhí)行相應(yīng)的動(dòng)作和操作[1]。在這個(gè)過程中,視頻采集質(zhì)量的好壞將直接影響整個(gè)系統(tǒng)的運(yùn)行,是進(jìn)行后續(xù)數(shù)字圖像處理的前提條件。因此,必須有高性能的硬件設(shè)備和高質(zhì)量的算法作為基礎(chǔ),實(shí)時(shí)視頻采集才成為可能。本文設(shè)計(jì)并實(shí)現(xiàn)了基于FPGA的嵌入式實(shí)時(shí)視頻采集系統(tǒng)。該系統(tǒng)體積小,功耗低,速度快,適應(yīng)性好,能夠滿足智能移動(dòng)機(jī)器人視頻信號(hào)處理系統(tǒng)的需求。
2 系統(tǒng)基本原理
圖1為系統(tǒng)工作原理框圖,整個(gè)系統(tǒng)所需各種芯片的電路連接如下圖所示,由CCD攝像頭輸出模擬視頻信號(hào),經(jīng)過視頻解碼芯片SAA7111A進(jìn)行視頻預(yù)處理(鉗位、放大、A/D轉(zhuǎn)換、同步分離等)后輸出圖像數(shù)字信號(hào)IPD、行同步信號(hào)HREF、場(chǎng)同步信號(hào)VREF、奇偶場(chǎng)標(biāo)志信號(hào)RST0和13.5MH像素時(shí)鐘信號(hào)LLC2去驅(qū)動(dòng)FPGA,從而產(chǎn)生正確的圖像采集時(shí)序和存儲(chǔ)地址,并將采集的圖像存儲(chǔ)到雙口RAM中。整個(gè)系統(tǒng)由視頻采集控制和幀存讀寫控制兩個(gè)核心模塊組成,它們的功能都由FPGA來實(shí)現(xiàn)。雙口RAM分為幀存A和幀存B兩個(gè)存儲(chǔ)區(qū)域,實(shí)現(xiàn)乒乓式的讀寫操作,能夠完成圖像的實(shí)時(shí)采集。SAA7111A的配置程序和FPGA采集控制程序存儲(chǔ)在FLASH中,系統(tǒng)上電工作時(shí)加載。
圖1 系統(tǒng)工作原理框圖
3 圖像采集系統(tǒng)的構(gòu)成
3.1視頻信號(hào)
視頻信號(hào)中除了包含圖像信號(hào)之外,還包括了行同步信號(hào)、行消隱信號(hào)、場(chǎng)同步信號(hào)(幀同步信號(hào))、場(chǎng)消隱信號(hào)以及槽脈沖信號(hào)、前均衡脈沖、后均衡脈沖等。因而,對(duì)視頻信號(hào)進(jìn)行A/D轉(zhuǎn)換的電路也非常復(fù)雜。Philips公司將這些非常復(fù)雜的視頻A/D轉(zhuǎn)換電路集成到了一塊芯片內(nèi)。從而生產(chǎn)出功能強(qiáng)大的視頻輸入處理芯片SAA7111A,為視頻信號(hào)的數(shù)字化應(yīng)用提供了極大的方便。
3.2 SAA7111A 性能及工作協(xié)議
SAA7111A是PHILIPS公司的一種增強(qiáng)型視頻輸入處理器芯片,它集A/D與解碼功能于一身,片內(nèi)還附有鎖相、自動(dòng)鉗位控制、時(shí)鐘自動(dòng)增益產(chǎn)生、多制式解碼等電路,另外還可對(duì)亮度、對(duì)比度和飽和度進(jìn)行控制[2]。既支持PAL電視制式,又支持NTSC電視制式。SAA7111A內(nèi)部含有I2C接口,可簡(jiǎn)潔的通過I2C總線對(duì)SAA7111A的工作方式進(jìn)行設(shè)定。SAA7111A的場(chǎng)同步信號(hào)VREF、行同步信號(hào)HREF、奇偶場(chǎng)信號(hào)RST0、像素時(shí)鐘信號(hào)LLC2都由引腳直接引出,從而省去了以往時(shí)鐘同步電路的設(shè)計(jì),其可靠性和方便性有了很大的提高。
圖2所示為SAA7111A的功能方框圖。從SAA7111A的四個(gè)模擬輸入端AI11,AI12, AI21, AI22輸入的視頻圖像信號(hào),經(jīng)模擬處理后,一路經(jīng)A/D轉(zhuǎn)換器后產(chǎn)生數(shù)字色度信號(hào)和亮度信號(hào),分別進(jìn)行亮度信號(hào)處理和色度信號(hào)處理。亮度信號(hào)處理的結(jié)果一路送到色度信號(hào)處理器,進(jìn)行綜合處理,產(chǎn)生Y和UV信號(hào),經(jīng)格式化后從VPO(16位)輸出;另一路進(jìn)入同步分離器,經(jīng)數(shù)字PLL產(chǎn)生相應(yīng)的行和場(chǎng)同步信號(hào)HS和VS,同時(shí)PLL驅(qū)動(dòng)時(shí)鐘發(fā)生器,產(chǎn)生與HS鎖定的時(shí)鐘信號(hào)LLC和像素時(shí)鐘信號(hào)LLC2。所有這些功能均是在I2C總線控制下完成的,其中SCL為串行時(shí)鐘信號(hào),SDA為串行數(shù)據(jù)信號(hào)。
基金項(xiàng)目:中國(guó)博士后科學(xué)基金資助項(xiàng)目(2005038095);山西省自然科學(xué)基金資助項(xiàng)目(20051043);中北大學(xué)科學(xué)基金資助項(xiàng)目。
圖2 SAA7111A功能方框圖
SAA7111A的主要特點(diǎn):
可編程選擇四路視頻輸入的一路或兩路,組成不同的工作模式,在其內(nèi)部有兩路模擬視頻信號(hào)處理通道,可進(jìn)行靜態(tài)增益控制或自動(dòng)增益控制,還有兩路模數(shù)轉(zhuǎn)換器;
可對(duì)芯片編程進(jìn)行自電平控制、抗混疊濾波、梳狀濾波;
場(chǎng)頻50Hz或60Hz自動(dòng)檢測(cè),并在PAL和NTSC制之間自動(dòng)切換;
能對(duì)不同輸入制式的亮度信號(hào)和色度信號(hào)進(jìn)行處理,并實(shí)現(xiàn)亮度、色度和飽和度的片內(nèi)控制;
提供兩種數(shù)據(jù)方式供選擇,這兩種數(shù)據(jù)方式分別是RGB和YUV,可靈活輸出不同的數(shù)字圖像數(shù)據(jù)格式,主要有:4:1:1的YUV格式(12bit ), 4:2:2的YUV格式(16bit), 4:2:2的YUV格式[CCIR-656](8bit), 5:6:5的RGB格式(16bit)和8:8:8的RGB格式(24bit);
SAA7111A的工作模式由其內(nèi)部的控制寄存器決定,需根據(jù)不同的視頻標(biāo)準(zhǔn)來配置相應(yīng)的內(nèi)部寄存器,即初始化。用戶根據(jù)I2C 總線協(xié)議,將需要的控制字寫入控制地址即可對(duì)SAA7111A進(jìn)行相應(yīng)的控制。這些控制包括:圖像數(shù)據(jù)輸出格式、色彩、明暗、飽和度及各種參考信號(hào)的輸出。I2C總線傳送數(shù)據(jù)的基本時(shí)序如圖3所示。
圖3 I2C總線的基本時(shí)序
總線上的數(shù)據(jù)傳輸可以是讀或?qū)憙煞N方式,其寫格式為:
其中:S為總線起始信號(hào);Slave Address W為被控器SAA7111的尋址字節(jié);A為被控器應(yīng)答信號(hào);SubAddres為SAA7111控制寄存器的地址;Data(NB)即控制寄存器的配置參數(shù);P為總線終止信號(hào)[3]。
3.3 FPGA的采集控制原理
SAA7111A的輸出時(shí)鐘信號(hào)包括LLC(27MHz)和LLC2(13.5MHz),其中LLC2為像素時(shí)鐘頻率,每一時(shí)鐘對(duì)應(yīng)一個(gè)16位像素輸出。行參考同步信號(hào)HREF,高電平表示一行的有效像素,為720個(gè)LLC2周期。場(chǎng)參考同步信號(hào)VREF高電平時(shí)表示輸出是有效行圖像,單場(chǎng)是286行;低電平期間為場(chǎng)消隱信號(hào),是26個(gè)行周期。RTSO=1時(shí)表示輸出為奇數(shù)場(chǎng),RTSO=0時(shí)為偶數(shù)場(chǎng)[4]。輸入信號(hào)FEI為輸出使能信號(hào),為0時(shí)允許數(shù)據(jù)輸出,為1時(shí)數(shù)據(jù)輸出處于高阻狀態(tài)。圖4,5分別為采集一行和奇數(shù)場(chǎng)圖像的信號(hào)時(shí)序圖。
圖4 SAA7111A采集一行圖像的時(shí)序圖
啟動(dòng)采集前必須對(duì)SAA7111A內(nèi)部的32個(gè)寄存器寫入相應(yīng)的值。在采集的過程中,僅采集奇場(chǎng)圖像信號(hào)而不采集偶場(chǎng)圖像信號(hào)。因?yàn)橹徊杉鎴?chǎng)信號(hào)也能得到穩(wěn)定的圖像,而可以利用偶場(chǎng)圖像時(shí)間等待處理圖像。對(duì)有效像素、無效像素、有效行和無效行進(jìn)行計(jì)數(shù),產(chǎn)生RAM的地址、讀寫、選通等控制信號(hào),均由FPGA完成。由于只采奇場(chǎng)圖像,行數(shù)也減少為原來的一半,為286行,前后各去掉23行,取中間240行。當(dāng)RTSO為高電平且VREF上升沿到來時(shí),標(biāo)志奇數(shù)場(chǎng)開始,啟動(dòng)無效行計(jì)數(shù)器對(duì)HREF信號(hào)進(jìn)行計(jì)數(shù),計(jì)滿前23行后,啟動(dòng)有效行計(jì)數(shù)器,置COUT信號(hào)為高電平,且在水平同步信號(hào)VREF=1、垂直同步信號(hào)HREF=1、
圖5 SAA7111A奇數(shù)場(chǎng)采集的時(shí)序圖
奇偶場(chǎng)信號(hào)RTSO=1時(shí),啟動(dòng)無效像素計(jì)數(shù)器,對(duì)LLC2二分頻后的像素時(shí)鐘信號(hào)進(jìn)行計(jì)數(shù)。LLC2二分頻后頻率降為6.75MHz,每行像素點(diǎn)由原來的720點(diǎn),減少為360點(diǎn),將其截頭去尾,前后各去掉20個(gè)像素,取一行中間的320個(gè)像素點(diǎn),即得到分辨率為320 X 240的一幀圖像[5]。當(dāng)無效像素計(jì)數(shù)器計(jì)滿前20后,啟動(dòng)有效像素計(jì)數(shù)器開始計(jì)數(shù),并將數(shù)據(jù)緩沖器打開,每計(jì)一次數(shù),地址發(fā)生器加1,產(chǎn)生地址信號(hào),讀寫信號(hào)WR,選通信號(hào)RAM_SEL,當(dāng)一幀圖像寫完后,置FLAG信號(hào)為低,觸發(fā)中斷信號(hào),以便處理器處理圖像。值得注意的是,利用FPGA可以很靈活地控制存入RAM存儲(chǔ)器中的圖像數(shù)據(jù)量。這里將圖像分辨率設(shè)計(jì)為320 X 240,實(shí)際應(yīng)用中,可以根據(jù)需要靈活設(shè)置。
4 結(jié)束語
本文作者創(chuàng)新點(diǎn):該系統(tǒng)能夠完成對(duì)視頻信號(hào)的采集,適應(yīng)性極強(qiáng)的FPGA主要用于控制圖像信號(hào)的采集,F(xiàn)PGA除了完成對(duì)SAA7111A配置以外,還完成圖像提取處理、圖像存儲(chǔ)地址產(chǎn)生器等功能。由于FPGA的在線可編程特性使該系統(tǒng)變得更加靈活。此外,成熟的編譯環(huán)境和FPGA與SAA7111A簡(jiǎn)單的外圍電路大大縮短了開發(fā)和調(diào)試的周期。在未來的FPGA中還可以加入圖像預(yù)處理流程,縮短后續(xù)處理時(shí)間,因此具有較高的推廣價(jià)值。實(shí)驗(yàn)表明,系統(tǒng)速度快、可靠性高、實(shí)時(shí)性好,在視頻采集和圖像處理方面有著很好的應(yīng)用前景。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論