VGA全稱是Video Graphics Array,即視頻圖形陣列,是一個(gè)使用模擬信號(hào)進(jìn)行視頻傳輸?shù)臉?biāo)準(zhǔn)。分辨率高,顯示速度快。
一、傳輸協(xié)議
VGA接口15個(gè)引腳,除去地線,我們一般會(huì)用到5個(gè)引腳:1(RED)、2(GREEN)、3(BLUE)、13(HSYNC)、14(VSYNC)。
如圖1:

1、2、3指的是傳輸?shù)募t、綠、藍(lán)三色的模擬信號(hào),范圍為0-0.714V,0代表無(wú)色,0.714V代表滿色,需要注意的這是模擬信號(hào),因此前面還需要進(jìn)行一個(gè)數(shù)模轉(zhuǎn)換。HSYNC(行同步信號(hào))和VSYNC(場(chǎng)同步信號(hào))分別是指?jìng)鬏斠恍泻蛡鬏斠粠臅r(shí)序,下面看一下他們的時(shí)序圖:

a:行同步時(shí)期,掃描地址的復(fù)位
b:行消隱后肩,掃描地址轉(zhuǎn)移后的穩(wěn)定等待準(zhǔn)備期
c:行顯示時(shí)期,數(shù)據(jù)有效區(qū)域
d:行消隱前肩,掃描地址轉(zhuǎn)移的準(zhǔn)備
e:行掃描總時(shí)間,一行掃描的總時(shí)間

o:場(chǎng)同步時(shí)期,掃描地址的復(fù)位
p:場(chǎng)消隱后肩,掃描地址轉(zhuǎn)移后的穩(wěn)定等待準(zhǔn)備期
q:場(chǎng)顯示時(shí)期,數(shù)據(jù)有效區(qū)域
r:場(chǎng)消隱前肩,掃描地址轉(zhuǎn)移的準(zhǔn)備
s:場(chǎng)掃描總時(shí)間,一場(chǎng)掃描的總時(shí)間
可以看出,行同步時(shí)序和場(chǎng)同步時(shí)序類似,分別經(jīng)歷4個(gè)階段:拉低、顯示后沿、有效數(shù)據(jù)傳輸和顯示前言。

二、常見(jiàn)的刷新率時(shí)序表
由于FPGA擅長(zhǎng)計(jì)數(shù)電路這里采用像素表示法來(lái)設(shè)計(jì)驅(qū)動(dòng)。

FPGA硬件測(cè)試時(shí)要將sys_pll中的輸出頻率改為25MHZ。
三、驅(qū)動(dòng)電路的verilog設(shè)計(jì)(lcd_driver)
目前液晶顯示器普及,而高于 60Hz 的刷新率對(duì)于液晶來(lái)說(shuō),沒(méi)有任何意義,所以我們以 640*480 在 60Hz 的刷新率下為例。
本次我們采用的是ADV7123視頻轉(zhuǎn)換芯片來(lái)實(shí)現(xiàn)。
1)為便于移植,根據(jù)640*480 60hz分辨率下的參數(shù),宏定義相關(guān)數(shù)據(jù)。

2)行掃描單位hcnt計(jì)數(shù)

3)列掃描單位vcnt計(jì)數(shù)
每掃描完一行,即hcnt完成H_TOTAL次計(jì)數(shù)后,vcnt進(jìn)行自加。

4)ADV7123控制信號(hào)輸出
為了實(shí)現(xiàn)數(shù)據(jù)在lcd_dclk上升沿有效,我們將clk翻轉(zhuǎn)輸出,已實(shí)現(xiàn)上升沿采樣 。
lcd_blank作為顯示空白信號(hào),低電平有效。
設(shè)計(jì)中不需要lcd_sync信息,可以直接接地。

5)有效顯示使能信號(hào)輸出
當(dāng)使能信號(hào)有效時(shí),接收外部輸入的RGB數(shù)據(jù)lcd_data.

6)外部數(shù)據(jù)請(qǐng)求控制信號(hào)
為了保證數(shù)據(jù)穩(wěn)定,lcd_request要提前一個(gè)時(shí)鐘請(qǐng)求外部輸入數(shù)據(jù) 。
同時(shí),設(shè)計(jì)中實(shí)時(shí)顯示下一時(shí)刻的掃描地址lcd_xpos、lcd_ypos,也要提前一個(gè)時(shí)鐘輸出,以保證外部數(shù)據(jù)輸入的同步化。
lcd_xpos、lcd_ypos是顯示器有效顯示區(qū)域的行列坐標(biāo)計(jì)數(shù)值。

四、模擬VGA圖像數(shù)據(jù)的輸入
1)宏定義三原色組合的顏色如下

這里要注意所用的VGA驅(qū)動(dòng)電路是RGB888還是RGB565,如果是RGB565,三原色要改成下面樣式,并把其他程序中l(wèi)cd_data的位數(shù)改為16位:
筆者曾在這里犯過(guò)錯(cuò)誤。

2)根據(jù)輸入的行、列地址信號(hào),輸出三原色組合后得到的8條彩色。

五、不同分辨率的VGA驅(qū)動(dòng)
lcd_para文件定義了四種VGA分辨率驅(qū)動(dòng),這里只需修改定義的注釋就行,并把PLL鎖相環(huán)中的頻率改為相應(yīng)的頻率。

PLL修改方法為直接修改下面參數(shù)中的乘法除法因子:

編輯:hfy
-
FPGA
+關(guān)注
關(guān)注
1660文章
22424瀏覽量
636710 -
Verilog
+關(guān)注
關(guān)注
30文章
1374瀏覽量
114547 -
模擬信號(hào)
+關(guān)注
關(guān)注
8文章
1234瀏覽量
54688 -
驅(qū)動(dòng)電路
+關(guān)注
關(guān)注
159文章
1622瀏覽量
111697 -
VGA
+關(guān)注
關(guān)注
5文章
579瀏覽量
66337
發(fā)布評(píng)論請(qǐng)先 登錄
勇敢的芯伴你玩轉(zhuǎn)Altera FPGA連載20:VGA顯示接口電路
fpga實(shí)現(xiàn)jpeg Verilog源代碼
數(shù)字電路中的FPGA和verilog教程
Verilog編寫(xiě)的基于SPARTAN板的VGA接口顯示程序
在FPGA_CPLD中實(shí)現(xiàn)AD或DA的文章(英文Verilog)
基于FPGA的VGA圖像控制器的設(shè)計(jì)與實(shí)現(xiàn)
采用FPGA對(duì)VGA圖形控制器的Verilog設(shè)計(jì)方法
基于叁芯智能科技的SANXIN -B01 FPGA開(kāi)發(fā)板的VGA協(xié)議驅(qū)動(dòng)設(shè)計(jì)
FPGA設(shè)計(jì)中DAC控制的Verilog實(shí)現(xiàn)
FPGA設(shè)計(jì)中DAC控制的Verilog實(shí)現(xiàn)修訂稿
ADC0809驅(qū)動(dòng)FPGA實(shí)現(xiàn)的verilog程序
基于FPGA的Verilog實(shí)現(xiàn)VGA驅(qū)動(dòng)電路
評(píng)論