《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的VGA波形顯示方法研究
基于FPGA的VGA波形顯示方法研究
來源:微型機與應用2011年第16期
胡建革, 宋海聲, 陶中幸, 金 晶
(西北師范大學 物理與電子工程學院, 甘肅 蘭州 730070)
摘要: 介紹了基于現場可編程門陣列(FPGA)技術實現波形顯示的兩種方法,同時針對波形顯示中出現的不穩定性提出了一種穩定顯示波形的策略。首先利用高速A/D轉換器將采集的波形信號進行波形穩定控制,然后存進FPGA片內的RAM中,最后以VGA方式實時地顯示出來。給出了兩種方法的VGA波形顯示圖,并對比分析了兩種方法的特點。
Abstract:
Key words :

摘   要: 介紹了基于現場可編程門陣列(FPGA)技術實現波形顯示的兩種方法,同時針對波形顯示中出現的不穩定性提出了一種穩定顯示波形的策略。首先利用高速A/D轉換器將采集的波形信號進行波形穩定控制,然后存進FPGA片內的RAM中,最后以VGA方式實時地顯示出來。給出了兩種方法的VGA波形顯示圖,并對比分析了兩種方法的特點。
關鍵詞: 現場可編程門陣列; 視頻圖形陣列; 波形顯示方法

    隨著微電子技術的發展,應用FPGA技術開發的信號處理系統在各種行業中得到了廣泛的應用。VGA是IBM公司在1987年隨PS/2機一起推出的一種視頻傳輸標準,具有分辨率高、顯示速度快、顏色豐富等優點,在彩色顯示器領域得到了廣泛的應用。采用FPGA設計VGA控制器也是近幾年研究的一個熱點,這種方式設計的顯示系統,在不使用VGA顯示卡的情況下,實現圖像的顯示和控制,具有成本低、結構簡單、應用靈活的優點。目前關于這方面的研究論文主要集中在顯示原理的介紹、FPGA設計VGA時序控制器[1-2]以及圖像顯示方法[3-4]上,至于波形的顯示方法主要集中在計算機上通過顯卡實現,利用FPGA而無需顯卡的VGA顯示波形的討論比較少見。本文依據VGA顯示原理,介紹兩種VGA顯示波形的方法,給出了兩種波形顯示方法的流程圖,同時針對波形顯示中出現的不穩定性提出了一種穩定顯示波形的策略,并給出了VGA顯示的結果波形。顯示方法利用Verilog HDL 語言作為邏輯描述手段,在QuartusII軟件環境下使用Stratix II系列的FPGA芯片完成。 1 VGA顯示原理
 常見的彩色顯示器一般由CRT構成,彩色由R、G、B三色組成。采用逐行掃描的顯示方式,陰極射線槍發出的電子束打在涂有熒光粉的熒光屏上,產生R、G、B 三基色,最后合成一個彩色圖像。
 對于圖像的顯示,可以利用行、場同步信號的計數器,在顯示可視區間內按照圖片的大小劃定行和列的起始坐標和終止坐標,當掃描點在圖像顯示區域內時,根據掃描點在圖像顯示區中的相對坐標位置,計算得到當前要顯示的圖像像素點在圖像存儲器中的地址,然后讀取顯示。
    如圖1所示,x表示行計數器的計數值(行坐標),y表示列計數器計數值(列坐標),顯示的分辨率為H×V,(x,y)為顯示區域內的任意一像素點。波形顯示區域的大小為M×N,起始點為(m0,n0),(m,n)則為掃描點在波形顯示區域中的相對坐標。當掃描點到達波形顯示區域時, 即滿足以下關系:
  
則有m=x-m0,n=y-n0;此時,可以將m作為波形存儲器的地址,取出波形數據進行顯示,波形存儲器的大小可以設置為大于或等于M。

2 波形顯示方法
 在這里討論兩種波形顯示的方法。假設存儲在波形RAM中的數據為x(k),(m,n)為掃描點在波形顯示區域中的相對坐標。
    方法一:如圖2(a)流程所示,當掃描點進入波形顯示區域時,開始讀取波形RAM中的數據,將讀出的數據x(k)與當前掃描點在波形顯示區域中的縱坐標n或者N-n作比較,如果相等則顯示,否則不顯示。圖2(b)所示為方法一顯示的效果圖。

    方法二:如圖3(a)流程所示,當掃描點進入波形顯示區域時,開始讀取波形RAM中的數據,將當前掃描點在波形顯示區域中的縱坐標n或者N-n與讀出的當前數據x(k)和上一個波形數據x(k-1)進行對比,如果掃描點剛好處于這兩個值之間則顯示,否則不予顯示。圖3(b)所示為方法二顯示的效果圖。

 

 

3 顯示控制器設計
 VGA顯示控制器須提供R、G、B三基色圖像信號,HS行同步信號和VS場同步信號。由于VGA接口顯示器僅能處理串行模擬信號,因此,VGA控制器所產生的信號經D/A轉換器將數字信號轉變為模擬信號后發送給顯示器使用。VGA顯示器正確、完整地顯示數字圖像包括時序的構建和數字圖像信息的模擬化兩個方面。據此系統硬件實現框圖如圖4所示,系統硬件由ADC控制模塊、波形穩定控制模塊、RAM存儲模塊、VGA控制模塊組成。在ADC控制模塊的控制下將A/D轉換器轉換后的數字信號經波形穩定模塊處理后,存入數據緩存器RAM內,而后VGA控制器在驅動顯示器的時候,讀取數據緩存器中的數據進行顯示[5]。通常VGA顯示器顯示的數據量較大,而FPGA內置的片內存儲器資源很難滿足存儲量的需求,因此,一般都需要通過外接存儲器進行擴展,對于圖像等大數據量處理系統通常選用SDRAM進行擴展[6],本系統只進行波形的顯示,不進行數據處理等操作,故片內存儲器足夠滿足使用要求。

 需要說明的是,信號的A/D采集時鐘選為125 MHz,而VGA的顯示標準選擇的是視頻電子標準協會VESA(Video Electronics Standards Association)即為1 280×1 024@60 Hz,故像素時鐘為108 MHz。為了產生這兩種時鐘,在FPGA片外接100 MHz的晶振,使用FPGA內部兩個鎖相環經倍頻后得到。對于不同時鐘速率之間的數據交換, 一般會通過使用FIFO進行緩沖,本文使用雙端口RAM進行緩存,配置為一個讀端口和一個寫端口,兩個端口擁有各自獨立的時鐘(分別為108 MHz和125 MHz), 設計簡單的控制時序就可實現數據的正確讀寫。
3.1 存儲數據寬度的選擇
 通常ADC的分辨率為12 bit或者14 bit,支持補碼形式表示,數字信號表示的最大范圍為4 096或者16 384,而實際的顯示器的分辨率遠遠小于此值,常見的有640×480、1 024×768、1 280×1 024等。因此根據顯示波形區域的大小,存儲在顯示緩存器中數據寬度可以縮減,例如波形顯示區域的大小為1 024×512,選用橫向顯示,則可將顯示數據的寬度截取為9 bit,這樣一來最大值不會超過511,避免了數據值較大而無法顯示的情況。本文中所選用的波形顯示區域大小為1 024×768,即M=1 024,N=768,顯示數據截取為10 bit,但需注意,并不是從采集進來的數字信號直接截取。為了防止數據較大而溢出波形顯示區域,作如下處理:首先從ADC采集進來的數據分別截取9 bit和8 bit,然后將截取后的兩個數據進行相加,結果為10 bit數據,其最大值不會超過768,這樣就防止了顯示溢出而導致的波形顯示失真。
3.2 穩定顯示波形策略
 由于系統采集的時鐘與VGA顯示的像素時鐘不同,通常都會選取部分數據進行顯示,而其余的數據將會被丟棄,因此如何選取數據變得尤為重要,如果選取不合適,會造成顯示波形閃動,無法分辨。為了使顯示的波形穩定,在數據采集時進行了預處理:首先判斷掃描點是否在波形顯示區域內,如果在,則讀取波形RAM中的數據并顯示;否則對采集進來的信號進行基準點檢測,當檢測到基準點時,開始向波形RAM中寫數據,寫滿時停止寫入,而后面采集的信號全部丟棄。利用這種方式,顯示的基準點位于顯示區域最左邊線,而通常需要將顯示的基準點移至顯示區域的中心位置。對于這種方式的實現方案是:首先定制大于或等于2倍于顯示寬度大小的波形RAM,當掃描點不在波形顯示區域中時,開始將采集的數據進行存儲。當數據存儲地址大于顯示區域寬度一半時,開始檢測基準點,同時將采集的數據繼續寫入波形RAM中,檢測到基準點時,將此點對應的數據地址tadd保存起來,而后繼續存儲直至存滿為止。當掃描點到達波形顯示區域時,從地址radd開始讀取數據進行顯示,這樣就達到了目的。其中地址radd的計算公式為:
    
 需要說明的是,以上介紹的穩定顯示波形策略,存儲器資源占用很少,大量采集的數據將會被丟失。當VGA控制器以像素時鐘讀取波形RAM時,從ADC采集進來的數據不會寫入波形RAM,以保持波形的完整性;當VGA控制器不讀取波形RAM時,ADC采集進來的數據以采集速率寫入波形RAM中,直到寫滿后停止。對于本系統設計,當VGA控制器不讀取波形RAM時,能夠保證波形RAM寫滿完整一幀數據。當n0≤y≤n0+N成立時,需要的時間為1 280×768÷108 MHz≈9.102μs,對波形RAM不進行寫入操作。不滿足時,需要的時間為1280×256÷108 MHz≈2.427 μs;如果波形RAM的大小為2 KB,采集速率為125 MHz, 則寫入波形RAM的時間為2048÷125 MHz≈16.384 ns,可見對于波形RAM有足夠的時間進行寫入操作。以上分析均沒有考慮消隱所用的時間。3.3 VGA時序
 在VGA 接口協議中,不同的顯示模式都有嚴格的工業標準、不同的分辨率或不同的刷新頻率,故其時序也不相同[7]。VESA的標準參考顯示時序如圖5所示,B為行同步信號,占用112個像素時鐘周期,C為行消隱后肩, E為行消隱前肩,D為有效數據顯示期;P為場同步信號,占用3個行周期,Q為場消隱后肩,S為場消隱前肩,R為行有效顯示期。在逐行掃描情況下,1 280×1 024分辨率有效顯示區域為每行1 280個像素,一場1 024行,實際考慮到行消隱和場消隱時間的影響,實際分辨率為1 688×1 066。場同步信號VS用來確定一幀圖像的開始和結束時間,確保圖像數據從左到右、從上到下掃描,以形成一幅幅圖像。行同步信號HS標志著一行像素的開始和結束,使圖像數據顯示在屏幕從左到右的有效區域。

    首先根據刷新頻率確定主時鐘頻率,然后由主時鐘頻率和圖像分辨率計算出行總周期數,再把同步、消隱各時序段的時間按照主計數脈沖源頻率折算成時鐘周期數。在FPGA中利用計數器,以計算出的各時序段時鐘周期數為基準產生不同寬度和周期的脈沖信號,利用它們的邏輯組合產生視頻DAC的控制信號和VGA接口的同步信號。
4 實驗結果及分析
 對本文提到的波形顯示方法進行了實驗驗證,分別對采集的正弦波和方波進行兩種方法的顯示。圖6(a)為方法一顯示的方波,可以看出,方法一對于變化比較陡峭的波形顯示,會出現很多虛點,視覺效果不佳,不利于顯示波形變化陡峭的波形。圖6(b)為方法二顯示的方波,這種方法對于任意波形的顯示都具有很好的顯示效果,不存在方法一中提到的波形不連續情況,視覺上達到平滑的效果。由此可見,方法二顯示的波形線條清晰,適合各種波形的顯示,比方法一顯示的波形視覺效果更好。

 本文針對VGA顯示波形的美觀性要求,首先在介紹VGA顯示原理和時序控制器的設計方法的基礎上研究了波形存儲器的數據寬度選擇以及一種波形穩定顯示的策略,然后探討了兩種VGA顯示波形的方法,第一種方法可以顯示“變化緩慢”的波形,對于“比較陡峭”的波形顯示不連續,效果不佳;第二種方法對于任意一種波形都可以連續地顯示,具有很好的視覺顯示效果。本文所述的波形顯示方法為新型示波器的設計提供了設計思路。
參考文獻
[1] 趙麗莉,邸志剛.用FPGA實現數字語音系統中的VGA控制器[J].電視技術, 2007, 47(6):166-170.
[2] 鄧春健,王琪,徐秀知. 基于FPGA和ADV7123的BGA顯示接口的設計和應用[J].電子器件,2006,29(12):1325-1328.
[3] 王恒心,熊慶國,王鑫. 基于FPGA/CPLD的嵌入式VGA顯示系統[J].微計算機信息, 2008,24(9-2):146-148.
[4] 陳彬,伍乾永,劉永春.基于FPGA的VGA的控制模塊設計[J].微電子學,2008,38(4):306-308.
[5] 陳兆節,盧建華.基于FPGA的VGA顯示接口的研究與設計[J].交通與計算機,2005,23(2): 47-49.
[6] 孫艷,孫愛良,王紫婷.基于FPGA的VGA顯示控制器的實現[J].自動化與儀器儀表,2008(6):106-107.
[7] 曹允.基于FPGA的VGA時序彩條信號實現方法及應用[J].電子工程師,2002,28(7):42-45.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品美女主播| 国产偷国产偷亚洲高清97cao| 欧美一区二区视频在线| 中文在线不卡视频| 夜夜爽99久久国产综合精品女不卡| 久久精品导航| 欧美在线观看一区二区三区| 亚洲一区二区在线免费观看视频 | 国产模特精品视频久久久久| 欧美三日本三级三级在线播放| 欧美国产综合视频| 欧美激情一级片一区二区| 宅男精品视频| 亚洲激情校园春色| 亚洲久色影视| 一区二区三区精密机械公司 | 亚洲成人在线视频播放| 久久精品盗摄| 亚洲精品国精品久久99热| 亚洲精品一线二线三线无人区| 亚洲精品中文字幕女同| 99精品视频免费| 亚洲视频久久| 午夜精品视频| 欧美综合国产| 久久亚洲欧美| 欧美精品一区二区三区四区| 欧美日韩视频一区二区三区| 欧美日韩视频一区二区三区| 国产精品视频免费| 国产曰批免费观看久久久| 在线看片成人| 亚洲精品永久免费精品| 亚洲无限乱码一二三四麻| 午夜视频在线观看一区| 亚洲高清久久| 中文一区二区在线观看| 欧美在线免费| 欧美va亚洲va日韩∨a综合色| 欧美日韩国产首页在线观看| 国产精品乱码| 一区二区三区在线高清| 亚洲美女诱惑| 午夜久久久久久| 亚洲精品欧美激情| 午夜精品久久久久久久久| 久久香蕉国产线看观看网| 欧美激情视频一区二区三区免费| 国产精品高潮久久| 激情av一区| 亚洲精品综合在线| 亚洲欧美日韩视频一区| 亚洲精品久久久久久下一站| 亚洲免费小视频| 久久综合狠狠| 欧美午夜视频网站| 国语精品中文字幕| 一本色道久久88亚洲综合88| 99这里有精品| 亚洲性感激情| 亚洲高清在线观看| 亚洲午夜一区二区| 久久久五月天| 国产精品v欧美精品v日韩| 红桃av永久久久| 在线一区亚洲| 亚洲激情第一区| 新67194成人永久网站| 欧美电影免费观看高清| 国产精品网站在线观看| 亚洲电影av在线| 亚洲欧美成人一区二区在线电影 | 亚洲国产精品va在看黑人| 正在播放亚洲| 免费精品99久久国产综合精品| 国产精品久久久久久久免费软件 | 午夜精品久久久久久99热| 亚洲每日在线| 久久全球大尺度高清视频| 国产精品成人国产乱一区| 亚洲国产欧美一区| 欧美在线不卡视频| 亚洲欧美一区二区原创| 欧美精品精品一区| 狠狠色2019综合网| 午夜精品电影| 亚洲综合日韩在线| 欧美屁股在线| 亚洲国产mv| 久久精品人人做人人综合| 欧美亚洲尤物久久| 国产精品二区在线| 99精品热6080yy久久 | 快播亚洲色图| 国产亚洲午夜| 亚洲欧美日韩视频二区| 亚洲免费影视| 欧美三级视频在线| 亚洲精品一线二线三线无人区| 亚洲黄色免费电影| 久久综合一区二区| 国产主播精品| 欧美亚洲免费电影| 欧美一进一出视频| 激情文学综合丁香| 国产精品欧美在线| 一区二区三区四区五区精品视频| 亚洲免费电影在线观看| 欧美高清免费| 亚洲国产美女久久久久| 亚洲激情第一区| 老**午夜毛片一区二区三区| 国产亚洲欧美一区| 性欧美8khd高清极品| 欧美一区二区三区视频在线观看| 欧美视频精品在线| 一区二区三区视频在线播放| 一区二区三区四区五区精品| 欧美日本一区二区高清播放视频| 亚洲国产网站| 亚洲精品一区在线| 欧美日韩美女| 夜夜嗨av一区二区三区| 亚洲午夜黄色| 国产精品久久久久aaaa| 亚洲一品av免费观看| 性久久久久久久| 国产农村妇女精品一区二区| 午夜精品视频一区| 久久不射电影网| 狠狠久久亚洲欧美| 亚洲欧洲日韩在线| 欧美激情视频在线播放 | 亚洲欧美日韩一区| 黄色亚洲网站| 亚洲啪啪91| 欧美久久精品午夜青青大伊人| 亚洲高清免费| 亚洲日本一区二区三区| 久久久噜噜噜久久狠狠50岁| 激情成人综合网| 久久成人综合网| 欧美a一区二区| 亚洲精品偷拍| 亚洲欧美日韩国产一区| 国产精品一二三四区| 欧美一区观看| 欧美成人一二三| 99精品热6080yy久久 | 欧美在线观看视频一区二区| 国产视频自拍一区| 最近看过的日韩成人| 欧美日韩国产影片| 亚洲一卡久久| 欧美成ee人免费视频| 日韩一区二区免费高清| 性色av一区二区三区红粉影视| 国产一区二区三区黄| 91久久精品国产91久久| 欧美日韩国产一级| 新狼窝色av性久久久久久| 欧美成va人片在线观看| 亚洲午夜一区二区三区| 久久久久久久久伊人| 亚洲人成人一区二区在线观看| 亚洲中字黄色| 精品不卡一区| 亚洲一品av免费观看| 国语自产精品视频在线看抢先版结局 | 鲁大师成人一区二区三区 | 亚洲美女淫视频| 久久av一区二区| 亚洲精品久久久久久久久| 新67194成人永久网站| 亚洲电影在线| 午夜精品婷婷| 亚洲国产视频一区二区| 欧美一区二区视频在线| 亚洲日本免费电影| 久久成人精品视频| 日韩午夜激情av| 久久久午夜电影| 国产精品99久久久久久人| 美女视频黄免费的久久| 一区二区不卡在线视频 午夜欧美不卡'| 久久精品国产第一区二区三区最新章节| 亚洲国产综合在线| 久久精品99久久香蕉国产色戒| 亚洲欧洲一二三| 久久精品亚洲精品| 一本色道久久综合亚洲精品不卡 | 久久riav二区三区| 国产精品成人va在线观看| 亚洲精品欧美极品| 国内精品国语自产拍在线观看| 亚洲欧美激情视频| 亚洲精品乱码久久久久久| 老司机一区二区| 午夜精品一区二区三区电影天堂| 欧美日韩精品一区二区|