基于FPGA的數(shù)據(jù)嵌入式圖像采集系統(tǒng)
摘要 介紹了以FPGA為核心的邏輯控制模塊的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)可以滿足實(shí)時(shí)性要求,設(shè)計(jì)中采用自頂向下的設(shè)計(jì)方法,根據(jù)不同的功能將整個(gè)系統(tǒng)劃分為若干模塊進(jìn)行設(shè)計(jì),并介紹了每個(gè)模塊的功能和實(shí)現(xiàn)方法。在設(shè)計(jì)中采用VHDL語(yǔ)言對(duì)各個(gè)模塊進(jìn)行描述。視頻解碼芯片采用Philips公司的SAA7113H,該芯片通過(guò)I2C總線協(xié)議進(jìn)行配置。實(shí)驗(yàn)表明,設(shè)計(jì)可以滿足圖像采集實(shí)時(shí)性的要求。
關(guān)鍵詞 圖像采集;可編程門陣列;視頻解碼芯片;格式轉(zhuǎn)換;狀態(tài)機(jī)
在圖像處理系統(tǒng)中,首先對(duì)攝像頭采集的視頻信號(hào)進(jìn)行A/D轉(zhuǎn)換,將模擬圖像信號(hào)轉(zhuǎn)化為數(shù)字信號(hào),提供給后端的處理系統(tǒng)進(jìn)行圖像處理。而視頻圖像采集系統(tǒng)是多媒體信息處理、視頻監(jiān)控等系統(tǒng)的前端子系統(tǒng),是視頻處理系統(tǒng)中不可缺少的部分。傳統(tǒng)視頻采集系統(tǒng)一般電路復(fù)雜、成本高,而且較難滿足實(shí)時(shí)性的要求,而采用視頻攝像頭+視頻解碼器+FPGA的模式,可簡(jiǎn)化電路的復(fù)雜性,其中視頻解碼器對(duì)攝像頭采集的信號(hào)進(jìn)行AD轉(zhuǎn)換,FPGA對(duì)信號(hào)的采樣進(jìn)行控制。FPGA的時(shí)鐘頻率高、時(shí)間延遲小,可以滿足實(shí)時(shí)性的要求?;谝陨系膬?yōu)點(diǎn)文中采用些結(jié)構(gòu)來(lái)實(shí)現(xiàn)視頻圖像的采集。
1 視頻解碼器SAA7113H
SAA7113H是Philips公司的一種增強(qiáng)型視頻輸入處理器,內(nèi)部有一系列寄存器,寄存器的讀、寫通過(guò)I2C總線完成。包括一個(gè)雙通道的模擬預(yù)處理電路、可編程靜態(tài)增益和自動(dòng)增益控制電路、時(shí)鐘生成電路、數(shù)字多標(biāo)準(zhǔn)解碼電路、亮度、對(duì)比度、飽和度控制電路和I2C總線控制電路。SAA7113H需外接24.576 MHz晶體,內(nèi)部鎖相環(huán)PLL可輸出27 MHz的時(shí)鐘。自動(dòng)檢測(cè)50 Hz和60 Hz的場(chǎng)頻,可在PAL、NTSC兩種制式之間自動(dòng)轉(zhuǎn)換。具有4路模擬視頻信號(hào)輸入,通過(guò)內(nèi)部寄存器的不同配置可以實(shí)現(xiàn)4路信號(hào)的轉(zhuǎn)換;輸入可以是4路CVBS或2路Y/C信號(hào)或1路Y/C信號(hào)2路CVBS,輸出為標(biāo)準(zhǔn)ITU656 YUV4:2:2格式的VPO數(shù)據(jù)總線(8-bit)。SAA7113H模擬部分和數(shù)字部分采用+3.3V,數(shù)字I/O接口兼容+5V。
2 系統(tǒng)總體方案及工作原理
系統(tǒng)選用Altera公司的CycloneⅡ系列中的EP2C20Q240C8為系統(tǒng)的硬件平臺(tái),該芯片內(nèi)部有18752個(gè)LE,26個(gè)乘法器和4個(gè)鎖相環(huán)等。視頻解碼芯片采用Philips的SAA7113H。系統(tǒng)主要由SAA7113H圖像采集接口模塊、I2C總線配置模塊、控制模塊、像素存儲(chǔ)模塊、格式轉(zhuǎn)換模塊和顯示接口模塊組成。設(shè)計(jì)中利用VHDL語(yǔ)言在QuartusⅡ下進(jìn)行編程和調(diào)試。系統(tǒng)基本結(jié)構(gòu)如圖1所示。
3 主要模塊功能介紹
3.1 SAA7113H圖像采集接口模塊
該模塊負(fù)責(zé)視頻圖像的采集并將模擬視頻信號(hào)轉(zhuǎn)換為數(shù)字視頻信號(hào),為后面的視頻處理做準(zhǔn)備。該模塊與SAA7113H的VPO數(shù)據(jù)總線、RTS0、RTS1、及LLC相連,RTS0和RTS1分別配置為行同步和場(chǎng)同步信號(hào),只有在這兩個(gè)信號(hào)同時(shí)有效時(shí),輸出數(shù)據(jù)是有效圖像數(shù)據(jù),否則是消隱信號(hào)。有效的視頻信號(hào)分為奇數(shù)場(chǎng)和偶數(shù)場(chǎng),共576行有效數(shù)據(jù),其中奇數(shù)場(chǎng)有效數(shù)據(jù)為23~310行,偶數(shù)場(chǎng)有效數(shù)據(jù)為336~623行,其余
為垂直控制信號(hào)。
SAA7113H的VP0總線輸出數(shù)據(jù)的頻率是27 MHz,在每個(gè)LLC的上升沿輸出1 Byte有效數(shù)據(jù)。標(biāo)準(zhǔn)ITU YUV 4:2:2格式視頻信號(hào)的每個(gè)像素都有各自的亮度分量Y,每?jī)蓚€(gè)相鄰的像素公用一對(duì)的色差數(shù)據(jù)Cb和Cr。在存儲(chǔ)像素?cái)?shù)據(jù)時(shí),可認(rèn)為每?jī)蓚€(gè)連續(xù)字節(jié)表示一個(gè)像素,當(dāng)需要格式轉(zhuǎn)換或進(jìn)行其他的處理時(shí),要一次提取兩個(gè)相鄰的像素的數(shù)據(jù),進(jìn)行相應(yīng)處理。其中,每行有數(shù)據(jù)864個(gè)采樣點(diǎn)中有效數(shù)據(jù)720個(gè),消隱期間數(shù)據(jù)144個(gè)。在完整的一幀圖像數(shù)據(jù)中第一場(chǎng)的消隱EAV為FF 00 00 BX,第一場(chǎng)消隱SAV為FF 00 00 AX;第一場(chǎng)有效數(shù)據(jù)SAV為FF 00 00 8X,有效數(shù)據(jù)EAV為FF 00 00 9X,其他場(chǎng)類推。奇數(shù)場(chǎng)有效數(shù)據(jù)階段的SAV為“FF 00 00 80”,偶數(shù)場(chǎng)有效數(shù)據(jù)階段的SAV為“FF 00 00 C7”。在每個(gè)時(shí)鐘的上升沿讀取8位數(shù)據(jù),當(dāng)檢測(cè)到一行數(shù)據(jù)的開始標(biāo)志FF 00 00 XY時(shí),檢測(cè)到SAV或EAV信號(hào),提取H、F、V信號(hào)。然后開始對(duì)圖像數(shù)據(jù)進(jìn)行解碼,根據(jù)8位數(shù)據(jù)自帶的信息,判斷該數(shù)據(jù)是Y、Cb還是Cr,從而得到Y(jié)、Cb、Cr各分量。
3.2 I2C總線配置模塊
該模塊通過(guò)I2C總線協(xié)議對(duì)SAA7113H進(jìn)行配置,時(shí)鐘頻率為20 kHz。通過(guò)該模塊完成SAA7113H配置。配置模塊如圖2所示。
其中,inicio_conf信號(hào)表示啟動(dòng)對(duì)SAA7113H進(jìn)行配置,高電平有效。clk為時(shí)鐘信號(hào)。reset為外部復(fù)位信號(hào)高電平有效。SCL和SDA為SAA7113H配置信號(hào)。CONFIGURACION_OK表示解碼芯片配置好以后輸出一個(gè)控制信號(hào)給控制模塊,以啟動(dòng)數(shù)據(jù)采集。
SAA7113H的寄存器地址從00H開始,只有01H~05H前端輸入配置部分,06H~13H、15H~17H解碼部分,40H~60H常規(guī)分離數(shù)據(jù)部分,這些可讀寫,其余為保留地址或只讀寄存器,將需要配置的寄存器數(shù)據(jù)存在查找表con_data中,并用count表示當(dāng)前對(duì)哪個(gè)寄存器配置,配置時(shí)逐個(gè)寫入寄存器。
評(píng)論