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