劉丹 于淳
【摘 要】傳統(tǒng)的圖像采集卡速度慢、處理功能簡單,不能很好地滿足特殊要求,因此,我們構(gòu)建了高速圖像采集系統(tǒng),在FPGA中利用VHDL編程實(shí)現(xiàn),主要包括圖像采集模塊、圖像低級(jí)處理模塊以及總線接口模塊等。
【關(guān)鍵詞】圖像采集 FPGA VHDL
中圖分類號(hào):G4 文獻(xiàn)標(biāo)識(shí)碼:A DOI:10.3969/j.issn.1672-0407.2014.07.204
一、系統(tǒng)設(shè)計(jì)
本系統(tǒng)中專用視頻處理器采用Philips公司的可編程視頻輸入處理芯片SAA7111A。它通過簡潔的I2C總線與其它器件和設(shè)備連接可以將視頻信號(hào)轉(zhuǎn)換為多種格式的數(shù)字號(hào)。
最復(fù)雜的信號(hào)莫過于視頻信號(hào)。視頻信號(hào)中除了包含圖像信號(hào)之外,還包括了行同步信號(hào)、行消隱信號(hào)、場同步信號(hào)、場消隱信號(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)用提供了極大的方便。
SAA7111A采用CMOS工藝。該器件通過簡潔的I2C總線與PC機(jī)進(jìn)行連接可方便地構(gòu)成SAA7111A的開發(fā)系統(tǒng)。SAA7111A內(nèi)部包含兩路模擬處理通道,可以選擇視頻源并可抗混疊濾波,同時(shí)還可以進(jìn)行模數(shù)變換、自動(dòng)嵌位、自動(dòng)增益控制、時(shí)鐘產(chǎn)生、多制式解碼等,另外還可對(duì)亮度、對(duì)比度和飽和度進(jìn)行控制。SAA7111A芯片中的場同步信號(hào)VREF、行同步信號(hào)HREF、奇偶場信號(hào)RES1、 像素時(shí)鐘信號(hào)LLC2都由管腳直接引出,省去了以往時(shí)鐘同步電路的設(shè)計(jì)。系統(tǒng)內(nèi)部鎖相環(huán)技術(shù)的集成使得可靠性有了很大的提高,并降低了設(shè)計(jì)復(fù)雜度。
二、工作原理
系統(tǒng)復(fù)位完成FPGA程序加載后,先由FPGA的I2C總線模塊對(duì)SAA7111初始化,本系統(tǒng)中SAA7111A的初始設(shè)定為:一路模擬視頻信號(hào)輸入、自動(dòng)增益控制、625行50Hz 、PAL制式、YUV422 16bits數(shù)字視頻信號(hào)輸出、設(shè)置默認(rèn)的圖像對(duì)比度、亮度及飽和度。之后等待采集圖像的命令。初始化成功后,SAA7111實(shí)時(shí)處理模擬視頻信號(hào),輸出亮度和色度信號(hào),同時(shí)輸出點(diǎn)時(shí)鐘信號(hào),行、場同步信號(hào),行、場參考信號(hào),奇偶場標(biāo)志信號(hào)等。
系統(tǒng)采集圖像的命令由計(jì)算機(jī)發(fā)出,啟動(dòng)FPGA的采集同步模塊。采集同步模塊發(fā)出采集標(biāo)志信號(hào),采集一幀圖像,通過寫數(shù)據(jù)模塊產(chǎn)生寫地址和寫信號(hào)將數(shù)據(jù)存儲(chǔ)到SRAM中。采集結(jié)束時(shí),采集標(biāo)志信號(hào)撤消,采集同步模塊復(fù)位,等待下一次采集命令。FPGA處理完1幀圖像數(shù)據(jù)后,通過讀數(shù)據(jù)模塊生產(chǎn)讀地址和讀信號(hào)來實(shí)現(xiàn)將SRAM中的圖像信息讀出并通過PCI總線傳送到計(jì)算機(jī)中。
在圖像采集過程中,我們使用的是512×512的圖像,即一幀圖像采集512行,奇數(shù)場和偶數(shù)場各采集256行,每一行采集512個(gè)像素。因此,需要通過行延時(shí)模塊進(jìn)行行選擇,濾掉無效行,通過像素延時(shí)模塊進(jìn)行像素選擇,以選擇需要的像素。
三、用VHDL硬件描述語言完成采集控制模塊的行為描述
采集控制模塊又包括幾個(gè)子模塊。因?yàn)镾AA7111采用的是I2C總線,所以采集控制模塊應(yīng)包括:模擬I2C總線模塊、采集同步模塊、SRAM讀寫模塊。
使用FPGA模擬的I2C接口可以對(duì)SAA7111提供的多個(gè)控制字進(jìn)行讀寫,從而完全控制SAA7111的運(yùn)行。對(duì)SAA7111的控制字的寫過程如圖1所示。
I2C協(xié)議中器件地址是7位,加上讀寫位構(gòu)成一個(gè)完整的字節(jié)。SAA7111的器件地址是0100,101,加上讀寫位后:器件地址+寫=0100 1010即4AH;器件地址+讀=0100 1011,即4BH。從地址是器件內(nèi)部分配的地址。SAA7111提供了00~1F、40~62共43個(gè)控制字。SAA7111讀控制字的過程如圖2所示。
I2C協(xié)議中的讀操作比寫操作復(fù)雜:首先完成對(duì)器件地址和從地址的寫操作;然后發(fā)送4BH,可以開始接收數(shù)據(jù);數(shù)據(jù)傳輸結(jié)束時(shí)發(fā)送終止信號(hào)。
整個(gè)圖像采集部分是一個(gè)VHDL語言文件。FPGA采用串行主模式,從SPROM中讀取配置數(shù)據(jù),完成自身配置。當(dāng)采集圖像信號(hào)引腳再現(xiàn)大于等于場周期(20ms)的低電平信號(hào)時(shí),可以確保該模塊處于觸發(fā)狀態(tài),在下一個(gè)奇數(shù)場出現(xiàn)時(shí),根據(jù)SAA7111的場參考信號(hào)產(chǎn)生具有兩場時(shí)寬的采集同步信號(hào)。該信號(hào)有效時(shí)為圖像采集階段,對(duì)SRAM1寫入數(shù)據(jù);該信號(hào)撤消時(shí)采集同步模塊自動(dòng)復(fù)位,等待下一次采集命令,同時(shí)FPGA1開始讀取SRAM1中數(shù)據(jù)進(jìn)行處理。采集同步信號(hào)有效的同時(shí)輸出采集同步場參考信號(hào),用于采集圖像數(shù)據(jù)。