第七章 LCD液晶顯示器_第1頁
第七章 LCD液晶顯示器_第2頁
第七章 LCD液晶顯示器_第3頁
第七章 LCD液晶顯示器_第4頁
第七章 LCD液晶顯示器_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第七章LCD液晶顯示器

7.1LCD顯示器概述LCD它是一種數(shù)字顯示技術(shù),可以通過液晶和彩色過濾器過濾光源,并在平面面板上產(chǎn)生圖像。與傳統(tǒng)的陰極射線管(CRT)相比,LCD占用空間小、低功耗、低輻射、無閃爍、降低視覺疲勞,具有很大的發(fā)展?jié)摿Α?.LCD顯示器的分類扭曲向列型(TN-TwistedNematic);超扭曲向列型(STN-SuperTN);雙層超扭曲向列型(DSTN-Double-layerSuper-TwistedNematic);薄膜晶體管型(TFT-ThinFilmTransistor)。2.LCD的常用指標(biāo)PPI與分辨率PPI是指每平方英寸所擁有的像素(Pixel)數(shù)目??梢?,PPI數(shù)值越高就意味著顯示屏能夠以更高的密度顯示圖像。顯示的密度越高,擬真度也就越高。目前通用的TFT液晶顯示屏大部分只有100PPI,如果擁有高一倍的顯示畫質(zhì)(200PPI),顯示效果會更好。分辨率標(biāo)準(zhǔn)目前市面上的分辨率標(biāo)準(zhǔn)多種多樣,主要有VGA、SVGA、UXGA和SXGA+。其中SXGA+所代表的顯示分辨率為1400x1050。Quad-VGA是三菱公司的一種新分辨率標(biāo)準(zhǔn),它所代表的分辨率1280x960,與一般標(biāo)準(zhǔn)XGA的1280x1024顯示分辨率比較,Quad-VGA會較為扁平一點(diǎn)。尺寸標(biāo)示LCD顯示器跟CRT顯示器除顯示方式不同以外,最大的區(qū)別就是尺寸的標(biāo)示方法不一樣。例如,CRT顯示器在規(guī)格中標(biāo)為17英寸,但實(shí)際可視尺寸達(dá)不到17英寸,只有15英寸多些;而對于LCD顯示器,如果標(biāo)示為15.1英寸,那么可視尺寸就是15.1英寸。解析度LCD液晶顯示器不像CRT顯示器,它只支持“真實(shí)解析度”,通常等價(jià)于一般CRT顯示器的最高解析度。其主要差別在于,LCD液晶顯示器只有在“真實(shí)解析度”下才能表現(xiàn)最佳影像效果。解析度低于真實(shí)解析度時(shí),影像可以被呈現(xiàn),但影像無法如真實(shí)解析度般得到優(yōu)化。7.2嵌入式處理器的LCD控制器7.2.1 LCD控制器的接口因?yàn)楣ぷ髟聿煌?,液晶的顯示接口時(shí)序可以分為STN和TFT兩種。目前,一些嵌入式處理器可以同時(shí)支持STN和TFT的LCD顯示器。以STN顯示為例,從圖7.1可以看出片內(nèi)集成的LCD控制器可以產(chǎn)生必要的控制信號,如VFRAME、VLINE、VCLK和VM等。傳輸顯示數(shù)據(jù)。LCD控制器的接口定義如表7-1示。圖7.1 LCD控制器的結(jié)構(gòu)圖信號描述功能VFRAMELCD控制器和LCD驅(qū)動(dòng)器的幀同步信號控制LCD的幀顯示,LCD控制器在一個(gè)完整的幀被顯示后發(fā)送此信號VLINELCD控制器和LCD驅(qū)動(dòng)器的行同步信號LCD控制器通過它將水平移位寄存器中的內(nèi)容顯示到LCD上,LCD控制器一整行數(shù)據(jù)被傳輸?shù)絃CD驅(qū)動(dòng)器后發(fā)送VLINEVCLK刷新時(shí)鐘它是LCD控制器與LCD驅(qū)動(dòng)器之間的像素時(shí)鐘信號,LCD控制器在此信號上升沿發(fā)送數(shù)據(jù),LCD驅(qū)動(dòng)器則在下降沿采樣數(shù)據(jù)VMLCD驅(qū)動(dòng)器的交流信號LCD驅(qū)動(dòng)器用此信號來改變行和列的電壓極性以控制像素的顯示與否VD[7:0]數(shù)據(jù)線LCD像素輸出端口表7-1LCD控制器的接口7.2.2 LCD控制器的設(shè)置

LCD驅(qū)動(dòng)編寫的主要工作就是正確設(shè)置對應(yīng)于所用LCD屏的CPU寄存器。表7-2所示為嵌入式處理器S3C2410中與LCD相對應(yīng)的寄存器,表中給出了各個(gè)寄存器的簡單描述,如果想了解它們的詳細(xì)設(shè)置,請參考S3C2410的用戶手冊。寄存器宏定義地址讀/寫描述復(fù)位LCD控制寄存器1LCDCON10x4d000000讀/寫工作信號控制寄存器0x0LCD控制寄存器2LCDCON20x4d000004讀/寫LCD水平/垂直尺寸定義0x0LCD控制寄存器3LCDCON30x4d000008讀/寫LCD控制寄存器30x0LCD控制寄存器4LCDCON40x4d00000c讀/寫LCD控制寄存器40x0LCD控制寄存器5LCDCON50x4d000010讀/寫LCD控制寄存器50x0幀緩沖地址寄存器1LCDSADDR10x4d000014讀/寫液晶類型和掃描模式定義0x0幀緩沖地址寄存器2LCDSADDR20x4d000018讀/寫設(shè)定顯示緩沖區(qū)信息0x0幀緩沖地址寄存器3LCDSADDR30x4d00001c讀/寫設(shè)定虛擬屏偏移和頁面寬度0x0紅色設(shè)置寄存器REDLUT0x4d000020讀/寫定義8組紅色數(shù)據(jù)查找表0x0綠色設(shè)置寄存器GREENLUT0x4d000024讀/寫定義8組綠色數(shù)據(jù)查找表0x0藍(lán)色設(shè)置寄存器BLUELUT0x4d000028讀/寫定義8組藍(lán)色數(shù)據(jù)查找表0x0抖動(dòng)模式寄存器DITHMODE0x4d00004c讀/寫STN抖動(dòng)模式寄存器0x0臨時(shí)調(diào)色板寄存器TPAL0x4d000050讀/寫TFT臨時(shí)調(diào)色寄存器,其值在下一幀時(shí)將變成視頻數(shù)據(jù)0x0LCD中斷掛起寄存器LCDINTPND0x4d000054讀/寫掛起LCD中斷0x0LCD中斷源掛起寄存器LCDSRCPND0x4d000058讀/寫掛起LCD中斷源0x0LCD中斷屏蔽寄存器LCDINTMSK0x4d00005c讀/寫屏蔽LCD中斷源0x3表7-2 LCD控制器相關(guān)的設(shè)置1.設(shè)置VM、VFRAME、VLINEVM信號通過改變液晶的行列電壓的極性來控制像素的顯示,VM速率可以配置LCDCON1寄存器的MMODE位及LCDCON2寄存器的MVAL[7:0]。VM速率=VLINE速率/(2×MVAL)VFRAME和VLINE信號可以根據(jù)液晶屏的尺寸及顯示模式,配置LCDCON2寄存器的HOZVAL和LINEVAL值,即:HOZVAL=(水平尺寸/VD數(shù)據(jù)位)-1彩色液晶屏?xí)r:水平尺寸=3×水平像素點(diǎn)數(shù)VD數(shù)據(jù)位:VD=4(4位單/雙掃描模式) VD=8(8位單掃描模式)LINEVAL=垂直尺寸一1(單掃描模式)LINEVAL=(垂直尺寸/2)-1(雙掃描模式)2.設(shè)定VCLKVCLK是LCD控制器的時(shí)鐘信號,它的計(jì)算需要先計(jì)算數(shù)據(jù)傳送速率,由此設(shè)定的一個(gè)大于數(shù)據(jù)傳送速率的值為VCLKVAL(LCDCONl[21:12])。數(shù)據(jù)傳送速率=水平只寸×垂直尺寸×幀速率×模式值(MV)3.幀速率幀速率可由以下公式得到: VCLK(Hz)=MCLK/(CLKVAL×2),其中LKVAL大于數(shù)據(jù)傳送速率且不小于2幀速率(Hz)=((1/VCLK)*(HOZVAL+1)+(1/MCLK) *(WLH+WDLY+LINEBLANK))*(LINEVAL+1)]-1?LINEBANK:水平掃描信號LINE持續(xù)時(shí)間設(shè)置(MCLK個(gè)數(shù))。?LINEVAL:顯示屏的垂直尺寸。VCLK的計(jì)算還可以使用以下公式: VCLK(Hz)=(HOZVAL+1)/[(1/(幀速率×(LINEVAL+1))) -((WLH+WDLY+LINEBLANK)/MCLK)]4.設(shè)定數(shù)據(jù)幀顯示控制(LCDBASEU、LCDBASEL、PAGEWIDTH、OFFSIZE、LCDBANK)?LCDBASEU設(shè)置顯示掃描方式中的開始地址(單掃描方式)或高位緩存地址(雙掃描方式)。 ?LCDBASEL是設(shè)置雙掃描方式的低位緩存開始地址??捎靡韵掠?jì)算公式:LCDBASEL=LCDBASEU+(PAGEWIDTH+OFFSIZE)*(LINEVAL+1)?PAGEWDTH是顯示存儲區(qū)的可見幀寬度(半字?jǐn)?shù))。 ?OFFSIZE是顯示存儲區(qū)的前行最后半字和后行第一個(gè)半字之間的半字?jǐn)?shù)。 ?LCDBANK是訪問顯示存儲區(qū)的地址A[27:22]值,ENVID=1時(shí)該值不能改變。7.3 基于Framebuffer的LCD驅(qū)動(dòng)程序?qū)嶋H上,Linux為顯示設(shè)備專門提供了一類驅(qū)動(dòng)程序,叫做幀緩沖(Framebuffer)設(shè)備驅(qū)動(dòng)程序。7.3.1Framebuffer驅(qū)動(dòng)結(jié)構(gòu)FrameBuffer的核心是一塊供顯示使用的內(nèi)存。由系統(tǒng)中顯示機(jī)構(gòu)將顯示內(nèi)存中的內(nèi)容顯示到顯示設(shè)備上。幀緩沖驅(qū)動(dòng)本質(zhì)上是一個(gè)字符設(shè)備的驅(qū)動(dòng),但是具有自己的框架。Linux下FrameBuffer驅(qū)動(dòng)的結(jié)構(gòu)和邏輯都不復(fù)雜,主要需要構(gòu)建驅(qū)動(dòng)程序幀緩沖操作的數(shù)據(jù)結(jié)構(gòu)structfb_ops,在其中包含注冊顯示緩沖實(shí)現(xiàn)函數(shù)的指計(jì)。1.FrameBuffer驅(qū)動(dòng)的作用在程序設(shè)計(jì)中、對顯示的操作即是對顯示內(nèi)存的操作。在簡單的操作系統(tǒng)中,可以直接利用寫顯示內(nèi)存的方法,獲得顯示的效果。在Linux操作系統(tǒng)中,提供了一種普遍的顯示接口:FraraeBuffer驅(qū)動(dòng)。使用FrameBuffer驅(qū)動(dòng)可以更方便地完成應(yīng)用程序的開發(fā)和系統(tǒng)的移植。如果僅僅是需要讓系統(tǒng)顯示出內(nèi)容.只需要向顯示內(nèi)存中寫入數(shù)據(jù),對于Linux,只需要切入到內(nèi)核態(tài),對顯示內(nèi)存進(jìn)行操作即可。從這個(gè)角度來講,用戶不需要FrameBuffer時(shí)驅(qū)動(dòng)也可以操作顯示。FrameBuffer驅(qū)動(dòng)的優(yōu)點(diǎn)在于,它為顯示程序的開發(fā)提供了一個(gè)框架。一方面,它封裝了一部分對顯示內(nèi)存的操作,另一方面,它又對上層提供了統(tǒng)一的接口。開發(fā)者只需要實(shí)觀FrameBuffer驅(qū)動(dòng)對硬件的移植,就可以在上層使用FrameBuffer驅(qū)動(dòng)方便的接口。Linux中幀緩沖驅(qū)動(dòng)主要涉及的文件是include/linux目錄中的fb.h。對于FrameBuffer驅(qū)動(dòng),不僅為用戶自己的程序調(diào)用,還可以被Linux內(nèi)核和各種GUI系統(tǒng)調(diào)用。由于Linux內(nèi)核集成了很多對FrameBuffer驅(qū)動(dòng)的操作,很多GUI系統(tǒng)的顯示部分也是基于FrameBuffer驅(qū)動(dòng)。Linux下的FrameBuffer驅(qū)動(dòng)結(jié)構(gòu)如圖7-2所示。用戶程序GUI系統(tǒng)Linux內(nèi)核FrameBuffer驅(qū)動(dòng)硬件(LCD控制器)移植層統(tǒng)一調(diào)用接口圖7-2Linux下的FrameBuffer驅(qū)動(dòng)結(jié)構(gòu)2.FrameBuffer驅(qū)動(dòng)結(jié)構(gòu)Linux的FrmneBuffer驅(qū)動(dòng)從本質(zhì)上,還是一種字符設(shè)備驅(qū)動(dòng)程序,但是它不直接使用字符設(shè)備驅(qū)動(dòng)程序的框架(file_operations),而是有自己的另外一套框架。fb_info是一個(gè)描述FrameBuffer屬性的數(shù)據(jù)結(jié)構(gòu),以linux2.6內(nèi)核為例,其定義如下:struct

fb_info{

intnode;

intflags;

struct

fb_var_screeninfo

var;/*顯示屏變量*/

struct

fb_fix_screeninfofix:/*顯示屏固定量*/

struct

fb_monspecs

monspecs;/*當(dāng)前監(jiān)視器規(guī)格*/

struct

work_structqueue;/*幀緩沖事件隊(duì)列*/

struct

fb_pixmap

pixmap;/*圖像硬件映射*/

struct

fb_pixmapsprite;/*硬件光標(biāo)映射*/

struct

fb_cmap

cmap;/*當(dāng)前cmap*/

struct

list_head

modelist;/*模式列表*/

struct

fb_ops*flops;

structdevice*device;#ifdefCONFIG_FB_TILEBLITTINGstruetfb_tile_ops*tileops;/*幀緩沖tile操作*/#endifchar__iomem*screen_base;/*虛擬地址*/unsignedlongscreen_size;/*IO重映射VRAM或者0*/void*pseudo_palene;/*為16位顏色的調(diào)色板*/#defineFBINFO_STATE_RUNNING0#defineFBINFO_STATE_SUSPENDED1u32state;/*硬件狀態(tài),例如:掛起*/void*fbcon_par:/*fbcon使用的私有區(qū)域*//*以下為硬件相關(guān)的*/void*par;};在這個(gè)數(shù)據(jù)結(jié)構(gòu)中.最主要的成員為數(shù)據(jù)結(jié)構(gòu)structfb_var_screeninfo,它描述了屏幕的狀態(tài),例如可見顯示分辨率(visibleresolution)、虛擬顯示分辨率(virtualfesolution),虛擬顯示偏移、像索深度等參數(shù)。其定義如下所示:structfb_vat_screeninfo{__u32xres;/*可見分辨率*/__u32yres;__u32xres_virtual;/*虛擬分辨率*/__u32yres_virtual;__u32xoffset;/*虛擬到可見的偏移量*/__u32yoffset;__u32bits_per_pixel;__u32grayscale;/*如果不為0灰度級代替彩色*/structfb_bitfiedred;/*如果為真色彩代表幀緩沖的位域*/__u32grayscale;/*如果不為0灰度級代替彩色*/structfb_bitfiedred;/*如果為真色彩代表幀緩沖的位域*/structfb_bitfiedgreen;/*否則只有長度有意義*/structfb_bitfiedblue;structfb_bitfiedtransp;/*透明度*/__u32nonstd;/*!=0非標(biāo)準(zhǔn)像素格式*/__u32activate;__u32height;/*畫面內(nèi)存映射的高*/__u32width;/*畫面內(nèi)存映射的寬*/__u32accel_flags;/*(廢棄)*/__u32pixclock;/*每秒的像素時(shí)鐘*/__u32left_margin;/*畫面事件同步的值*/__u32right_margin;__u32upper_margin;一u32lower_margin;__u32hsync_len;/*水平同步的長度*/__u32vsync_len;/*垂直同步的長度*/__u32sync;__u32vmode;__u32rotate:/*順時(shí)針轉(zhuǎn)動(dòng)角度*/__u32reserved[5];/*為兼容保留*/};在structfb_var_screeninfo中,支持虛擬顯示屏,其概念為,顯示內(nèi)存比實(shí)際可見區(qū)域要大。可見區(qū)域?qū)嶋H上是顯示內(nèi)存中的一個(gè)部分,它是實(shí)際在LCD上顯示的區(qū)域。在顯示內(nèi)存中,涉及的顯示屬性包括虛擬顯存寬度、虛擬顯存高度、定義偏移量x,偏移量y,可見區(qū)域?qū)挾?、可見區(qū)域高度。虛擬顯示屏的概念如圖11-6所示。虛擬顯存X虛擬顯存Y可見區(qū)域X可見區(qū)域Y偏移量X偏移量Y圖11-6虛擬顯示屏的概念注意:structfb_var_screeninfo定義了一個(gè)功能較為全面的顯示信息,在一般的LCD控制器中,不是每種功能都具有,或者即使LCD控制器有這種功能,但是不實(shí)現(xiàn)也可以完成基本的操作。fb_info的成員structfb_fix_screeninfo定義了顯示輸出設(shè)備的各種屬性,包括顯示緩沖的起始地址、顯示緩沖長度、顯示緩沖類型等。這參數(shù)在設(shè)置完成后,一般都是只讀的。structfb_fix_screeninfo{charid[16];/*辨識字

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論