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