基于FPGA的VGA顯示控制器的設(shè)計(jì)
隨著CCD(電荷耦合器件)和CMOS(互補(bǔ)金屬氧化物半導(dǎo)體)圖像傳感器制造工藝的發(fā)展,圖像傳感器的分辨率越來(lái)越高,如果要實(shí)時(shí)顯示圖像傳感器采集到的圖像,則要求圖像處理芯片有較高的運(yùn)行速度,但由于需要處理的數(shù)據(jù)量太大,一般的數(shù)字信號(hào)處理器很難直接輸出分辨率為1024×768,幀頻為60 Hz的標(biāo)準(zhǔn)XGA信號(hào)。這就需要對(duì)DSP輸出的圖像數(shù)據(jù)進(jìn)行處理,使圖像能夠在VGA顯示器上實(shí)時(shí)顯示。市場(chǎng)上雖然也有一些專門圖像處理芯片,但其價(jià)格昂貴,且應(yīng)用于特殊場(chǎng)合。本文設(shè)計(jì)的顯示控制器可以達(dá)到提升幀頻的功能,可使輸入分辨率為1024×768,幀頻為7.5HZ的YCbCr(4:2:2)圖像信號(hào)提升到幀頻為60HZ,并通過(guò)色空間轉(zhuǎn)換,將YCbCr(4:2:2)圖像信號(hào)轉(zhuǎn)換成RGB格式的標(biāo)準(zhǔn)XGA信號(hào),同時(shí)產(chǎn)生符合VESA標(biāo)準(zhǔn)的XGA格式的行、場(chǎng)同步信號(hào),輸出信號(hào)經(jīng)D/A轉(zhuǎn)換后可直接輸出到VGA接口,從而可使圖像傳感器采集到的圖像數(shù)據(jù)能夠在VGA顯示器上實(shí)時(shí)顯示。
隨著微電子技術(shù)及其制造工藝的發(fā)展,可編程邏輯器件的邏輯門密度越來(lái)越高,功能也越來(lái)越強(qiáng),由于FPGA器件的可并行處理能力及其可重復(fù)在系統(tǒng)編程的靈活性,其應(yīng)用越來(lái)越廣泛。隨著微處理器、專用邏輯器件、以及DSP算法以IP核的形式嵌入到FPGA中,FPGA可實(shí)現(xiàn)的功能越來(lái)越強(qiáng),F(xiàn)PGA在現(xiàn)代電子系統(tǒng)設(shè)計(jì)中正發(fā)揮著越來(lái)越重要的作用。本文設(shè)計(jì)的顯示控制器就是用VHDL語(yǔ)言描述,基于FPGA而實(shí)現(xiàn)的。該系統(tǒng)硬件框圖如圖1所示。
圖1 系統(tǒng)硬件框圖
1 顯示控制器的設(shè)計(jì)
1.1 工作原理
圖像傳感器采集到的原始圖像數(shù)據(jù),經(jīng)過(guò)A/D轉(zhuǎn)換及DSP處理后,生成每秒7.5幀的圖像數(shù)據(jù),該數(shù)據(jù)是分辨率為1024×768的YCbCr(4:2:2)格式的16位圖像數(shù)據(jù)。DSP輸出到FPGA的信號(hào)有象素時(shí)鐘,行、場(chǎng)參考,圖像數(shù)據(jù)。FPGA在輸入的行、場(chǎng)參考都有效時(shí),在輸入象素時(shí)鐘的同步下,接收?qǐng)D像數(shù)據(jù),并送入到SDRAM中, 同時(shí)從另一個(gè)SDRAM 中讀取數(shù)據(jù),并通過(guò)色空間轉(zhuǎn)換,將YCbCr(4:2:2)信號(hào)轉(zhuǎn)換成RGB信號(hào)。當(dāng)SDRAM 中寫滿一幀圖像數(shù)據(jù)時(shí),控制器對(duì)兩個(gè)SDRAM進(jìn)行讀、寫切換。由于寫數(shù)據(jù)速率小于讀數(shù)據(jù)速率,所以在往一個(gè)SDRAM寫滿一幀圖像數(shù)據(jù)的時(shí)間內(nèi),控制器能夠連續(xù)多次從另一個(gè)SDRAM中讀出另一幀圖像數(shù)據(jù),從而實(shí)現(xiàn)了提高幀頻的目的。FPGA輸出的RGB格式數(shù)據(jù)經(jīng)D/A轉(zhuǎn)換后,將數(shù)據(jù)轉(zhuǎn)換成模擬信號(hào),配合行、場(chǎng)同步信號(hào)可使其在VGA顯示器上顯示。外部晶振輸入32.5MHZ的時(shí)鐘,該時(shí)鐘在FPGA內(nèi)經(jīng)時(shí)鐘鎖相環(huán)倍頻后產(chǎn)生65MHZ的主時(shí)鐘,用于對(duì)兩個(gè)SDRAM進(jìn)行讀寫和用來(lái)產(chǎn)生符合VESA標(biāo)準(zhǔn)的XGA格式的行、場(chǎng)同步信號(hào)。
1.2 控制器的內(nèi)部模塊介紹
本設(shè)計(jì)采用模塊化設(shè)計(jì)原則,按照現(xiàn)代EDA工程常用的“自頂向下“的設(shè)計(jì)思想,進(jìn)行功能分離并按層次設(shè)計(jì),用VHDL語(yǔ)言實(shí)現(xiàn)每個(gè)模塊的功能。該顯示控制器主要由以下七個(gè)功能模塊組成:
用于從DSP接收數(shù)據(jù)的輸入緩沖模塊
用于對(duì)兩個(gè)SDRAM進(jìn)行讀寫切換的主控制器模塊
SDRAM1的控制器模塊
SDRAM2的控制器模塊
用于產(chǎn)生標(biāo)準(zhǔn)XGA格式的時(shí)序發(fā)生器模塊
用于從SDRAM中讀取數(shù)據(jù)并配合行、場(chǎng)同步輸出數(shù)據(jù)的輸出緩沖模塊
用于將YCbCr(4:2:2)轉(zhuǎn)換成RGB格式的色空間轉(zhuǎn)換模塊。
該顯示控制器的內(nèi)部結(jié)構(gòu)如圖2所示。上電后,顯示控制器首先對(duì)兩片SDRAM進(jìn)行初始化,初始化結(jié)束后,其它模塊才開始工作。下面將詳細(xì)介紹各個(gè)模塊的功能及設(shè)計(jì)思想。
圖2 顯示控制器的內(nèi)部結(jié)構(gòu)
評(píng)論