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