基于DSP Builder的VGA接口設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
隨著電子技術(shù)的發(fā)展,VGA(視頻圖形陣列)接口出現(xiàn)在很多嵌入式平臺(tái)上,用于圖像信息的實(shí)時(shí)顯示等。在某些情況下,設(shè)計(jì)者希望通過普通的顯示器或投影儀觀測(cè)FPGA內(nèi)部的一些矢量信號(hào),即把帶VGA接口的顯示器當(dāng)作示波器使用等,這就需要對(duì)數(shù)據(jù)進(jìn)行處理,使之能夠在顯示器上實(shí)時(shí)顯示。
本文基于DSP Builder的VGA接口設(shè)計(jì)方法,對(duì)VGA接口時(shí)序和系統(tǒng)設(shè)計(jì)需求進(jìn)行了介紹,并在硬件平臺(tái)下實(shí)現(xiàn)一維與二維信號(hào)的顯示。
VGA接口標(biāo)準(zhǔn)
VGA顯像原理
顯示器通過光柵掃描的方式,電子束在顯示屏幕上有規(guī)律地從左到右、從上到下掃描。在掃描過程中,受行同步信號(hào)控制,逐點(diǎn)往右掃,完成一行掃描的時(shí)間倒數(shù)為行頻;同時(shí)又在行同步脈沖期內(nèi)回到屏幕的左端,從上往下形成一幀,在垂直方向上受場(chǎng)同步信號(hào)控制,完成一幀的時(shí)間倒數(shù)為場(chǎng)頻。圖像的顯示過程即為在電子束掃描過程中,將地址與圖像的像素依次對(duì)應(yīng),每一個(gè)被尋址的像素只獲得其自身的控制信息,而與周圍的像素不發(fā)生干擾,從而可以顯示穩(wěn)定的圖像。
VGA接口是顯示卡上輸出模擬信號(hào)的接口,也叫D-Sub接口。這種接口上面共有15個(gè)針孔,分成3排,每排5個(gè),通過模擬VGA接口顯示圖像的工作原理,將計(jì)算機(jī)內(nèi)部以數(shù)字方式生成的顯示圖像信息,通過顯卡中的ADC轉(zhuǎn)變?yōu)镽、G、B三基色信號(hào)和行、場(chǎng)同步信號(hào),通過電纜傳輸?shù)斤@示設(shè)備中。
VGA時(shí)序
VGA的時(shí)序包括水平時(shí)序和垂直時(shí)序,且兩者都包含的時(shí)序參數(shù)有:水平(垂直)同步脈沖、水平(垂直)同步脈沖結(jié)束到有效顯示數(shù)據(jù)區(qū)開始之間的寬度(后沿)、有效顯示區(qū)寬度、有效數(shù)據(jù)顯示區(qū)結(jié)束到水平(垂直)同步脈沖寬度開始之間的寬度(前沿)。水平有效顯示區(qū)寬度與垂直有效顯示區(qū)寬度邏輯與的區(qū)域?yàn)榭梢晠^(qū)域,其他區(qū)域?yàn)橄[區(qū)。
一行或一場(chǎng)的時(shí)序信息如圖1所示。
圖1 行/場(chǎng)時(shí)序圖
根據(jù)目前的顯示器性能參數(shù),以LG 505E為例,其最大分辨率已可達(dá)到1024×768@60Hz,水平掃描頻率30kHz~54kHz ,垂直掃描頻率50Hz~120Hz,帶寬75MHz。
基于DSP Builder的VGA接口設(shè)計(jì)方法
本設(shè)計(jì)需要完成的功能包括產(chǎn)生VGA時(shí)序以及基于VGA接口的信號(hào)顯示。設(shè)計(jì)符合VGA接口標(biāo)準(zhǔn)的接口系統(tǒng),在該系統(tǒng)下可顯示一維矢量信號(hào)與二維圖像信號(hào),并體現(xiàn)系統(tǒng)的可集成性,將該接口集成到SOPC系統(tǒng)中。
系統(tǒng)時(shí)鐘確定
根據(jù)系統(tǒng)時(shí)鐘計(jì)算公式:
時(shí)鐘頻率=(行像素?cái)?shù)+行消隱點(diǎn)數(shù))×(一場(chǎng)行數(shù)+消隱行數(shù))×刷新率。
對(duì)于標(biāo)準(zhǔn)的VGA接口時(shí)序640×480@60Hz而言,時(shí)鐘頻率為800×525×60=25.175MHz。
在本設(shè)計(jì)中我們采用1024×768@60Hz的XGA顯示方式,因此系統(tǒng)的時(shí)鐘頻率PixelClk=1344×806×60=64.99MHz。
狀態(tài)機(jī)設(shè)計(jì)
由VGA時(shí)序可設(shè)計(jì)有限狀態(tài)機(jī)來完成時(shí)序信號(hào),以本設(shè)計(jì)1024×768@60Hz為例,對(duì)于行同步信號(hào)設(shè)計(jì)四個(gè)狀態(tài),即行同步脈沖信號(hào)區(qū)(horsync)、后沿區(qū)(backporch)、數(shù)據(jù)區(qū)(video)以及前沿區(qū)(frontporch)。用計(jì)數(shù)器hcnt的值來區(qū)分各階段信號(hào),最大記數(shù)值為1344。場(chǎng)同步信號(hào)也設(shè)計(jì)成如上四個(gè)狀態(tài),當(dāng)完成一行的掃描后場(chǎng)計(jì)數(shù)器vcnt開始計(jì)數(shù),因此一場(chǎng)可以有多行。
VGA DAC芯片及相應(yīng)信號(hào)的生成
一般的VGA DAC芯片需要輸入相應(yīng)的驅(qū)動(dòng)信號(hào)才能工作,包括時(shí)鐘信號(hào)、同步信號(hào)、有效顯示區(qū)信號(hào)等。系統(tǒng)所用DAC芯片為FMS3818,其信號(hào)包括時(shí)鐘與數(shù)據(jù)信號(hào)(RGB)輸入、控制信號(hào)輸入(sync與blankn)以及RGB信號(hào)DA輸出。行同步與場(chǎng)同步信號(hào)與經(jīng)VGA DAC產(chǎn)生的RGB數(shù)據(jù)信號(hào)一并輸出到VGA接口,驅(qū)動(dòng)CRT顯示。在本設(shè)計(jì)中時(shí)鐘信號(hào)65MHz、同步信號(hào)為horsync與versync相與產(chǎn)生,有效顯示區(qū)信號(hào)為行與場(chǎng)的有效數(shù)據(jù)區(qū)信號(hào)相與產(chǎn)生。
一維矢量信號(hào)顯示方式
在二維的空間中顯示一維矢量信號(hào),常規(guī)顯示方法可以是將一維信號(hào)從左至右顯示,如圖2(a)所示,就如在普通的示波器上觀察到的一樣。這樣,在VGA顯示時(shí),一行掃過多個(gè)采樣點(diǎn),需把要顯示的采樣點(diǎn)位置計(jì)算出來,當(dāng)行信號(hào)掃過時(shí),把采樣點(diǎn)的值賦給像素點(diǎn),就完成了信號(hào)的顯示。而對(duì)于連續(xù)的一維信號(hào),因?yàn)樾蓄l比場(chǎng)頻高,圖2(b)的顯示方法更加合理。為此,將一維信號(hào)的時(shí)間軸映射到垂直方向上,幅值映射到水平方向上,當(dāng)行掃描信號(hào)掃過一行時(shí),映射一維信號(hào)的一個(gè)采樣點(diǎn),即一行信號(hào)對(duì)應(yīng)一個(gè)像素,當(dāng)完成一行信號(hào)后接著回掃,開始掃下一行。一般情況下,場(chǎng)頻確定后,就可以根據(jù)一維信號(hào)的頻率確定出一場(chǎng)可以顯示的周期數(shù),當(dāng)完成一場(chǎng)信號(hào)后,在屏幕上就顯示一幀圖像。
在具體實(shí)現(xiàn)時(shí),需要對(duì)一維正弦波信號(hào)的參數(shù)作兩點(diǎn)控制:控制正弦波的頻率,保證一行掃描對(duì)應(yīng)一個(gè)采樣點(diǎn);控制正弦波的幅度,將其控制在1024×768的有效顯示區(qū)域中。
對(duì)正弦波頻率來說,如果頻率太高,一行會(huì)掃到多個(gè)采樣點(diǎn);如果頻率太低,一整屏無法顯示一個(gè)完整周期的信號(hào)。在本設(shè)計(jì)中,用一個(gè)較低的采樣時(shí)鐘控制正弦波的采樣,正弦波存放在一個(gè)查找表中。如果要在一屏中顯示n個(gè)周期的正弦信號(hào),那么需要的采樣頻率fs=刷新率×n×查找表中一個(gè)周期的點(diǎn)數(shù)。
控制正弦波幅度即讓正弦波的最大值不能超出屏幕的顯示區(qū)。VGA有效顯示寬度為1024,則屏幕兩端的空閑部分寬度(圖2(a)和(c))都為100。
(a) (b)
圖2 一維正弦波VGA顯示示意圖 [!--empirenews.page--]
二維圖像信號(hào)的顯示方式
二維圖像的顯示過程較一維信號(hào)容易實(shí)現(xiàn)。對(duì)二維圖像,可以將二維圖像信號(hào)轉(zhuǎn)變成一維像素序列。在屏幕顯示區(qū)域內(nèi),當(dāng)行與場(chǎng)同步信號(hào)掃過時(shí),將該像素點(diǎn)對(duì)應(yīng)的RGB值進(jìn)行賦值,就可以完成二維圖像的顯示。對(duì)于本設(shè)計(jì),VGA時(shí)序?yàn)?024×768模式,圖像的像素?cái)?shù)在這個(gè)范圍內(nèi)可以完全在屏幕上顯示,不會(huì)發(fā)生像素丟失。如果圖像比較小,還可以將圖像控制在屏幕的任意區(qū)域內(nèi)。由于圖像大小受存儲(chǔ)空間限制,如果想要實(shí)現(xiàn)更高像素點(diǎn)的圖像,就必須借用外部的SRAM或SDRAM來做圖像緩存。
Avalon MM接口控制
在DSP Builder中,Altera提供了本設(shè)計(jì)與SOPC的接口——Avalon MM接口。
Avalon MM接口定義的接口信號(hào)主要有片選、讀使能、寫使能、地址,以及數(shù)據(jù)等。根據(jù)外設(shè)的邏輯,選用不同的接口定義信號(hào),通過這些信號(hào)Avalon主端(CPU)可以向掛在Avalon總線上的從端外設(shè)寫地址與數(shù)據(jù)信號(hào),Avalon主端外設(shè)也可以主動(dòng)去獲取Avalon總線上的SRAM或SDRAM中的數(shù)據(jù)。不管是主傳輸還是從傳輸,都需要符合Avalon總線的讀寫時(shí)序才能發(fā)起一次正確的數(shù)據(jù)傳輸??梢岳肁valon MM接口將DSP Builder中設(shè)計(jì)的模塊做成自定義外設(shè)。NiosⅡ CPU就可以利用Avalon總線與DSP Builder中產(chǎn)生的自定義外設(shè)進(jìn)行通信,在本設(shè)計(jì)中對(duì)集成到SOPC系統(tǒng)上的VGA接口的地址賦值為0x1后,數(shù)據(jù)寫入0x1,VGA接口控制器接收到數(shù)據(jù),就會(huì)根據(jù)設(shè)計(jì)產(chǎn)生VGA時(shí)序信息及RGB信號(hào),在屏幕上顯示圖像。圖3為整個(gè)一維信號(hào)VGA顯示系統(tǒng)的結(jié)構(gòu)圖。
圖3 系統(tǒng)結(jié)構(gòu)圖
仿真與硬件驗(yàn)證
本設(shè)計(jì)在2C70 DSP硬件開發(fā)平臺(tái)下驗(yàn)證。
借助于DSP Builder中的Signal Complier模塊,可以容易地將設(shè)計(jì)完成的系統(tǒng)直接轉(zhuǎn)化成RTL級(jí)的硬件描述語(yǔ)言,在QuartusⅡ下完成VGA時(shí)序的驗(yàn)證與正弦波信號(hào)的下載與顯示。
從顯示器上硬件仿真結(jié)果來看,正弦波的幅度在有效的顯示區(qū)域內(nèi)呈周期性變化,因此當(dāng)顯示器與VGA口的J21相連時(shí),屏幕上正弦波幅度在設(shè)計(jì)的范圍內(nèi)顯示,一幅屏幕所顯示的周期數(shù)和DSP Builder中所設(shè)定的一致。在此基礎(chǔ)上還可以調(diào)整正弦波的采樣頻率,控制正弦波的顯示頻率與幅度大小,實(shí)現(xiàn)示波器的功能,觀察FPGA內(nèi)部的信號(hào)。
結(jié)語(yǔ)
隨著VGA接口的廣泛使用,這種結(jié)合FPGA與DSP Builder的系統(tǒng)級(jí)設(shè)計(jì)方法已經(jīng)展現(xiàn)優(yōu)勢(shì)。從整個(gè)設(shè)計(jì)流程來看,系統(tǒng)的靈活性強(qiáng),可靠性高,設(shè)計(jì)周期大大縮減,成本降低,且系統(tǒng)的可擴(kuò)展性強(qiáng)。未來,VGA接口的圖像與視頻監(jiān)控系統(tǒng)應(yīng)用將會(huì)很有市場(chǎng)