1紅基色 red
2綠基色 green
3藍基色 blue
4地址碼 ID Bit
5自測試 ( 各家定義不同 )
6紅地
7綠地
8藍地
9保留 ( 各家定義不同 )
10數(shù)字地
11地址碼
12地址碼
13行同步
14場同步
15地址碼 ( 各家定義不同 )
http://www.weeqoo.com/zhuanti/VGA-Interface/
VGA接口
VAG接口設(shè)計應(yīng)用VGA接口常用電路VGA接口定義
VGA接口產(chǎn)生原因: 顯卡所處理的信息最終都要輸出到顯示器上,顯卡的輸出接口就是電腦與顯示器之間的橋梁,它負責(zé)向顯示器輸出相應(yīng)的圖像信號。CRT顯示器因為設(shè)計制造上的原因,只能接受模擬信號輸入,這就需要顯卡能輸入模擬信號。VGA接口就是顯卡上輸出模擬信號的接口,VGA(VIDEOGraphics Array)接口,也叫D-Sub接口。雖然液晶顯示器可以直接接收數(shù)字信號,但很多低端產(chǎn)品為了與VGA接口顯卡相匹配,因而采用VGA接口。
VGA接口是一種D型接口,上面共有15針空,分成三排,每排五個。VGA接口是顯卡上應(yīng)用最為廣泛的接口類型,多數(shù)的顯卡都帶有此種接口。有些不帶VGA接口而帶有DVI(DigitalVisual Interface數(shù)字視頻接口)接口的顯卡,也可以通過一個簡單的轉(zhuǎn)接頭將DVI接口轉(zhuǎn)成VGA接口,通常沒有VGA接口的顯卡會附贈這樣的轉(zhuǎn)接頭。
目前大多數(shù)計算機與外部顯示設(shè)備之間都是通過模擬VGA接口連接,計算機內(nèi)部以數(shù)字方式生成的顯示圖像信息,被顯卡中的數(shù)字/模擬轉(zhuǎn)換器轉(zhuǎn)變?yōu)镽、G、B三原色信號和行、場同步信號,信號通過電纜傳輸?shù)斤@示設(shè)備中。對于模擬顯示設(shè)備,如模擬CRT顯示器,信號被直接送到相應(yīng)的處理電路,驅(qū)動控制顯像管生成圖像。而對于LCD、DLP等數(shù)字顯示設(shè)備,顯示設(shè)備中需配置相應(yīng)的A/D(模擬/數(shù)字)轉(zhuǎn)換器,將模擬信號轉(zhuǎn)變?yōu)閿?shù)字信號。在經(jīng)過D/A和A/D2次轉(zhuǎn)換后,不可避免地造成了一些圖像細節(jié)的損失。VGA接口應(yīng)用于CRT顯示器無可厚非,但用于連接液晶之類的顯示設(shè)備,則轉(zhuǎn)換過程的圖像損失會使顯示效果略微下降。
基于DSP Builder的VGA接口設(shè)計
引言
隨著電子技術(shù)的發(fā)展,VGA(視頻圖形陣列)接口出現(xiàn)在很多嵌入式平臺上,用于圖像信息的實時顯示等
在某些情況下,設(shè)計者希望通過普通的顯示器或投影儀觀測FPGA內(nèi)部的一些矢量信號,即把帶VGA接口的顯示器當(dāng)作示波器使用等,這就需要對數(shù)據(jù)進行處理,使之能夠在顯示器上實時顯示
本文基于DSPBuilder的VGA接口設(shè)計方法,對VGA接口時序和系統(tǒng)設(shè)計需求進行了介紹,并在硬件平臺下實現(xiàn)一維與二維信號的顯示
VGA接口標(biāo)準(zhǔn)
VGA顯像原理
顯示器通過光柵掃描的方式,電子束在顯示屏幕上有規(guī)律地從左到右、從上到下掃描在掃描過程中,受行同步信號控制,逐點往右掃,完成一行掃描的時間倒數(shù)為行頻;同時又在行同步脈沖期內(nèi)回到屏幕的左端,從上往下形成一幀,在垂直方向上受場同步信號控制,完成一幀的時間倒數(shù)為場頻圖像的顯示過程即為在電子束掃描過程中,將地址與圖像的像素依次對應(yīng),每一個被尋址的像素只獲得其自身的控制信息,而與周圍的像素不發(fā)生干擾,從而可以顯示穩(wěn)定的圖像
VGA接口是顯示卡上輸出模擬信號的接口,也叫D-Sub接口這種接口上面共有15個針孔,分成3排,每排5個,通過模擬VGA接口顯示圖像的工作原理,將計算機內(nèi)部以數(shù)字方式生成的顯示圖像信息,通過顯卡中的ADC轉(zhuǎn)變?yōu)镽、G、B三基色信號和行、場同步信號,通過電纜傳輸?shù)斤@示設(shè)備中
VGA時序
VGA的時序包括水平時序和垂直時序,且兩者都包含的時序參數(shù)有:水平(垂直)同步脈沖、水平(垂直)同步脈沖結(jié)束到有效顯示數(shù)據(jù)區(qū)開始之間的寬度(后沿)、有效顯示區(qū)寬度、有效數(shù)據(jù)顯示區(qū)結(jié)束到水平(垂直)同步脈沖寬度開始之間的寬度(前沿)水平有效顯示區(qū)寬度與垂直有效顯示區(qū)寬度邏輯與的區(qū)域為可視區(qū)域,其他區(qū)域為消隱區(qū)
一行或一場的時序信息如圖1所示
圖1 行/場時序圖
根據(jù)目前的顯示器性能參數(shù),以LG 505E為例,其最大分辨率已可達到1024×768@60Hz,水平掃描頻率30kHz~54kHz,垂直掃描頻率50Hz~120Hz,帶寬75MHz
基于DSP Builder的VGA接口設(shè)計方法
本設(shè)計需要完成的功能包括產(chǎn)生VGA時序以及基于VGA接口的信號顯示設(shè)計符合VGA接口標(biāo)準(zhǔn)的接口系統(tǒng),在該系統(tǒng)下可顯示一維矢量信號與二維圖像信號,并體現(xiàn)系統(tǒng)的可集成性,將該接口集成到SOPC系統(tǒng)中
系統(tǒng)時鐘確定
根據(jù)系統(tǒng)時鐘計算公式:
時鐘頻率=(行像素數(shù)+行消隱點數(shù))×(一場行數(shù)+消隱行數(shù))×刷新率
對于標(biāo)準(zhǔn)的VGA接口時序640×480@60Hz而言,時鐘頻率為800×525×60=25.175MHz
在本設(shè)計中我們采用1024×768@60Hz的XGA顯示方式,因此系統(tǒng)的時鐘頻率PixelClk=1344×806×60=64.99MHz
狀態(tài)機設(shè)計
由VGA時序可設(shè)計有限狀態(tài)機來完成時序信號,以本設(shè)計1024×768@60Hz為例,對于行同步信號設(shè)計四個狀態(tài),即行同步脈沖信號區(qū)(horsync)、后沿區(qū)(backporch)、數(shù)據(jù)區(qū)(video)以及前沿區(qū)(frONtporch)用計數(shù)器hcnt的值來區(qū)分各階段信號,最大記數(shù)值為1344場同步信號也設(shè)計成如上四個狀態(tài),當(dāng)完成一行的掃描后場計數(shù)器vcnt開始計數(shù),因此一場可以有多行
VGA DAC芯片及相應(yīng)信號的生成
一般的VGA DAC芯片需要輸入相應(yīng)的驅(qū)動信號才能工作,包括時鐘信號、同步信號、有效顯示區(qū)信號等系統(tǒng)所用DAC芯片為FMS3818,其信號包括時鐘與數(shù)據(jù)信號(RGB)輸入、控制信號輸入(sync與blankn)以及RGB信號DA輸出行同步與場同步信號與經(jīng)VGADAC產(chǎn)生的RGB數(shù)據(jù)信號一并輸出到VGA接口,驅(qū)動CRT顯示在本設(shè)計中時鐘信號65MHz、同步信號為horsync與versync相與產(chǎn)生,有效顯示區(qū)信號為行與場的有效數(shù)據(jù)區(qū)信號相與產(chǎn)生
一維矢量信號顯示方式
在二維的空間中顯示一維矢量信號,常規(guī)顯示方法可以是將一維信號從左至右顯示,如圖2(a)所示,就如在普通的示波器上觀察到的一樣這樣,在VGA顯示時,一行掃過多個采樣點,需把要顯示的采樣點位置計算出來,當(dāng)行信號掃過時,把采樣點的值賦給像素點,就完成了信號的顯示而對于連續(xù)的一維信號,因為行頻比場頻高,圖2(b)的顯示方法更加合適為此,將一維信號的時間軸映射到垂直方向上,幅值映射到水平方向上,當(dāng)行掃描信號掃過一行時,映射一維信號的一個采樣點,即一行信號對應(yīng)一個像素,當(dāng)完成一行信號后接著回掃,開始掃下一行一般情況下,場頻確定后,就可以根據(jù)一維信號的頻率確定出一場可以顯示的周期數(shù),當(dāng)完成一場信號后,在屏幕上就顯示一幀圖像
在具體實現(xiàn)時,需要對一維正弦波信號的參數(shù)作兩點控制:控制正弦波的頻率,保證一行掃描對應(yīng)一個采樣點;控制正弦波的幅度,將其控制在1024×768的有效顯示區(qū)域中
對正弦波頻率來說,如果頻率太高,一行會掃到多個采樣點;如果頻率太低,一整屏無法顯示一個完整周期的信號在本設(shè)計中,用一個較低的采樣時鐘控制正弦波的采樣,正弦波存放在一個查找表中如果要在一屏中顯示n個周期的正弦信號,那么需要的采樣頻率fs=刷新率×n×查找表中一個周期的點數(shù)
控制正弦波幅度即讓正弦波的最大值不能超出屏幕的顯示區(qū)VGA有效顯示寬度為1024,則屏幕兩端的空閑部分寬度(圖2(a)和(c))都為100
(a);(b)
圖2 一維正弦波VGA顯示示意圖
二維圖像信號的顯示方式
二維圖像的顯示過程較一維信號容易實現(xiàn)對二維圖像,可以將二維圖像信號轉(zhuǎn)變成一維像素序列在屏幕顯示區(qū)域內(nèi),當(dāng)行與場同步信號掃過時,將該像素點對應(yīng)的RGB值進行賦值,就可以完成二維圖像的顯示對于本設(shè)計,VGA時序為1024×768模式,圖像的像素數(shù)在這個范圍內(nèi)可以完全在屏幕上顯示,不會發(fā)生像素丟失如果圖像比較小,還可以將圖像控制在屏幕的任意區(qū)域內(nèi)由于圖像大小受存儲空間限制,如果想要實現(xiàn)更高像素點的圖像,就必須借用外部的SRAM或SDRAM來做圖像緩存
Avalon MM接口控制
在DSP Builder中,Altera提供了本設(shè)計與SOPC的接口——Avalon MM接口
Avalon MM接口定義的接口信號主要有片選、讀使能、寫使能、地址,以及數(shù)據(jù)等根據(jù)外設(shè)的邏輯,選用不同的接口定義信號,通過這些信號Avalon主端(CPU)可以向掛在Avalon總線上的從端外設(shè)寫地址與數(shù)據(jù)信號,Avalon主端外設(shè)也可以主動去獲取Avalon總線上的SRAM或SDRAM中的數(shù)據(jù)不管是主傳輸還是從傳輸,都需要符合Avalon總線的讀寫時序才能發(fā)起一次正確的數(shù)據(jù)傳輸
可以利用Avalon MM接口將DSP Builder中設(shè)計的模塊做成自定義外設(shè)NiosⅡ CPU就可以利用Avalon總線與DSPBuilder中產(chǎn)生的自定義外設(shè)進行通信,在本設(shè)計中對集成到SOPC系統(tǒng)上的VGA接口的地址賦值為0x1后,數(shù)據(jù)寫入0x1,VGA接口控制器接收到數(shù)據(jù),就會根據(jù)設(shè)計產(chǎn)生VGA時序信息及RGB信號,在屏幕上顯示圖像圖3為整個一維信號VGA顯示系統(tǒng)的結(jié)構(gòu)圖
圖3 系統(tǒng)結(jié)構(gòu)圖
仿真與硬件驗證
本設(shè)計在2C70 DSP硬件開發(fā)平臺下驗證
借助于DSP Builder中的SignalComplier模塊,可以容易地將設(shè)計完成的系統(tǒng)直接轉(zhuǎn)化成RTL級的硬件描述語言,在QuartusⅡ下完成VGA時序的驗證與正弦波信號的下載與顯示
從顯示器上硬件仿真結(jié)果來看,正弦波的幅度在有效的顯示區(qū)域內(nèi)呈周期性變化,因此當(dāng)顯示器與VGA口的J21相連時,屏幕上正弦波幅度在設(shè)計的范圍內(nèi)顯示,一幅屏幕所顯示的周期數(shù)和DSPBuilder中所設(shè)定的一致在此基礎(chǔ)上還可以調(diào)整正弦波的采樣頻率,控制正弦波的顯示頻率與幅度大小,實現(xiàn)示波器的功能,觀察FPGA內(nèi)部的信號
結(jié)語
隨著VGA接口的廣泛使用,這種結(jié)合FPGA與DSP Builder的系統(tǒng)級設(shè)計方法已經(jīng)展現(xiàn)優(yōu)勢從整個設(shè)計流程來看,系統(tǒng)的靈活性強,可靠性高,設(shè)計周期大大縮減,成本降低,且系統(tǒng)的可擴展性強未來,VGA接口的圖像與視頻監(jiān)控系統(tǒng)應(yīng)用將會很有市場
嵌入式系統(tǒng)的VGA接口設(shè)計
引言
目前越來越多的嵌入式處理器上集成了LCD控制器。典型的如三星的S3C2410A,INTEL的Xscale系列。這樣可方便地外接大屏幕的LCD,且分辨率也能達到640×480,甚至800×600;色深能從6.5萬色(16位)到26萬色(18位)。但是大屏幕LCD的價格都比較昂貴。另一方面,普通計算機的VGA接口顯示器,保有量巨大、技術(shù)成熟,如果能通過接口轉(zhuǎn)換手段,讓嵌入式處理器直接支持VGA顯示器,則能很大地利用現(xiàn)有資源,節(jié)約系統(tǒng)成本。
LCD接口轉(zhuǎn)換為VGA接口
VGA (VIDEOGraphics Array)接口信號為模擬信號。其關(guān)鍵信號有5個,分別是HorizONtal Sync水平同步信號(也叫行同步信號),垂直同步信號VerticalSync(也叫場同步信號),Red紅色,GREEN 綠色和Blue藍色。電子槍從左至右,從上至下地進行掃描,每行結(jié)束時,用行同步信號進行同步;掃描完所有行后用場同步信號進行場同步。因電子槍偏轉(zhuǎn)需要時間,所以掃完回轉(zhuǎn)中,要對電子槍進行消隱控制:在每行結(jié)束后的回轉(zhuǎn)過程中進行行消隱;在每場結(jié)束后的回轉(zhuǎn)過程中進行場消隱。消隱過程中不發(fā)送電子束。
掃描式LCD接口(以S3C2410A的LCD控制器為例圖1),在每一場完畢后,也是用VSYNC來進行場同步;每一行完畢后,也是用HSYNC進行行同步;也有VCLK像素時鐘,用于鎖存數(shù)據(jù);
其場同步信號,寬度為(VSPW+1),之前有場消隱前肩(VFPD+1),之后有場消隱后肩(VBPD+1);
其行同步信號,寬度為(HSPW+1),之前有行消隱前肩(HFPD+1),之后有場消隱后肩(HBPD+1);
可以發(fā)現(xiàn),掃描式LCD接口的同步信號時序和VGA接口是一致的。原因是發(fā)明LCD后,盡管顯示原理不同,但為了在時序上和CRT兼容,也采用了這樣的控制時序。基于此,完全能將LCD接口轉(zhuǎn)換為VGA接口。
圖1 三星S3C2410A的LCD信號時序圖(來自S3C2410A數(shù)據(jù)手冊)
方案實現(xiàn)
VGA接口只需Hsync和Vsync兩個同步信號和RGB三個色彩分量信號。而掃描式LCD接口的同步信號的時序和VGA接口的完全一致,可直接把兩個同步信號接入VGA接口。
S3C2410A的LCD控制器輸出的是RGB數(shù)字信號。因此若用一些DAC芯片把RGB數(shù)字信號轉(zhuǎn)換為模擬信號,即可實現(xiàn)VGA接口的RGB信號輸入。這類視頻專用DAC芯片較多,例如ADI公司的ADV7120;CHRONTEL公司的CH7004C。實驗中選用的CHRONTEL公司的CH7004C。S3C2410A的LCD控制器與CH7004C的連接如表1。
表1 S3C2410A的LCD控制器與CH7004C的連接
在選擇數(shù)據(jù)格式時,RGB565較合適,因為16位數(shù)據(jù)已經(jīng)有6.5萬色,完全足夠;24位數(shù)據(jù)時每個像素實際占用32位,4個字節(jié),傳輸時對S3C2410A的總線資源占用太大。
整個電路原理圖如圖2所示。其中一些需要注意的地方有:
CH7004C工作在從模式下,由S3C2410A的I2C控制。在實驗中使用的是精度較好的日本村田(murata)的阻容元件,包括10K,360歐,75歐和10pF的電容。10K用于I2C總線的上拉,360歐用于RSET引腳接地;75歐為R,G,B三個輸出管腳和地之間的終端電阻,10pF電容用于晶振。另外,CH7004C的IIC地址,是通過把ADDR引腳拉高或拉低來設(shè)定;接地時,根據(jù)芯片手冊,其7位的I2C地址為1110110,最后加一個讀/寫位。
圖2 CH7004C的電路原理圖
CH7004C的關(guān)鍵寄存器及設(shè)置CH7004C片內(nèi)有25個寄存器。其中比較關(guān)鍵的是Display Mode,InputData Format,Sync Polarity三個寄存器。DisplayMode顯示模式寄存器,片內(nèi)地址0X00,輸入分辨率為640×480,由芯片手冊,可選模式從Mode13到Mode17均可。實驗中選擇的是默認的Mode17,對應(yīng)參數(shù)為0X6A。InputDataFormat輸入數(shù)據(jù)格式寄存器,片內(nèi)地址是0X04,因為輸入的數(shù)據(jù)格式為RGB565,且需打開pass-through模式,故對應(yīng)參數(shù)為0X20。SyncPolarity同步信號極性寄存器,片內(nèi)地址0X0D,根據(jù)輸入的Hsync和Vsync的極性來設(shè)定,如果是均為負脈沖,則把VSP位和HSP位都置0;如果均為正脈沖,則把VSP位和HSP位都設(shè)置為1。實驗中,把S3C2410A的LCD控制器的同步信號極性均設(shè)為低電平有效,故參數(shù)為0X00。
S3C2410A的LCD控制器設(shè)置
作為輸出源,S3C2410A的LCD控制器也需要進行相應(yīng)設(shè)置。需要的輸出分辨率是640×480,16位色(RGB565格式),刷新率60Hz。一共有LCDCON1到LCDCON5共5個寄存器需要設(shè)置,具體參數(shù)要參考VGA時序規(guī)范和LCD時序圖(圖1)。所需設(shè)置的寄存器如表2。
表2 S3C2410A的LCD控制器中需要設(shè)置的寄存器
S3C2410A的LCD控制器設(shè)置
作為輸出源,S3C2410A的LCD控制器也需要進行相應(yīng)設(shè)置。需要的輸出分辨率是640×480,16位色(RGB565格式),刷新率60Hz。一共有LCDCON1到LCDCON5共5個寄存器需要設(shè)置,具體參數(shù)要參考VGA時序規(guī)范和LCD時序圖(圖1)。所需設(shè)置的寄存器如表2。
表2 S3C2410A的LCD控制器中需要設(shè)置的寄存器
實驗及數(shù)據(jù)
實驗中,選擇的操作系統(tǒng)嵌入式Linux,內(nèi)核版本2.4.18,圖形系統(tǒng)是Qtopia1.7.0。bootloader選用的韓國MIZI公司的vivi。上電后,vivi將進行初始化,其中包括設(shè)置CH7004,然后再引導(dǎo)進入Linux。對CH7004的操作,完全可以看作對一個IIC接口的EEPROM來進行,可專門定義一個函數(shù)IIC_Write()來寫數(shù)據(jù)。例如對IDF寄存器的設(shè)置為I2C_Write(0xec,0x04,0x20)。設(shè)置好后,CH7004的所有寄存器數(shù)據(jù)如表3。
實驗中還發(fā)現(xiàn),設(shè)定SPR同步信號極性寄存器時,如果都設(shè)同步信號為正脈沖有效,接顯示器也能正常顯示,但是有閃爍。負脈沖有效則無這種情況,故推薦均設(shè)置為負脈沖有效。
表3 正常工作時,CH7004C的各個寄存器讀出的數(shù)據(jù)
結(jié)語
本文提供的LCD接口轉(zhuǎn)換為VGA接口的解決方案,經(jīng)過實際驗證,切實可行。在Linux和Windows CE4.2兩種嵌入式操作系統(tǒng)下均進行了測試,Linux下VGA顯示器的畫面非常穩(wěn)定;在Windows CE4.2下基本穩(wěn)定,略有閃爍。該方案最大特點在于讓嵌入式系統(tǒng)直接支持VGA顯示器,具備較大的實際應(yīng)用意義。
圖3 Linux下外接VGA顯示器
ARM嵌入式平臺的VGA接口設(shè)計
大多數(shù)嵌入式產(chǎn)品的顯示終端都選擇LCD,但在某些需要大屏幕顯示的應(yīng)用中,工業(yè)級LCD的價格比較昂貴,且現(xiàn)有的大屏幕顯示器(包括CRT顯示器和LCD顯示器)一般都采用統(tǒng)一的15針VGA顯示接口。三星公司ARM9芯片S3C2410以其強大的功能和高性價比在目前嵌入式產(chǎn)品中得到廣泛的應(yīng)用。筆者在開發(fā)基于ARM嵌入式平臺的血液流變測試儀的過程中,成功地利用高性能視頻D/A轉(zhuǎn)換芯片ADV7120,將S3C2410自帶的LCD掃描式接口轉(zhuǎn)換為VGA接口,使之能夠驅(qū)動VGA接口的顯示器。1 VGA接口介紹
近年來,業(yè)界制定出了眾多數(shù)字化的顯示接口協(xié)議,較為典型的是DVI(Digital VisualInterface)。由于數(shù)字接口的標(biāo)準(zhǔn)還未統(tǒng)一,廠商支持各自的標(biāo)準(zhǔn),導(dǎo)致數(shù)字接口的標(biāo)準(zhǔn)遲遲未定。VGA接口是一個模擬信號接口。作為在顯示領(lǐng)域多年的接口標(biāo)準(zhǔn),直到今天它仍是所有顯示終端最為成熟的標(biāo)準(zhǔn)接口,現(xiàn)在某些高端的電視也支持VGA接口。
15針VGA接口信號定義如表1所列。除了2個NC信號、3根顯示數(shù)據(jù)總線和5個GND信號,比較重要的信號是3個RGB彩色分量信號和2個掃描同步信號HSYNC和VSYNC。VGA接口中彩色分量采用RS343電平標(biāo)準(zhǔn)。RS343電平標(biāo)準(zhǔn)的峰峰值電壓為1V。該標(biāo)準(zhǔn)定義的4個電平范圍是:
白電平--+0.714 V;
黑電平--+0.054 V;
消隱電平--0 V;
同步電平---0.286 V。
2 S3C2410 LCD控制器簡介
三星公司的ARM9芯片S3C2410功能強大,性價比高,在目前的嵌入式產(chǎn)品中得到了廣泛的應(yīng)用。S3C2410帶有LCD控制器,可以很方便地控制驅(qū)動掃描式接口的LCD顯示。
2.1 引腳功能信息
LCD控制器提供了掃描式數(shù)據(jù)傳輸引腳和時序控制引腳,具體描述如下:
VFRAME/VSYNC--LCD控制器和LCD驅(qū)動器之間的幀同步信號。該信號告訴LCD屏新一幀開始了。LCD控制器在一幀顯示完成后立即插入一個VFRAME信號,開始新一幀的顯示。
VLINE/HSYNC--LCD控制器和LCD驅(qū)動器之間的行同步脈沖信號。該信號用于LCD驅(qū)動器將水平線(行)移位寄存器的內(nèi)容傳送給LCD屏顯示。LCD控制器在整行數(shù)據(jù)移人LCD驅(qū)動器后,插入一個VLINE信號。
VCLK--LCD控制器和LCD驅(qū)動器之間的像素時鐘信號。LCD控制在VCLK的上升沿處送出數(shù)據(jù),LCD驅(qū)動器在VCLK的下降沿處采樣。
VM/VDEN--LCD驅(qū)動器的AC信號。VM信號被LCD驅(qū)動器用于改變行和列的電壓極性,從而控制像素點的顯示。VM信號可以與每幀同步,也可以與可變數(shù)據(jù)的VLINE信號同步。
VD[23:0]--LCD像素數(shù)據(jù)輸出端口。
2.2 寄存器
S3C2410的LCD控制寄存器主要有:LCDCON1寄存器、LCDCON2寄存器、LCDCON3寄存器、LCDCON4寄存器、LCDCON5寄存器。這些寄存器的設(shè)置與顯示屏信息、控制時序和數(shù)據(jù)傳輸格式等密切相關(guān),在設(shè)計中需要根據(jù)顯示設(shè)備的具體信息正確設(shè)置這些寄存器才能使S3C2410正??刂乞?qū)動不同的顯示屏。
2.3 內(nèi)部結(jié)構(gòu)
S3C2410的LCD控制器用來傳輸圖像數(shù)據(jù)并產(chǎn)生相應(yīng)的控制信號,由REGBANK(控制寄存器組)、LCDCD-MA(專用DMA)、VIDPCS(視頻信號處理單元)、LPC3600和TIMEGEN(時序信號產(chǎn)生單元)組成,如圖1所示。其中REGBANK包含17個可編程寄存器和幾個256×16的調(diào)色板存儲器,用來配置LCD控制器并設(shè)置相應(yīng)的參數(shù);而LCDCDMA提供了視頻信號的快速傳輸通道,自動通過系統(tǒng)總線從系統(tǒng)幀緩存中取出視頻數(shù)據(jù)并傳輸?shù)揭曨l信號處理單元;VIDPCS將專用DMA中取出的信號整形并提高驅(qū)動能力等處理后,輸出到外部數(shù)據(jù)端口VD[23:0];TIMEGEN和LPC3600負責(zé)產(chǎn)生LCD所需要的控制時序。
3 VGA接口設(shè)計
利用高性能視頻D/A轉(zhuǎn)換芯片ADV7120將S3C24l0自帶的LCD掃描式接口轉(zhuǎn)換為VGA接口,然后用帶有VGA接口的顯示器顯示。
3.1 ADV7120簡介
ADV7120是美國ADI公司生產(chǎn)的高速視頻數(shù)模轉(zhuǎn)換芯片,其像素掃描時鐘頻率有30 MHz、50 MHz、80MHz三個等級。ADV7120在單芯片上集成了3個獨立的8位高速D/A轉(zhuǎn)換器,可以分別處理紅、綠、藍視頻數(shù)據(jù),特別適用于高分辨率模擬接口的顯示終端和要求高速D/A轉(zhuǎn)換的應(yīng)用系統(tǒng)。
ADV7120的輸入及控制信號非常簡單:3組8位的數(shù)字視頻數(shù)據(jù)輸入端,分別對應(yīng)RGB視頻數(shù)據(jù),數(shù)據(jù)輸入端采用標(biāo)準(zhǔn)TTL電平接口;4條視頻控制信號線包括復(fù)合同步信號SYNC、消隱信號BLANK、白電平參考信號REFWHITE和像素時鐘信號CLOCK;外接一個1.23V數(shù)模轉(zhuǎn)換參考電壓源和1個輸出滿度調(diào)節(jié)。只有4條輸出信號線:模擬RGB信號采用高阻電流源輸出方式,可以直接驅(qū)動75Ω同軸傳輸線;同步參考電流輸出信號Isync用來在綠視頻模擬信號中編碼視頻同步信息。
3.2 原理圖設(shè)計
VGA接口的同步信號和LCD掃描式接口的同步信號是一致的。利用ADV7120可以方便地將S3C24l0的LCD掃描式接口轉(zhuǎn)換成VGA接口,電路原理如圖2所示。
S3C2410處理器接口中的同步掃描信號HSYNC和VSYNC直接接到VGA接口,VDEN信號(顯示數(shù)據(jù)有效信號)則被用于控制ADV7120芯片。由于ADV7120對參考電平的要求精度很高,不能以電阻分壓電路代替。在此采用了1.2V電壓基準(zhǔn)芯片AD589來產(chǎn)生參考電壓。該電路設(shè)計中需要注意的是【】,在PCB布板時要將模擬地和數(shù)字地分開。
4 S3C2410相關(guān)寄存器設(shè)置
以分辨率為640×480、刷新頻率為60Hz、16位彩色顯示模式為例,根據(jù)圖3所示VGA接口同步信號時序,介紹S3C2410中LCDCON1~LCDCON5寄存器的設(shè)置。
4.1 LCDCONl寄存器
LINECNT:行計數(shù)器的狀態(tài)位。只讀,不用設(shè)置。
CLKVAL:確定VCLK頻率的參數(shù)。公式為VCLK=HCLK/[(CLKVAL+1)×2],單位為Hz。筆者所用的硬件系統(tǒng)HCLK=100MHz,640×480的顯示屏需要VCLK=20 MHz,故需設(shè)置CLKVAL=1。
MMODE:確定VM的改變速度。在此選擇MMODE=O,為每幀變化模式。
PNRMODE:確定掃描方式。選擇PNRMODE=0x3,為TFT LCD面板掃描模式。
BPPMODE:確定BPP(每像素位數(shù))模式。在此選擇BPPMODE=0xC,為TFT 16位模式。
ENVID:數(shù)據(jù)輸出和邏輯信號使能控制位。選擇ENVID=1,為允許數(shù)據(jù)輸出和邏輯控制。
4.2 LCDCON2寄存器
VBPD:確定幀同步信號和幀數(shù)據(jù)傳輸前的一段延遲時間,是幀數(shù)據(jù)傳輸前延遲時間和行同步時鐘間隔寬度的比值,如圖3,VBPD=t3/t6=1.02mS/31.77μs=32。
LINEVAL:確定顯示的垂直方向尺寸。公式:LINEVAL=YSIZE-1=479。
VFPD:確定幀數(shù)據(jù)傳輸完成后到下一幀同步信號到來的一段延遲時間,是幀數(shù)據(jù)傳輸后延遲時間和行同步時鐘間隔寬度的比值,如圖3,VFPD=t5/t6=0.35ms/31.77μs=11。
VSPW:確定幀同步時鐘脈沖寬度,是幀同步信號時鐘寬度和行同步時鐘間隔寬度的比值。如圖3,VSPW=t2/t6=0.06ms/31.77μs=2。
4.3 LCDCON3寄存器
HBPD:確定行同步信號和行數(shù)據(jù)傳輸前的一段延遲時間,描述行數(shù)據(jù)傳輸前延遲時間內(nèi)VCLK脈沖個數(shù),如圖3,VBPD=t7×VCLK=1.89μs×25MHz=47。
HOZAL:確定顯示的水平方向尺寸。公式HOZAL=XSIZE-1=639。
HFPD:確定行數(shù)據(jù)傳輸完成后到下一行同步信號到來的一段延遲時間,描述行數(shù)據(jù)傳輸后延遲時間內(nèi)VCLK脈沖個數(shù),如圖3,HFPD=t9×VCLK=0.94μs×25 MHz=24。
4.4 LCDCON4寄存器
HSPW:確定行同步時鐘脈沖寬度。描述行同步脈沖寬度時間內(nèi)VCLK脈沖個數(shù),如圖3,HSPW=3.77μs×25MHz=94。
4.5 LCDCON5寄存器
VSTATUS:垂直方向狀態(tài)。只讀,不用設(shè)置。
HSTATUS:水平方向狀態(tài)。只讀,不用設(shè)置。
BPP24BL:確定顯示數(shù)據(jù)存儲格式。此處設(shè)置BPP24BL=0x0,為小端模式存放。
FRM565:確定16位數(shù)據(jù)輸出格式。此處設(shè)置FRM565=0x1,為5:6:5格式輸出。
INVVCLK:確定VCLK脈沖有效邊沿極性。根據(jù)屏幕信息確定,此處選擇INVVCLK=0xl,VCLK上升沿到來時數(shù)據(jù)傳輸開始。
INVVLlNE:確定HSYNC脈沖的極性。由圖3可知,為負極性,設(shè)置INVVLINE=0x1選擇負極性脈沖。
INVVFRAME:確定VSYNC脈沖的極性。由圖3可以看出,為負極性,故設(shè)置INVVFRAME=0x1選擇負極性脈沖。
INVVD:確定數(shù)據(jù)輸出的脈沖極性。根據(jù)屏幕信息確定,此處設(shè)置INVVD=0x0選擇正極性脈沖。
INVVDEN:確定VDEN信號極性。根據(jù)屏幕信息確定,此處設(shè)置INVVDEN=0x0為正極性脈沖。
INVPWREN:確定PWREN信號極性。根據(jù)屏幕信息確定,此處設(shè)置NVPWREN=0x0為正極性脈沖。
INVLEND:確定LEND信號極性。根據(jù)屏幕信息確定,此處設(shè)置INVLEND=0x0為正極性脈沖。
PWREN:PWREN信號輸出允許。設(shè)置PWREN=0xl,允許PWREN輸出。
ENLEND:LEND輸出信號允許。設(shè)置ENLEND=0x1,允許LEND輸出。
BSWP:字節(jié)交換控制位。根據(jù)各自需要設(shè)置,此處設(shè)置BSWP=0x0,禁止字節(jié)交換。
HWSWP:半字交換控制位。根據(jù)各自需要設(shè)置,此處設(shè)置HWSWP=0xl,使能半字節(jié)交換。
5 討論與總結(jié)
S3C2410處理器能夠驅(qū)動24位顏色模式的VGA接口,但當(dāng)處理器數(shù)據(jù)總線負載過大時,顯示效果就不太理想。具體分析所需數(shù)據(jù)帶寬如下:
S3C2410處理器工作在640×480×60 Hz×24位(分辨率為640×480、刷新頻率為60Hz、24位色彩)模式下的數(shù)據(jù)帶寬為:640×480×60×4/(1 024×1024)=70.3MB/s(24位顏色實際占用32位數(shù)據(jù)量),這些數(shù)據(jù)都需要利用DMA方式通過系統(tǒng)的數(shù)據(jù)總線從SDRAM中獲得。而S3C2410處理器在100MHz的總線頻率下,32位內(nèi)存的峰值帶寬是100×32/8=400MB/s,實際帶寬也就100~200 MB/s。那么70.3MB/s的顯示數(shù)據(jù)對于S3C2410處理器過于沉重了,顯示器的屏幕經(jīng)常會出現(xiàn)短暫的黑屏。這是因為系統(tǒng)總線太忙,LCD掃描式接口的數(shù)據(jù)跟不上,掃描時鐘的頻率暫時變慢導(dǎo)致CRT顯示器的同步信號不符合規(guī)范所致。若用16位顏色模式,則數(shù)據(jù)帶寬減為640×480×60×2/(1024×1 024)=35.2MB/s。實際測試中,工作在16位顏色模式下,可以正常顯示60Hz下的640×480的VGA圖形。
綜上分析,如果要支持高分辨率和高刷新率的顯示,需要比較大的數(shù)據(jù)帶寬,對處理器的頻率和總線頻率要求較高。目前的嵌入式處理器在這些方面有很大的限制,不過本設(shè)計可以完全支持16位色彩下640×480×60Hz顯示模式的CRT顯示,并且如果采用LCD作為顯示界面,LCD對刷新率的要求和CRT顯示器不同,LCD可以在刷新率為30Hz的情況下正常顯示。本設(shè)計對解決基于ARM的嵌入式系統(tǒng)中大屏幕顯示方面的問題有很大的實用價值和借鑒意義。
愛華網(wǎng)



