999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FPGA的VGA圖像顯示系統(tǒng)的設(shè)計

2015-11-17 20:51:15杜宗展王振河馮迎春
現(xiàn)代電子技術(shù) 2015年16期

杜宗展+王振河+馮迎春

摘 要: VGA(視頻圖形陣列)是一種標(biāo)準(zhǔn)的顯示接口,被廣泛應(yīng)用。根據(jù)VGA,F(xiàn)PGA(現(xiàn)場可編程門陣列)的作用原理,設(shè)計的基于FPGA的VGA接口可以直接將數(shù)據(jù)送至顯示器,同時增添了關(guān)于輸出圖像灰度等級的設(shè)計。與傳統(tǒng)設(shè)計相比,該設(shè)計沒有計算機的處理過程,可節(jié)省硬件成本,加快數(shù)據(jù)處理速度,被廣泛應(yīng)用到視頻顯示領(lǐng)域。

關(guān)鍵詞: 現(xiàn)場可編程門陣列; 視頻圖形陣列; 顯示接口; 灰度

中圖分類號: TN919?34; TP391.8 文獻標(biāo)識碼: A 文章編號: 1004?373X(2015)16?0095?05

Design of VGA image display system based on FPGA

DU Zongzhan1, WANG Zhenhe2, FENG Yingchun2

(1. School of Electrical Engineering, Shandong University, Jinan 250061, China;

2. Maintenance Company, Shandong Electric Power Group Co., Jinan 250061, China)

Abstract: As a standard display interface, VGA (video graphics array) has been widely used. According to the principles of VGA and FPGA (field programmable gate array), the designed VGA interface based on FPGA can send the data to the display directly, and grayscale of the output image was added to this design. Compared to the traditional design, there is no computer processing procedure in the design, which can save the expense of hardware and enhance the speed of data processing. It is widely used to the domain of video display.

Keywords: field programmable gate array; video graphics array; display interface; grayscale

在傳統(tǒng)的圖像處理系統(tǒng)中,要將圖像顯示出來,采取的方法是先將圖像數(shù)據(jù)傳入電腦,然后經(jīng)過顯示器顯示。在這個傳輸過程中,對圖像的控制需要經(jīng)過CPU,這樣既造成資源浪費,一直通過電腦處理還會降低系統(tǒng)的靈活性[1]。利用FPGA(現(xiàn)場可編程門陣列)對VGA(視頻圖形陣列)顯示接口進行設(shè)計,數(shù)據(jù)不需要經(jīng)過計算機,只在整個系統(tǒng)內(nèi)部傳輸。這種設(shè)計使得系統(tǒng)的組成規(guī)模和硬件設(shè)備成本減少,系統(tǒng)的穩(wěn)定性、擴展性和可靠性得到增強[2?3]。VGA自從推出以來,作為一種標(biāo)準(zhǔn)顯示接口在視頻、計算機等顯示器領(lǐng)域有較廣泛的應(yīng)用[4]。FPGA的特點是容量大、投資少、周期短、靈活性等,F(xiàn)PGA強大的處理功能使其在視頻領(lǐng)域得到廣泛應(yīng)用[5?8],成為硬件設(shè)計的首選方式之一[9?10]。

1 VGA概述

1.1 VGA接口定義

VGA(Video Graphic Array)視頻圖形陣列是一種顯示標(biāo)準(zhǔn)[11],VGA接口就是顯示器經(jīng)過VGA標(biāo)準(zhǔn)數(shù)據(jù)輸出的接口。VGA視頻輸出接口一共有15個管腳,如圖1所示。在VGA輸出接口的15個管腳里面,3條基本色彩線(紅、綠、藍)以及水平、垂直2條控制線是其中最重要的。這5條控制線可以組成8種組合,顯示8種色彩。

圖1 VGA接口

1.2 VGA顯示原理

VGA顯示器在顯示屏幕上的彩色是由R,G,B(紅、綠、藍)三個基本色組成的,陰極射線管(CRT)發(fā)出電子束,打在熒光屏上產(chǎn)生三基色。VGA圖像顯示器的顯示是通過CRT逐行掃描或隔行掃描的方式實現(xiàn)的[12?13],即輸入信號在顯示器屏幕上方開始從左到右,從上到下逐行掃描。行掃描信號HS控制從左到右掃描、場掃描信號VS控制從上到下的掃描。電子束在掃描完一行后會回到下一行的起始位置,CRT對電子束消隱,用行同步信號HS進行行同步;等所有行掃描結(jié)束,場同步信號VS進行場同步,同時進行場消隱,使電子束回到屏幕左上方[14]。

1.3 VGA時序分析

計算機業(yè)界根據(jù)不同的顯示接口制定了多種顯示接口協(xié)議,VGA是其中的一種[15]。在VGA的顯示接口協(xié)議中,顯示模式的不同是因為分辨率和刷新率不同,因而時序也不同[16]。不同顯示模式的時序都由VGA工業(yè)標(biāo)準(zhǔn)來控制。設(shè)計VGA圖像顯示時需要注意的是時序的驅(qū)動和VGA信號的電平驅(qū)動[17]。時序的驅(qū)動是設(shè)計的關(guān)鍵點,時序若有偏差,顯示肯定會不正常,嚴(yán)重情況會損壞彩色顯示器。圖2為VGA的掃描時序圖。

圖2 VGA行(場)掃描時序圖

水平掃描時間是指完成一行掃描所需要的時間,其倒數(shù)代表行頻率;垂直掃描時間是指完成整個屏幕掃描需要的時間,倒數(shù)為場頻率,即一屏刷新一次的頻率。常見的有60 Hz,75 Hz等。在本文中,時鐘頻率以700×480@59.94 Hz(60 Hz)為例,每場對應(yīng)著525個行周期(信號是N制式,525=10+2+480+33),其中480是圖像顯示行。每一場都有場同步信號,脈沖的寬度是2個行周期的脈沖,每顯示行有860點時鐘,其中700點是有效顯示區(qū),每一行有行同步信號,該脈沖寬度為96個脈沖。由此可以算出:行頻為525×59.94=31 469 Hz;需要的時鐘頻率為:525×860×59.94≈27 MHz。VGA的行時序、場時序分別包括4個參數(shù):顯示前沿、同步脈沖、顯示后沿和顯示有效時序段,參數(shù)值見表1。

2 VGA驅(qū)動程序的FPGA實現(xiàn)

FPGA(Field?Programmable Gate Array)現(xiàn)場可編程門陣列,是整個系統(tǒng)的核心。FPGA擁有廣泛的硬件資源,功能強大,可重配置能力強,保密性好,系統(tǒng)硬件規(guī)模小、投資少等特點,是嵌入式設(shè)計的主流平臺之一[18?19],利用FPGA編程器件實現(xiàn)VGA顯示,實際應(yīng)用廣泛。系統(tǒng)組成框架圖如圖3所示。

表1 參數(shù)值

圖3 系統(tǒng)框架圖

(1) 系統(tǒng)通過CCD紅外攝像頭采集紅外圖像LVDS數(shù)據(jù)傳輸給FPGA芯片,F(xiàn)PGA內(nèi)部實現(xiàn)的功能包括:圖像采集模塊、亮度值轉(zhuǎn)換為灰度值模塊、SRAM控制模塊、VGA控制模塊。

(2) 圖像采集模塊獲取紅外圖像LVDS數(shù)據(jù),根據(jù)紅外圖像的時鐘信號及同步信號劃分出一塊存儲地址及一幀圖像的大小。

(3) 亮度值轉(zhuǎn)換為灰度值模塊是對紅外圖像亮度值映射到灰度值的轉(zhuǎn)換,也就說獲得紅外圖像亮度范圍為0~65 535映射到灰度范圍0~255上。

(4) SRAM控制模塊是對外圍SRAM芯片的讀/寫操作,也就是說通過SRAM控制模塊可以把轉(zhuǎn)換好的紅外圖像數(shù)據(jù)存儲到SRAM芯片,新數(shù)據(jù)來到更新SRAM芯片中數(shù)據(jù),讀信號來到讀取SRAM芯片中數(shù)據(jù),是一種乒乓讀寫操作的實現(xiàn)。

(5) VGA控制模塊實現(xiàn)了使用27 MHz時鐘輸出700×480@60 Hz VGA信號,同時控制ADV7125芯片輸出到VGA顯示屏幕上。

VGA驅(qū)動程序需要完成的任務(wù)是:行同步信號和列同步信號根據(jù)VGA時序產(chǎn)生,在有效像素期間內(nèi)將顯示顏色的數(shù)據(jù)傳輸?shù)絉GB;顯示模式和刷新頻率不同時,同步信號的前、后、同步信號、有效像素數(shù)也不同,需要通過像素時鐘率來進行設(shè)置;例如表1中數(shù)據(jù),以700×480,60 Hz為例,像素時鐘為27 MHz,像素時鐘=(16+96+48+700)×(10+2+33+480)×60=27 MHz。

以下是本設(shè)計中VGA實現(xiàn)顯示的Verilog代碼:

/*

vga(700*480, 60hz)

dclk=27M hs:Horizontal vs:Vertical

every Vertical has 525 Horizontals

every Horizontal has 860 point

IDEA BY XIAYANG

*/

module vga_drive(

//vga port////////////////////////////////////////////

hs, //vga hs

vs, //vga vs

reset, //reset

clk, //vga clk input 27M

rgb_r, //vga red output[9:0]

rgb_b, //

rgb_g, //

blank, //blank=hs&&vs

vga_sync, //tvsync=0

vga_clk, //clk to ad7125 27M

//sram port////////////////////////////////////////////

sram_addr, //sram address output[17:0]

sram_data, //sram data input[15:0]

ce_n,

we_n,

lb_n,

ub_n,

oe_n

);

////////////////////////////////////////////////////////

input clk,reset;

input[15:0] sram_data;

output[17:0] sram_addr;

output hs,vs,blank,vga_sync,vga_clk,ce_n,we_n,lb_n,ub_n,oe_n;

reg vga_clk;

//output[9:0] rgb_r,rgb_g,rgb_b;

output[7:0] rgb_r,rgb_g,rgb_b;

reg hs,vs,ce_n,we_n,lb_n,ub_n,oe_n;

//reg[9:0] rgb_r,rgb_b,rgb_g;

reg[7:0] rgb_r,rgb_b,rgb_g;

reg[17:0] sram_addr;

reg[9:0] h_cnt,v_cnt;

reg[1:0] h_state;

reg[1:0] v_state;

reg flage; //control sram upper data or lower data

reg [1:0] clk_count=0;

//reg lcd_dclk;

parameter video=0,front=1,sync=2,back=3;

assign blank=hs&&vs; //blank

assign vga_sync=0; //tvsync

//assign vga_clk=lcd_dclk; //vga clk 27M

//////////////////////hs&vs(clk)///////////////////////////

always @ (posedge clk)

begin

clk_count<=clk_count+2′d1;

if(clk_count[0])

vga_clk<=1′b0;

else

vga_clk<=1′b1;

end

always@(posedge vga_clk or negedge reset)

begin

if(~reset)

begin

h_cnt<=0;

v_cnt<=0;

end

else if(h_cnt==859)

begin

h_cnt<=0;

if(v_cnt==524)

begin

v_cnt<=0;

end

else v_cnt<=v_cnt+1;

end

else h_cnt<=h_cnt+1;

end

///////////////////////h_state////////////////////////

always @ (posedge vga_clk or negedge reset)

begin

if(~reset)

begin

sram_addr<=0;

flage<=0;

end

else

begin

case(h_state)

video: //video state

begin

hs<=1;

/////////////////control display//////////////////////

we_n<=1;

ce_n<=0;

oe_n<=0;

lb_n<=0;

ub_n<=0;

if(h_cnt%2)

begin

rgb_r[7:0]<=8′b11110000;

rgb_g[7:0]<=8′b11110000;

rgb_b[7:0]<=8′b11110000;

end

else

begin

rgb_r[7:0]<=8′b11110000;

rgb_g[7:0]<=8′b11110000;

rgb_b[7:0]<=8′b11110000;

end

//////////////////////////////////////////////////////

if(h_cnt==639) h_state<=front;

else h_state<= video;

end

front: // front porch

begin

hs<=1;

rgb_r<=0;

rgb_g<=0;

rgb_b<=0;

if(h_cnt==715) h_state<=sync;

else h_state<= front;

end

sync: //sync pulse

begin

hs<=0;

rgb_r<=0;

rgb_g<=0;

rgb_b<=0;

if(h_cnt==811) h_state<=back;

else h_state<= sync;

end

back: //back porch

begin

hs<=1;

rgb_r<=0;

rgb_g<=0;

rgb_b<=0;

if(h_cnt==859) h_state<=video;

else h_state<= back;

end

default: h_state<=video;

endcase

end

end

//////////////////////v_state/////////////////////

always@(posedge vga_clk)

begin

case(v_state)

video: //video state

begin

vs<=1;

if(v_cnt==479) v_state<=front;

else v_state<= video;

end

front: //front proch

begin

vs<=1;endprint

if(v_cnt==489) v_state<=sync;

else v_state<= front;

end

sync: //sync pulse

begin

vs<=0;

if(v_cnt==491) v_state<=back;

else v_state<= sync;

end

back: //back porch

begin

vs<=1;

if(v_cnt==524) v_state<=video;

else v_state<= back;

end

default: v_state<=video;

endcase

end

endmodule

VGA時序控制模塊控制產(chǎn)生700×480的顯示范圍,另外,消隱范圍、水平同步時序信號HS以及垂直同步時序信號VS的值也受VGA時序控制模塊控制[20]。通常情況下,時序計數(shù)器是通過像素時鐘來控制水平同步時序信號HS,譯碼計數(shù)器的值產(chǎn)生HS信號。當(dāng)前像素顯示的位置由計數(shù)器在指定的某一行處產(chǎn)生。一個獨立的計數(shù)器產(chǎn)生垂直時序信號VS,垂直同步計數(shù)器在每個HS脈沖信號來臨時自動加1,譯碼值產(chǎn)生VS信號,計數(shù)器產(chǎn)生當(dāng)前顯示行。這2個計數(shù)器從地址到顯示緩沖器連續(xù)計數(shù)。

3 灰度圖像的實現(xiàn)

這里把能真實地反映自然物本來顏色的圖像稱之為真彩色圖像,真彩色圖像占用的存儲空間大、耗時多[21]。只含有亮度信息,而無色彩信息的圖像稱為灰度圖,例如平時生活中見到的黑白照片:照片的亮度有明暗的變化,但是沒有彩色。在顯示器上要想顯示灰度圖,需要把亮度的值進行量化。亮度值通常包括從0~255的范圍,一共256個級別,其中0是代表最暗即全黑,255代表最亮即全白。在.bmp格式的文件中是沒有灰度圖這一概念的,但是可以通過在.bmp文件中表示出灰度圖。通過利用每一項的 RGB 值都是相同的256色的調(diào)色板來實現(xiàn),也就是說 RGB 值從(0,0,0),(1,1,1)一直到(255,255,255)這樣的方式。其中(0,0,0)是全黑色,(255,255,255)是全白色,中間的代表灰色。這樣,灰度圖就可以用256色圖來表示,同理灰度級別也可以用256級別來表示。本文中VGA顯示系統(tǒng)中灰度圖的研究和添加,使得顯示器不僅能顯示彩色,同時可以有不同灰度等級的圖像輸出。

4 結(jié) 語

本文在基于FPGA的VGA圖像顯示系統(tǒng)的研究中,通過基于FPGA進行的設(shè)計以及VGA顯示接口的使用,使系統(tǒng)的成本大大降低,數(shù)據(jù)傳輸速度增強。在應(yīng)用上可以根據(jù)時鐘頻率大小設(shè)置分辨頻率大小,相比專用IP模塊減少了不必要的電路配置,增加了模塊的靈活性。另外,添加了顯示彩色圖像可以轉(zhuǎn)化為灰度圖的設(shè)計,完善了輸出圖像多為彩色圖的不足,使輸出圖像的色彩變化更具選擇性。

參考文獻

[1] 董兵,朱齊丹,文睿.基于FPGA的VGA圖像控制器的設(shè)計與實現(xiàn)[J].應(yīng)用科技,2006,33(10):42?45.

[2] 朱奕丹,方怡冰.基于FPGA的圖像采集與VGA顯示系統(tǒng)[J].計算機應(yīng)用,2011,31(5):1258?1264.

[3] 劉威,石彥杰,高博.基于FPGA的VGA顯示模式和像素頻率的識別[J].電子工程師,2008,34(1):50?52.

[4] 蔣艷紅.基于FPGA的VGA圖像信號發(fā)生器設(shè)計[J].電子測量技術(shù),2008,31(3):78?81.

[5] 楊欽,周云飛,胡永兵.基于FPGA的視頻圖像采集與顯示系統(tǒng)設(shè)計[J].計算機工程與設(shè)計,2013,34(6):1988?1992.

[6] 邵忠俊,程光偉.基于FPGA的視頻采集與顯示模塊設(shè)計[J].電子元器件應(yīng)用,2010,12(12):24?25.

[7] 劉文英.基于FPGA的視頻圖像預(yù)處理系統(tǒng)的設(shè)計與實現(xiàn)[D].天津:天津師范大學(xué),2010.

[8] 祝長鋒,肖鐵軍.基于FPGA的視頻圖像采集系統(tǒng)的設(shè)計[J].計算機工程與設(shè)計,2008,29(17):4404?4407.

[9] 張亞平,賀占莊.基于FPGA的VGA顯示模塊設(shè)計[J].計算機技術(shù)與發(fā)展,2007,17(6):242?245.

[10] 鄭爭兵.基于FPGA的VGA波形顯示系統(tǒng)設(shè)計與實現(xiàn)[J].液晶與顯示,2014,29(1):88?93.

[11] 周卓然,徐道連,呂鳳飛,等.基于FPGA的VGA圖像顯示系統(tǒng)的設(shè)計與實現(xiàn)[J].儀表技術(shù)與傳感器,2012(7):90?92.

[12] 袁堂青,張玉璘.基于FPGA的VGA漢字顯示系統(tǒng)設(shè)計與實現(xiàn)[J].濟南大學(xué)學(xué)報:自然科學(xué)版,2011,25(1):37?38.

[13] 熊文彬,蔣泉,曲建軍,等.基于FPGA實現(xiàn)的視頻顯示系統(tǒng)[J].液晶與顯示,2011,26(1):92?93.

[14] 陳姚節(jié),盧建華.基于FPGA的VGA顯示接口的研究與設(shè)計[J].交通與計算機,2005,23(2):47?49.

[15] Video Electronics Standards Association. VESA and industry standards and guidelines for computer display monitor timing (DMT) [S]. San Jose, USA: VESA, 1998.

[16] 朱文偉,許忠仁.基于FPGA的VGA圖像控制器的設(shè)計與實現(xiàn)[J].貴州大學(xué)學(xué)報:自然科學(xué)版,2009,26(2):109?111.

[17] 劉樂善.微型計算機接口技術(shù)及應(yīng)用[M].武漢:華中科技大學(xué)出版社,1999.

[18] 鄭爭兵.一種基于FPGA的UART電路設(shè)計[J].國外電子測量技術(shù),2010,29(7):85?87.

[19] 鄭爭兵.基于DSP Builder的FIR數(shù)字濾波器設(shè)計與驗證[J].陜西理工學(xué)院學(xué)報:自然科學(xué)版,2013,29(2):34?38.

[20] 郭永彩,蘇渝維,高潮.基于FPGA的紅外圖像實時采集系統(tǒng)設(shè)計與實現(xiàn)[J].儀器儀表學(xué)報,2011,32(3):514?519.

[21] 周雪芹,劉曉紅.利用VC實現(xiàn)真彩色位圖到灰度圖的轉(zhuǎn)換[J].模式識別與仿真技術(shù),2005,24(3):25?27.endprint

主站蜘蛛池模板: 久久亚洲欧美综合| 亚洲综合天堂网| 91在线激情在线观看| 国产菊爆视频在线观看| 亚洲精选高清无码| 日韩无码视频网站| 91久久偷偷做嫩草影院电| 国产色婷婷视频在线观看| 久久激情影院| 国产精品99久久久久久董美香| av无码一区二区三区在线| 好紧好深好大乳无码中文字幕| 亚洲欧洲日韩综合色天使| 中文字幕波多野不卡一区| 欧美成人手机在线视频| 中文字幕一区二区视频| 日韩一级二级三级| 精品少妇人妻一区二区| 香蕉eeww99国产精选播放| 亚洲香蕉伊综合在人在线| 亚洲精品无码不卡在线播放| 亚洲欧美日韩中文字幕一区二区三区 | 精品久久香蕉国产线看观看gif| 无码精油按摩潮喷在线播放| 成人午夜视频网站| 成人精品午夜福利在线播放| 亚洲一区精品视频在线| 亚洲男人天堂2020| 直接黄91麻豆网站| 91精品专区国产盗摄| 四虎永久在线| 欧美精品一区在线看| 免费AV在线播放观看18禁强制| 538国产视频| 国产成人精品视频一区二区电影| 免费一级全黄少妇性色生活片| 日韩一区精品视频一区二区| 国产视频a| 在线一级毛片| 日本www色视频| 青青草原国产精品啪啪视频| 久久久久免费看成人影片| 久久婷婷国产综合尤物精品| 国产福利免费在线观看| 国产午夜精品鲁丝片| 五月天综合婷婷| 国产精品美女网站| 高清无码一本到东京热| 欧美成人A视频| 国产九九精品视频| 精品亚洲欧美中文字幕在线看| 福利国产微拍广场一区视频在线| 三级国产在线观看| 国产精品不卡片视频免费观看| 国产福利一区在线| 97无码免费人妻超级碰碰碰| 久久特级毛片| 91综合色区亚洲熟妇p| 亚洲欧美综合另类图片小说区| 依依成人精品无v国产| 国产精品一区二区在线播放| 国产精品妖精视频| 一级毛片免费观看不卡视频| 国产亚洲视频在线观看| 国产成人久久777777| 久久视精品| 久久黄色免费电影| 欧美视频在线播放观看免费福利资源| 成人噜噜噜视频在线观看| 国产成人精品2021欧美日韩| 国产精品99在线观看| 亚洲日产2021三区在线| 国产成人综合亚洲欧洲色就色| 久久这里只有精品66| 亚洲国产精品久久久久秋霞影院| 浮力影院国产第一页| 日韩av无码精品专区| 在线永久免费观看的毛片| 中国一级特黄视频| 欧洲av毛片| 日本手机在线视频| 精品成人一区二区三区电影|