摘要:本文設(shè)計了一種基于現(xiàn)場可編程邏輯器件FPGA計的多顯示模式VGA接口。通過設(shè)計一種全新的分頻算法,使該接口能支持從VGA到SVGA多達13種顯示模式,在實際利用FPGA的嵌入式系統(tǒng)中能替代VGA專用顯示芯片,節(jié)省了計算機處理過程,加快了數(shù)據(jù)處理速度,節(jié)約了硬件成本。
關(guān)鍵詞:FPGA;VGA接口
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)20-30240-03
The VGA Interface Technology Based on FPGA
WU Ting-ting, SHI Bo-ya
(Tianjin Industry University, Information and Communication Engineering Institute, Tianjin 300160, China)
Abstract: The design of a field programmable logic devices based on the FPGA of multi-mode VGA display interface. Through the design of a new sub-frequency algorithm, so that the interface can support from VGA up to 13 SVGA display mode, in the actual use of embedded systems in FPGA can substitute for VGA display chips, saving the computer process, Speed up the data-processing speed, saving the cost of hardware.
Key words: FPGA; VGA port
1 引言
隨著FPGA的不斷發(fā)展及其價格的不斷下降,F(xiàn)PG的可編程邏輯設(shè)計的應(yīng)用優(yōu)勢逐漸顯現(xiàn)出來?,F(xiàn)在,越來越多的嵌入式系統(tǒng)選擇了基于FPGA的設(shè)計方案。在基于FPGA的大規(guī)模嵌入式系統(tǒng)設(shè)計中,為實現(xiàn)VGA顯示功能,既可以使用專用的VGA接口芯片如SPX7111A等,也可以設(shè)計和使用基于FPGA的VGA接口軟核。雖然使用VGA專用芯片具有更穩(wěn)定的VGA時序和更多的顯示模式可供選擇等優(yōu)點,但設(shè)計和使用VGA接口軟核更具有以下優(yōu)勢:(1)使用芯片更少,節(jié)省板上資源,減小布線難度;(2)當進行高速數(shù)據(jù)傳輸時,具有更小的高頻噪聲干擾;(3)系統(tǒng)成本下降,產(chǎn)品更有價格優(yōu)勢。本文研究與設(shè)計了一種基于FPGA的VGA接口軟核,它具有從VGA(640×480,60Hz)到SVGA(1024×768,85Hz)多達13種顯示模式可供選擇,彌補了普通VGA軟核無法適用多種顯示模式的缺點,能達到完全替代VGA專用芯片的效果,在大規(guī)模FPGA嵌入式系統(tǒng)設(shè)計中具有很好的應(yīng)用。
2 FPGA的原理
單元、門電路以及RAM空間的可編程邏輯器件,幾乎所有應(yīng)用門陣列、PLD和中小規(guī)模通用數(shù)字集成電路的場合均可應(yīng)用FPGA和CPLD器件。CPLD的設(shè)計是基于乘積項選擇矩陣來實現(xiàn)的,CPLD、FPGA是在PAL、GAL等基礎(chǔ)上發(fā)展起來的一種具有豐富的可編程I/O引腳、邏輯宏而FPGA是基于查找表來設(shè)計的。查找表就是實現(xiàn)將輸入信號的各種組合功能以一定的次序?qū)懭隦AM中,然后在輸入信號的作用下,輸出特定的函數(shù)運算結(jié)果。采用FPGA作為控制器,利用其豐富的I/O資源,并行處理數(shù)據(jù)。具有高密度、高速度、多功能、低功耗、設(shè)計靈活方便、可無限次反復(fù)編程等特點,由FPGA完成信號的產(chǎn)生、頻率控制、LED顯示等。該方案的系統(tǒng)方框圖如圖1所示,其優(yōu)點在于系統(tǒng)結(jié)構(gòu)緊湊,可以實現(xiàn)復(fù)雜的測量與控制。
3 VGA顯示接口原理
隨著計算機顯示技術(shù)的快速發(fā)展,計算機業(yè)界制定了許多種顯示接口協(xié)議,從最初的MDA接口協(xié)議到目前主流的VGA(視頻圖形陣列)接口協(xié)議。VGA 接口采用非對稱分布的15pin 連接方式,其工作原理:是將顯存內(nèi)以數(shù)字格式存儲的圖像(幀)信號在ramdac 里經(jīng)過模擬調(diào)制成模擬高頻信號,然后再輸出到投影機成像,這樣VGA信號在輸入端(投影機內(nèi)) ,就不必像其它視頻信號那樣還要經(jīng)過矩陣解碼電路的換算。從前面的視頻成像原理可知VGA的視頻傳輸過程是最短的,所以VGA 接口擁有許多的優(yōu)點,如無串擾無電路合成分離損耗等。
在VGA接口協(xié)議架中,根據(jù)不同的分辨率和刷新頻率,又分為不同的顯示式:VGA(640×480)、XGA(800×600)和SVGA(1024×68)。計算機顯示器的顯示有許多標準,常見的有VGA、SVGA等。本系統(tǒng)采用FPGA實現(xiàn)圖像顯示控制器,這在產(chǎn)品開發(fā)設(shè)計中廣泛應(yīng)用。常見的彩色顯示器一般由CRT(陰極射線管)構(gòu)成,彩色是由G、R、B(綠:Green,紅:Red,藍:Blue)3基色組成。顯示是采用逐行掃描的方式解決,陰極射線槍發(fā)出電子束打在涂有熒光粉的熒光屏上,產(chǎn)生GRB 3基色,合成一個彩色像素。掃描從屏幕的左上方開始,從左到右,從上到下,逐行掃描,每掃完一行,電子束回到屏幕的左邊下一行的起始位置,在這期間,CRT對電子束進行消隱,每行結(jié)束時,用行同步信號進行行同步;掃描完所有行,用場同步信號進行場同步,并使掃描回到屏幕的左上方,同時進行場消隱,并預(yù)備進行下一次的掃描。在VGA接口協(xié)議中,不同的顯示模式因為有不同的分辨率或不同的刷新頻率,所以其時序也不相同。對于每種顯示模式的時序,VGA都有嚴格的工業(yè)標準。
4 FPGA系統(tǒng)實現(xiàn)
VGA圖像控制器是一個較大的數(shù)字系統(tǒng)。本文設(shè)計的多顯示模式VGA接口采用模塊化的設(shè)計原則,借鑒自頂而下的程序設(shè)計思想, 進行功能分離并按層次設(shè)計。將VHDL硬件描述語言設(shè)計與原理圖設(shè)計相結(jié)合,逐一對每個功能模塊進行仿真,使頂層VGA圖像控制器的模塊實體仿真綜合得以順利通過。VGA控制器主要由以下模塊組成:消隱模塊,顯示模塊,分頻模塊,網(wǎng)格生成模塊,漢字顯示模塊,圖像控制模塊,動畫生成模塊,LPM-ROM調(diào)用模塊,EEPROM調(diào)用模塊等。設(shè)計VGA圖像顯示控制需要注意兩個問題:一個是時序的驅(qū)動,這是完成設(shè)計的關(guān)鍵時序稍有偏差,顯示必然不正常,甚至?xí)p壞彩色顯示器;另一個是VGA信號的電平驅(qū)動。功能模塊的VHDL設(shè)計如下。
4.1 模式選擇模塊
模式選擇模塊根據(jù)所選擇的顯示模式(模式1~模13),輸出符合VGA工業(yè)標準的對應(yīng)參數(shù)與所需時鐘率;輸出的參數(shù)包括:行、場有效像素點;行場前同步頭信號;行、場后同步頭信號;行、場消隱信號。
4.2 VGA接口模塊
VGA接口模塊是整個系統(tǒng)中最重要的一部分。它根據(jù)接收到的不同像頻時鐘和時序參數(shù),輸出符合VGA標準時序的信號。VGA接口模塊接收到的時序參數(shù)包括H_PIXELS、H_FRONTPORCH、H_SYNCTIME、H_BACKPORCH、H_SYNCSTART、H_SYNCEND、H_PERIOD、V_LINES、V_FRONTPORCH、V_SYNCTIME、V_BACKPORCH、V_SYNCSTART、V_SYNCEND和V_PERIOD。通過選擇不同顯示模式,系統(tǒng)將不同的值賦予這些時序參數(shù)。VGA接口模塊通過內(nèi)部行掃描計數(shù)器和場掃描計數(shù)器來輸出符合VGA時序的信號。其中,輸出的行坐標信號(Cout)和列坐標信號(Lout)能作為地址信息輸入圖像存儲空間,提取出對應(yīng)點的RGB信號作為VGA接口的輸出。
4.3 消隱模塊
消隱模塊是整個顯示控制器的關(guān)鍵部分,顯示模塊、漢字模塊、彩條模塊、網(wǎng)格模塊、動畫控制模塊、LPM-ROM調(diào)用模塊等都由消隱模塊控制,并且行同步信號(HS)和場同步信號(VS)都由該模塊產(chǎn)生。由于CLK頻率相當高,像素速率也很高,為了觀察HS、VS信號,適當縮小了波形比例。其中,C[9..0]為像素坐標值,L[8..0]為掃描線信號,也就是像素的橫坐標。
顯示模塊是整個顯示控制器的重要組成部分。各個模塊的輸出數(shù)據(jù)都要經(jīng)過該模塊處理后送到顯示器。顯示模塊在VGA顯示控制器中起著至關(guān)重要的作用。
顯示模塊的VHDL設(shè)計如下:
ARCHITECTURE BEHAVE OF DISPLAY IS
SIGNAL GRB: STD_LOGIC_VECTOR(3 DOWNTO 1);
BEGIN
GRB(2)<=GRBP(2) AND HS AND VS;
GRB(3)<=GRBP(3) AND HS AND VS;
GRB(1)<=GRBP(1) AND HS AND VS;
R<=GRB(2);
G<=GRB(3);
B<=GRB(1);
END BEHAVE;
GRBP為三原色數(shù)據(jù)信號,由模式控制模塊產(chǎn)生;行同步信號HS由消隱模塊產(chǎn)生;場同步信號VS由消隱模塊產(chǎn)生。輸出的R、G、B信號分別為紅色、綠色、藍色信號。
顯示模塊的輸出信號直接連到VGA接口,它是控制器與顯示器進行通信的橋梁。該模塊以VHDL語言實現(xiàn),該模塊中的結(jié)構(gòu)體描述一共只用了6條語句。而要實現(xiàn)同樣的功能,一般操作系統(tǒng)的視頻卡驅(qū)動程序需要冗長的代碼去描述。由此可見,VHDL語言具有很大的優(yōu)越性。
4.4 漢字生成模塊
漢字生成模塊可實現(xiàn)在顯示器上顯示漢字、字符等。字模信息可以利用字模提取軟件來獲得,得到了漢字的字模信息后,可以通過屏幕上的橫坐標和縱坐標按照字模信息定義像素的顏色,這樣就可以顯示任何字體、任何點陣的漢字,并根據(jù)需要決定漢字在屏幕上的位置。至于英文以及其他任何符號的顯示原理與漢字顯示的原理一樣。
4.5 網(wǎng)格生成模塊
網(wǎng)格生成模塊用來編輯各種圖形。網(wǎng)格生成模塊的實現(xiàn)原理與漢字生成模塊、彩條發(fā)生器類似,在像素的橫坐標和縱坐標控制下,實現(xiàn)各種網(wǎng)格圖形的生成。網(wǎng)格生成模塊所產(chǎn)生的九種圖形送顯示器依次顯示,所以可以看到網(wǎng)格由小到大逐漸變化,雖然不是動畫效果,但每秒一幀畫面的速度依然使圖像連續(xù)變化呈現(xiàn)出動感。網(wǎng)格以及背景的顏色也可以隨意設(shè)置。每幀圖像的速率可由時鐘來控制。
網(wǎng)格生成模塊的主要功能是編輯各種圖形,因此本模塊可以按照設(shè)計方案生成各種各樣的圖形。網(wǎng)格的選擇是一種比較簡單的圖像編輯,該部分雖然名為網(wǎng)格生成模塊,但實際上可以編輯出多種彩色圖像。
4.6 LPM-ROM調(diào)用模塊
LPM是參數(shù)可設(shè)置模塊庫。本設(shè)計中調(diào)用了三個LPM-ROM,其中兩個用來存放漢字信息,另一個用來存放動態(tài)彩條信息。調(diào)用LPM-ROM模塊,一個重要的問題就是*.mif文件的生成。這里文件生成借助字模提取軟件和WORD編輯功能。設(shè)置好參數(shù)后,生成元件作為自定義元件庫中的元件以供調(diào)用。
LPM-ROM調(diào)用模塊為不使用外掛ROM而建立字庫提供了條件,直接調(diào)用LPM模塊,可以大大提高效率。通過LPM-ROM可以在顯示器上顯示漢字、字符等。
4.7 EEPROM調(diào)用模塊
EEPROM調(diào)用模塊是設(shè)計的難點之一。該模塊實現(xiàn)了對系統(tǒng)外掛的兩個EEPROM(W27E040和W27C020)的訪問,通過該模塊可以使顯示器顯示各種各樣的彩色圖像。
4.8 圖像模式控制模塊
圖像模式控制模塊也是該數(shù)字系統(tǒng)的關(guān)鍵部分,它的主體部分是一個功能齊全的數(shù)據(jù)選擇器(32選1)。
該模塊由一個32選1數(shù)據(jù)選擇器和一個32進制可逆計數(shù)器組成??赡嬗嫈?shù)器控制端為EC、DIR、CLR,MD為計數(shù)時鐘信號。計數(shù)結(jié)果(即對應(yīng)一種模式)是數(shù)據(jù)選擇器進行選擇的依據(jù),通過對可逆計數(shù)器的控制,可以實現(xiàn)對模式選擇的控制。
圖像控制模塊共產(chǎn)生了32種模式,由計數(shù)器實現(xiàn)了對模式的有效控制。其實圖像控制模塊功能還可以進一步擴展。計數(shù)器輸出為8比特,實際共有255種模式,在輸入的32個信號中,可以將它們其中的任意幾個進行再處理,如疊加、異或(棋盤格生成就是橫彩條與豎彩條的異或而實現(xiàn)的)、相與等等,這樣就可以產(chǎn)生成千上萬種圖形的輸出。
VGA控制器中的十余個模塊都采用VHDL語言實現(xiàn),每個模塊在功能仿真無誤后生成元件,放入元件庫中,由頂層原理圖調(diào)用各個模塊(元件)。VGA圖像控制器整體設(shè)計經(jīng)過調(diào)試,通過了MAX+PLUSⅡ的功能仿真、時序仿真以及硬件仿真綜合,在VGA顯示器上實現(xiàn)了所設(shè)計的各種功能。
5 結(jié)論
實驗證明,本顯示接口電路可以輸出多種模式的VGA接口信號,適用于VGA到SVGA等規(guī)格的各種顯示器。實驗中采用了ALTERA公司的CYCLONE芯片學(xué)習(xí)板進行硬件仿真。為了方便觀看波形,加入了彩紋模塊,使VGA接口模塊輸出八種不同顏色的橫條與豎條彩紋。同時,本系統(tǒng)中所提出的基于自適應(yīng)時鐘沿跳變表的時鐘分頻算法,也可以在其他系統(tǒng)中作為構(gòu)建特殊時鐘發(fā)生模塊的參考而使用。
參考文獻:
[1] 謝昭莉,蔣濤,劉亮,等.基于ARM嵌入式系統(tǒng)的VGA接口的研究與設(shè)計[J].液晶與顯示,2007(06).
[2] 通過VGA接口連接液晶電視機[J].數(shù)字世界,2007(02).
[3] 陳桂,田學(xué)隆,陳南西.ARM嵌入式平臺的VGA接口設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2007(04).
[4] 張義偉.基于Avalon總線的鍵盤和VGA控制接口設(shè)計[J].世界電子元器件,2007(08).
[5] 林南, 凌明.基于SEP3203處理器的LCD轉(zhuǎn)VGA接口設(shè)計[J].電腦知識與技術(shù)(學(xué)術(shù)交流),2007(14).
[6] 陸二慶,李冉琦,楊祥.STR912FW44的嵌入式VGA接口設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2007(11).
[7] 鄧春健,王琦,徐秀知,等.基于FPGA和ADV7123的VGA顯示接口的設(shè)計和應(yīng)用[J].電子器件,2006(04).
[8] 張建明.設(shè)置各種VGA卡高分辨率圖形模式的BIOS接口[J].電腦編程技巧與維護,1994(07).
注:“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文?!?/p>