




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第七章LCD液晶顯示器
7.1LCD顯示器概述LCD它是一種數字顯示技術,可以通過液晶和彩色過濾器過濾光源,并在平面面板上產生圖像。與傳統的陰極射線管(CRT)相比,LCD占用空間小、低功耗、低輻射、無閃爍、降低視覺疲勞,具有很大的發展潛力。1.LCD顯示器的分類扭曲向列型(TN-TwistedNematic);超扭曲向列型(STN-SuperTN);雙層超扭曲向列型(DSTN-Double-layerSuper-TwistedNematic);薄膜晶體管型(TFT-ThinFilmTransistor)。2.LCD的常用指標PPI與分辨率PPI是指每平方英寸所擁有的像素(Pixel)數目。可見,PPI數值越高就意味著顯示屏能夠以更高的密度顯示圖像。顯示的密度越高,擬真度也就越高。目前通用的TFT液晶顯示屏大部分只有100PPI,如果擁有高一倍的顯示畫質(200PPI),顯示效果會更好。分辨率標準目前市面上的分辨率標準多種多樣,主要有VGA、SVGA、UXGA和SXGA+。其中SXGA+所代表的顯示分辨率為1400x1050。Quad-VGA是三菱公司的一種新分辨率標準,它所代表的分辨率1280x960,與一般標準XGA的1280x1024顯示分辨率比較,Quad-VGA會較為扁平一點。尺寸標示LCD顯示器跟CRT顯示器除顯示方式不同以外,最大的區別就是尺寸的標示方法不一樣。例如,CRT顯示器在規格中標為17英寸,但實際可視尺寸達不到17英寸,只有15英寸多些;而對于LCD顯示器,如果標示為15.1英寸,那么可視尺寸就是15.1英寸。解析度LCD液晶顯示器不像CRT顯示器,它只支持“真實解析度”,通常等價于一般CRT顯示器的最高解析度。其主要差別在于,LCD液晶顯示器只有在“真實解析度”下才能表現最佳影像效果。解析度低于真實解析度時,影像可以被呈現,但影像無法如真實解析度般得到優化。7.2嵌入式處理器的LCD控制器7.2.1 LCD控制器的接口因為工作原理不同,液晶的顯示接口時序可以分為STN和TFT兩種。目前,一些嵌入式處理器可以同時支持STN和TFT的LCD顯示器。以STN顯示為例,從圖7.1可以看出片內集成的LCD控制器可以產生必要的控制信號,如VFRAME、VLINE、VCLK和VM等。傳輸顯示數據。LCD控制器的接口定義如表7-1示。圖7.1 LCD控制器的結構圖信號描述功能VFRAMELCD控制器和LCD驅動器的幀同步信號控制LCD的幀顯示,LCD控制器在一個完整的幀被顯示后發送此信號VLINELCD控制器和LCD驅動器的行同步信號LCD控制器通過它將水平移位寄存器中的內容顯示到LCD上,LCD控制器一整行數據被傳輸到LCD驅動器后發送VLINEVCLK刷新時鐘它是LCD控制器與LCD驅動器之間的像素時鐘信號,LCD控制器在此信號上升沿發送數據,LCD驅動器則在下降沿采樣數據VMLCD驅動器的交流信號LCD驅動器用此信號來改變行和列的電壓極性以控制像素的顯示與否VD[7:0]數據線LCD像素輸出端口表7-1LCD控制器的接口7.2.2 LCD控制器的設置
LCD驅動編寫的主要工作就是正確設置對應于所用LCD屏的CPU寄存器。表7-2所示為嵌入式處理器S3C2410中與LCD相對應的寄存器,表中給出了各個寄存器的簡單描述,如果想了解它們的詳細設置,請參考S3C2410的用戶手冊。寄存器宏定義地址讀/寫描述復位LCD控制寄存器1LCDCON10x4d000000讀/寫工作信號控制寄存器0x0LCD控制寄存器2LCDCON20x4d000004讀/寫LCD水平/垂直尺寸定義0x0LCD控制寄存器3LCDCON30x4d000008讀/寫LCD控制寄存器30x0LCD控制寄存器4LCDCON40x4d00000c讀/寫LCD控制寄存器40x0LCD控制寄存器5LCDCON50x4d000010讀/寫LCD控制寄存器50x0幀緩沖地址寄存器1LCDSADDR10x4d000014讀/寫液晶類型和掃描模式定義0x0幀緩沖地址寄存器2LCDSADDR20x4d000018讀/寫設定顯示緩沖區信息0x0幀緩沖地址寄存器3LCDSADDR30x4d00001c讀/寫設定虛擬屏偏移和頁面寬度0x0紅色設置寄存器REDLUT0x4d000020讀/寫定義8組紅色數據查找表0x0綠色設置寄存器GREENLUT0x4d000024讀/寫定義8組綠色數據查找表0x0藍色設置寄存器BLUELUT0x4d000028讀/寫定義8組藍色數據查找表0x0抖動模式寄存器DITHMODE0x4d00004c讀/寫STN抖動模式寄存器0x0臨時調色板寄存器TPAL0x4d000050讀/寫TFT臨時調色寄存器,其值在下一幀時將變成視頻數據0x0LCD中斷掛起寄存器LCDINTPND0x4d000054讀/寫掛起LCD中斷0x0LCD中斷源掛起寄存器LCDSRCPND0x4d000058讀/寫掛起LCD中斷源0x0LCD中斷屏蔽寄存器LCDINTMSK0x4d00005c讀/寫屏蔽LCD中斷源0x3表7-2 LCD控制器相關的設置1.設置VM、VFRAME、VLINEVM信號通過改變液晶的行列電壓的極性來控制像素的顯示,VM速率可以配置LCDCON1寄存器的MMODE位及LCDCON2寄存器的MVAL[7:0]。VM速率=VLINE速率/(2×MVAL)VFRAME和VLINE信號可以根據液晶屏的尺寸及顯示模式,配置LCDCON2寄存器的HOZVAL和LINEVAL值,即:HOZVAL=(水平尺寸/VD數據位)-1彩色液晶屏時:水平尺寸=3×水平像素點數VD數據位:VD=4(4位單/雙掃描模式) VD=8(8位單掃描模式)LINEVAL=垂直尺寸一1(單掃描模式)LINEVAL=(垂直尺寸/2)-1(雙掃描模式)2.設定VCLKVCLK是LCD控制器的時鐘信號,它的計算需要先計算數據傳送速率,由此設定的一個大于數據傳送速率的值為VCLKVAL(LCDCONl[21:12])。數據傳送速率=水平只寸×垂直尺寸×幀速率×模式值(MV)3.幀速率幀速率可由以下公式得到: VCLK(Hz)=MCLK/(CLKVAL×2),其中LKVAL大于數據傳送速率且不小于2幀速率(Hz)=((1/VCLK)*(HOZVAL+1)+(1/MCLK) *(WLH+WDLY+LINEBLANK))*(LINEVAL+1)]-1?LINEBANK:水平掃描信號LINE持續時間設置(MCLK個數)。?LINEVAL:顯示屏的垂直尺寸。VCLK的計算還可以使用以下公式: VCLK(Hz)=(HOZVAL+1)/[(1/(幀速率×(LINEVAL+1))) -((WLH+WDLY+LINEBLANK)/MCLK)]4.設定數據幀顯示控制(LCDBASEU、LCDBASEL、PAGEWIDTH、OFFSIZE、LCDBANK)?LCDBASEU設置顯示掃描方式中的開始地址(單掃描方式)或高位緩存地址(雙掃描方式)。 ?LCDBASEL是設置雙掃描方式的低位緩存開始地址。可用以下計算公式:LCDBASEL=LCDBASEU+(PAGEWIDTH+OFFSIZE)*(LINEVAL+1)?PAGEWDTH是顯示存儲區的可見幀寬度(半字數)。 ?OFFSIZE是顯示存儲區的前行最后半字和后行第一個半字之間的半字數。 ?LCDBANK是訪問顯示存儲區的地址A[27:22]值,ENVID=1時該值不能改變。7.3 基于Framebuffer的LCD驅動程序實際上,Linux為顯示設備專門提供了一類驅動程序,叫做幀緩沖(Framebuffer)設備驅動程序。7.3.1Framebuffer驅動結構FrameBuffer的核心是一塊供顯示使用的內存。由系統中顯示機構將顯示內存中的內容顯示到顯示設備上。幀緩沖驅動本質上是一個字符設備的驅動,但是具有自己的框架。Linux下FrameBuffer驅動的結構和邏輯都不復雜,主要需要構建驅動程序幀緩沖操作的數據結構structfb_ops,在其中包含注冊顯示緩沖實現函數的指計。1.FrameBuffer驅動的作用在程序設計中、對顯示的操作即是對顯示內存的操作。在簡單的操作系統中,可以直接利用寫顯示內存的方法,獲得顯示的效果。在Linux操作系統中,提供了一種普遍的顯示接口:FraraeBuffer驅動。使用FrameBuffer驅動可以更方便地完成應用程序的開發和系統的移植。如果僅僅是需要讓系統顯示出內容.只需要向顯示內存中寫入數據,對于Linux,只需要切入到內核態,對顯示內存進行操作即可。從這個角度來講,用戶不需要FrameBuffer時驅動也可以操作顯示。FrameBuffer驅動的優點在于,它為顯示程序的開發提供了一個框架。一方面,它封裝了一部分對顯示內存的操作,另一方面,它又對上層提供了統一的接口。開發者只需要實觀FrameBuffer驅動對硬件的移植,就可以在上層使用FrameBuffer驅動方便的接口。Linux中幀緩沖驅動主要涉及的文件是include/linux目錄中的fb.h。對于FrameBuffer驅動,不僅為用戶自己的程序調用,還可以被Linux內核和各種GUI系統調用。由于Linux內核集成了很多對FrameBuffer驅動的操作,很多GUI系統的顯示部分也是基于FrameBuffer驅動。Linux下的FrameBuffer驅動結構如圖7-2所示。用戶程序GUI系統Linux內核FrameBuffer驅動硬件(LCD控制器)移植層統一調用接口圖7-2Linux下的FrameBuffer驅動結構2.FrameBuffer驅動結構Linux的FrmneBuffer驅動從本質上,還是一種字符設備驅動程序,但是它不直接使用字符設備驅動程序的框架(file_operations),而是有自己的另外一套框架。fb_info是一個描述FrameBuffer屬性的數據結構,以linux2.6內核為例,其定義如下:struct
fb_info{
intnode;
intflags;
struct
fb_var_screeninfo
var;/*顯示屏變量*/
struct
fb_fix_screeninfofix:/*顯示屏固定量*/
struct
fb_monspecs
monspecs;/*當前監視器規格*/
struct
work_structqueue;/*幀緩沖事件隊列*/
struct
fb_pixmap
pixmap;/*圖像硬件映射*/
struct
fb_pixmapsprite;/*硬件光標映射*/
struct
fb_cmap
cmap;/*當前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位顏色的調色板*/#defineFBINFO_STATE_RUNNING0#defineFBINFO_STATE_SUSPENDED1u32state;/*硬件狀態,例如:掛起*/void*fbcon_par:/*fbcon使用的私有區域*//*以下為硬件相關的*/void*par;};在這個數據結構中.最主要的成員為數據結構structfb_var_screeninfo,它描述了屏幕的狀態,例如可見顯示分辨率(visibleresolution)、虛擬顯示分辨率(virtualfesolution),虛擬顯示偏移、像索深度等參數。其定義如下所示: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非標準像素格式*/__u32activate;__u32height;/*畫面內存映射的高*/__u32width;/*畫面內存映射的寬*/__u32accel_flags;/*(廢棄)*/__u32pixclock;/*每秒的像素時鐘*/__u32left_margin;/*畫面事件同步的值*/__u32right_margin;__u32upper_margin;一u32lower_margin;__u32hsync_len;/*水平同步的長度*/__u32vsync_len;/*垂直同步的長度*/__u32sync;__u32vmode;__u32rotate:/*順時針轉動角度*/__u32reserved[5];/*為兼容保留*/};在structfb_var_screeninfo中,支持虛擬顯示屏,其概念為,顯示內存比實際可見區域要大。可見區域實際上是顯示內存中的一個部分,它是實際在LCD上顯示的區域。在顯示內存中,涉及的顯示屬性包括虛擬顯存寬度、虛擬顯存高度、定義偏移量x,偏移量y,可見區域寬度、可見區域高度。虛擬顯示屏的概念如圖11-6所示。虛擬顯存X虛擬顯存Y可見區域X可見區域Y偏移量X偏移量Y圖11-6虛擬顯示屏的概念注意:structfb_var_screeninfo定義了一個功能較為全面的顯示信息,在一般的LCD控制器中,不是每種功能都具有,或者即使LCD控制器有這種功能,但是不實現也可以完成基本的操作。fb_info的成員structfb_fix_screeninfo定義了顯示輸出設備的各種屬性,包括顯示緩沖的起始地址、顯示緩沖長度、顯示緩沖類型等。這參數在設置完成后,一般都是只讀的。structfb_fix_screeninfo{charid[16];/*辨識字
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025綠化苗木采購合同樣本
- 股票出貨協議書范本
- 2025年03月浙江臺州市玉環市事業單位公開招聘工作人員74人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年03月廣東深圳市光明區統計局公開招聘(選聘)專干4人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年03月國家衛生健康委統計信息中心應屆畢業生公開招聘1人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 物理試題2025年東北三省四城市聯考暨沈陽市高三質量監測(二)及答案
- 重慶五一職業技術學院《俄漢互譯口譯》2023-2024學年第二學期期末試卷
- 戶用和村用風光互補發電系統控制器及逆變器項目安全風險評價報告
- 湖南幼兒師范高等專科學校《BIM協同設計》2023-2024學年第一學期期末試卷
- 成都工貿職業技術學院《基礎化學實驗二》2023-2024學年第二學期期末試卷
- 控煙知識培訓課件
- 設備的技改和更新管理制度
- GB/T 5453-2025紡織品織物透氣性的測定
- 2024慢性鼻竇炎診斷和治療指南解讀課件
- 2025年xx村公益性項目購買材料詢價會議記錄
- 六年級下冊數學教案-比例 西師大版
- 抗日英雄人物楊靖宇介紹
- AI驅動的可持續能源發展
- 整本書閱讀《林海雪原》【知識精研】六年級語文下冊 (統編版五四制2024)
- 健康日用品設計與研發趨勢
- 【化學】常見的鹽(第1課時)-2024-2025學年九年級化學下冊(人教版2024)
評論
0/150
提交評論