版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第11章TFT-LCD驅(qū)動(dòng)程序開發(fā)11.1TFT-LCD工作原理11.2LQ080V3DG01液晶屏11.3SC2410內(nèi)部LCD控制器11.4Linux驅(qū)動(dòng)程序接口——FrameBuffer11.5LCD驅(qū)動(dòng)程序主要代碼結(jié)構(gòu)以及關(guān)鍵代碼分析11.6LCD驅(qū)動(dòng)程序開發(fā)實(shí)例本章小結(jié)
11.1TFT-LCD工作原理
11.1.1LCD概述
液晶最早是奧地利植物學(xué)家萊尼茨爾于1888年發(fā)現(xiàn)的,他發(fā)現(xiàn)某些有機(jī)物熔化后會(huì)經(jīng)歷一個(gè)不透明的呈白色渾濁液體狀態(tài)。第二年,德國(guó)物理學(xué)家萊曼發(fā)現(xiàn)這類渾濁液體外觀上雖然屬于液體,但卻顯示出各向異性晶體特有的雙折射性,于是萊曼將其命名為“液態(tài)晶體”,也就是“液晶”。11.1.2LCD顯示原理
液晶是一種介于固體和液體之間,具有規(guī)則性分子排列的有機(jī)化合物,既有晶體所特有的各向異性造成的雙折射性,又有液體所特有的流動(dòng)性,如圖11-1所示。圖11-1液晶分子特性
1.液晶的光電特性
液晶分子結(jié)構(gòu)為各向異性,所以液晶的光電特性因方向不同而有所差異,也就是液晶分子在介電系數(shù)及折射系數(shù)等光電特性都具有各向異性,利用這些性質(zhì)可以改變?nèi)肷涔獾膹?qiáng)度,形成灰階,制作顯示器。液晶分子的電光效應(yīng)最顯著的是扭曲向列效應(yīng)。在不同電流電場(chǎng)作用下,液晶分子會(huì)規(guī)則旋轉(zhuǎn)90°排列。當(dāng)偏振光通過液晶時(shí),偏振角發(fā)生變化,這個(gè)變化的角度稱為扭曲角,如圖11-2所示。圖11-2液晶的電光效應(yīng)
2.液晶的顯示原理
液晶顯示器是將液晶置于兩片導(dǎo)電玻璃之間,靠?jī)蓚€(gè)電極間電場(chǎng)的驅(qū)動(dòng)引起液晶分子扭曲向列的電光效應(yīng)。在電源的關(guān)開之間控制光源透射或遮蔽,產(chǎn)生明暗兩種效果。如圖11-2所示,在玻璃電極板上裝有配向膜,所以液晶會(huì)沿著溝槽配向,由于玻璃基板配向膜溝槽偏離90°,所以液晶分子成為扭轉(zhuǎn)型。11.1.3LCD驅(qū)動(dòng)原理
1.直接驅(qū)動(dòng)法
1)靜態(tài)驅(qū)動(dòng)
靜態(tài)驅(qū)動(dòng)是指在液晶像素前后電極上施加電壓信號(hào)時(shí)呈顯示狀態(tài),不施加電壓時(shí)呈非顯示狀態(tài)。以圖11-3所示筆段式LCD為例,11-3(a)是筆段式液晶的電極排列方式,11-3(b)是其中一個(gè)液晶像素的驅(qū)動(dòng)電路原理圖。圖11-3筆段式LCD的靜態(tài)驅(qū)動(dòng)在COM端施加一個(gè)占空比為1/2的連續(xù)方波。當(dāng)控制信號(hào)為高電平時(shí),筆段波形與COM波形反向,液晶像素上施加了一個(gè)周期電壓,液晶像素呈顯示狀態(tài);當(dāng)控制信號(hào)為低電平時(shí),筆段波形與COM波形同向,液晶像素上無(wú)電壓,呈非顯示狀態(tài)。控制時(shí)序如圖11-4所示。圖11-4筆段式LCD的靜態(tài)驅(qū)動(dòng)時(shí)序圖
2)動(dòng)態(tài)驅(qū)動(dòng)
當(dāng)LCD的像素?cái)?shù)增多的,筆段式LCD的結(jié)構(gòu)和驅(qū)動(dòng)方法就變得都不合理了。對(duì)于多像素LCD,即點(diǎn)陣式LCD,采用矩陣式排列液晶像素的前后電極,行、列的交叉點(diǎn)為液晶像素,如圖11-5所示。圖11-5點(diǎn)陣式LCD的結(jié)構(gòu)圖
2.有源驅(qū)動(dòng)法
為了進(jìn)一步提高顯示質(zhì)量,TFT-LCD以其分辨率高、響應(yīng)速度快和色彩豐富等優(yōu)點(diǎn)正逐漸取代STN-LCD。如圖11-6所示,TFT-LCD的每個(gè)像素上集成了一個(gè)有源器件——薄膜晶體管(TFT),對(duì)TFT-LCD的驅(qū)動(dòng)實(shí)際上是對(duì)每個(gè)像素點(diǎn)上的TFT的驅(qū)動(dòng),而非直接驅(qū)動(dòng)法將驅(qū)動(dòng)信號(hào)直接施加到液晶像素上,因此,稱TFT-LCD的驅(qū)動(dòng)為有源驅(qū)動(dòng)法。圖11-6TFT-LCD像素結(jié)構(gòu)11.1.4LCD的分類
1.?TN-LCD與STN-LCD
STN-LCD是TN-LCD的升級(jí)產(chǎn)品,兩者結(jié)構(gòu)基本相同。TN-LCD的基本單元和顯示原理如圖11-2所示,液晶的扭曲角為90°,而STN-LCD的扭曲角達(dá)到180°~360°,提高了液晶的電光響應(yīng)速度。如圖11-7所示,由于STN-LCD的掃描行電極和尋址列電極直接連接在液晶像素上進(jìn)行驅(qū)動(dòng),因而存在以下幾個(gè)重要缺陷。圖11-7STN-LCD結(jié)構(gòu)圖1)分辨率低
2)色彩少,無(wú)真彩顯示
3)響應(yīng)速度慢
2.?TFT-LCD
TFT-LCD的響應(yīng)速度取決于TFT的開關(guān)速度,與液晶像素的充放電速度無(wú)關(guān),所以TFT-LCD的響應(yīng)速度遠(yuǎn)快于STN-LCD,可以無(wú)拖影地顯示動(dòng)態(tài)圖像。STN-LCD與TFT-LCD分屬于LCD的低端和高端,性能比較如表11-1所示。
11.2LQ080V3DG01液晶屏
LQ080V3DG01芯片是由日本夏普公司生產(chǎn)的TFT-LCD,其外型尺寸為182mm?×?140mm?×?14mm,尺寸為8寸,分辨率為640?×?480,工作溫度為0℃~+70℃,背光類型為1xccfl,顯示顏色為262k,對(duì)比度為250∶1,亮度為380cd/m2,?接口類型為TTL,響應(yīng)時(shí)間為
80ms,供壓3.3V/5V,功耗6.2W。
11.3SC2410內(nèi)部LCD控制器
11.3.1管腳
S3C2410LCD控制器用于傳輸視頻數(shù)據(jù)和產(chǎn)生必要的控制信號(hào),像VFRAME、VLINE、VCLK、VM等。除了控制信號(hào),S3C2410還有輸出視頻數(shù)據(jù)的端口VD[23:0],如圖11-8
所示。圖11-8S3C2410LCD控制器的外部管腳圖11.3.2寄存器介紹
1.?LCDCON1
LCDCON1中需要設(shè)置以下幾個(gè)域:
CLKVAL是時(shí)鐘比值參數(shù),它決定了VCLK信號(hào)的頻率,對(duì)于TFT型模塊要求CLKVAL≥0,VCLK和CLKVAL的關(guān)系為
VCLK(Hz)?=?HCLK?/?[(CLKVAL?+?1)?×?21]
2.?LCDCON2
LCDCON2需要設(shè)置以下幾個(gè)域:
VBPD:該域表示幀同步脈沖之后到一幀圖像開始顯示之間需要消隱的行數(shù);
LINEVAL:該域表示每幀要顯示的行數(shù);
VFPD:該域表示一幀圖像顯示完成到幀同步脈沖到來(lái)之間需要消隱的行數(shù);
VSPW:該域表示幀同步脈沖的寬度。
3.?LCDCON3
LCDCON3中需要設(shè)置以下幾個(gè)域:
HBPD:該域表示行同步脈沖之后到一行圖像開始顯示之間需要消隱的像素?cái)?shù);
HOZVAL:該域表示每行要顯示的像素?cái)?shù);
HFPD:該域表示一行圖像顯示完成到行同步脈沖到來(lái)之間需要消隱的像素?cái)?shù)。
4.?LCDCON4
LCDCON4中只需要設(shè)置一個(gè)域:HSPW,該域表示行同步脈沖的寬度。
5.?LCDCON5
LCDCON5中主要需要設(shè)置以下幾個(gè)域:
BPP24BL決定24bpp視頻存儲(chǔ)器的大小端模式。
FRM565決定16bpp視頻輸出數(shù)據(jù)的格式。
INVVCLK、INVVLINE、INVVFRAME分別決定了VCLK、VLINE、VSYNC信號(hào)的極性。
INVVDEN、INVVD分別決定了VDEN、VD信號(hào)的極性。11.3.3控制流程
LCD控制器由REGBANK、LCDCDMA、VIDPRCS、TIMEGEN和LPC3600組成(如圖11-9所示)。圖11-9S3C2410內(nèi)部LCD控制器方框圖11.3.4TFT控制器操作
S3C2410支持STN-LCD和TFT-LCD,這里只介紹其對(duì)TFT-LCD的控制。
TIMEGEN產(chǎn)生LCD驅(qū)動(dòng)器的控制信號(hào),如VSYNC、HSYNC、VCLK、VDEN和LEND等。這些控制信號(hào)與REGBANK寄存器組中的LCDCON1/2/3/4/5寄存器的配置關(guān)系相當(dāng)密切,基于LCD控制寄存器中的這些可編程配置,TIMEGEN產(chǎn)生可編程控制信號(hào)來(lái)支持不同類型的LCD驅(qū)動(dòng)器。VSYNC和HSYNC脈沖的產(chǎn)生依賴于LCDCON2/3寄存器的HOZVAL域和LINEVAL域的配置。
HOZVAL和LINEVAL的值由LCD屏的尺寸決定,如下公式:
HOZVAL?=?水平顯示尺寸?-?1
LINEVAL?=?垂直顯示尺寸?-?1
VCLK信號(hào)的頻率取決于LCDCON1寄存器中的CLKVAL域。VCLK和CLKVAL的關(guān)系如下:
VCLK(Hz)?=?HCLK?/?[(CLKVAL?+?1)?×?2]
11.4Linux驅(qū)動(dòng)程序接口——
FrameBuffer
11.4.1FrameBuffer
在Linux2.2.xx之后內(nèi)核版本中出現(xiàn)了一種驅(qū)動(dòng)程序接口即FrameBuffer。這種接口為圖像硬件設(shè)備提供了一種抽象化處理。它代表了一些視頻硬件設(shè)備,允許應(yīng)用軟件通過定義明確的界面來(lái)訪問圖像硬件設(shè)備。圖11-10Linux系統(tǒng)下FrameBuffer的主要結(jié)構(gòu)11.4.2數(shù)據(jù)結(jié)構(gòu)
1.?LinuxFrameBuffer的數(shù)據(jù)結(jié)構(gòu)
FrameBuffer的數(shù)據(jù)結(jié)構(gòu)的定義在內(nèi)核源碼include/linux/
fb.h文件中。
在FrameBuffer中,fb_info可以說是最重要的一個(gè)結(jié)構(gòu)體,它是Linux為幀緩沖設(shè)備定義的驅(qū)動(dòng)層接口。它不僅包含了底層函數(shù),而且還有記錄設(shè)備狀態(tài)的數(shù)據(jù)。每個(gè)幀緩沖設(shè)備都與一個(gè)fb_info結(jié)構(gòu)相對(duì)應(yīng)。圖11-11LinuxFrameBuffer的總體結(jié)構(gòu)圖
2.?S3C2410中LCD的數(shù)據(jù)結(jié)構(gòu)
在S3C2410的LCD設(shè)備驅(qū)動(dòng)中,定義了s3c2410fb_info(內(nèi)核源碼driver/video/s3c2410.h)文件中來(lái)標(biāo)識(shí)一個(gè)LCD設(shè)備,結(jié)構(gòu)體如下:圖11-12S3C2410驅(qū)動(dòng)的整體結(jié)構(gòu)
11.5LCD驅(qū)動(dòng)程序主要代碼
結(jié)構(gòu)以及關(guān)鍵代碼分析
11.5.1FrameBuffer驅(qū)動(dòng)的統(tǒng)一管理
fbmem.c實(shí)現(xiàn)了LinuxFrameBuffer的中間層,任何一個(gè)FrameBuffer驅(qū)動(dòng),在系統(tǒng)初始化時(shí),必須向fbmem.c注冊(cè),即需要調(diào)用register_framebuffer()函數(shù),在這個(gè)過程中,設(shè)備驅(qū)動(dòng)的信息將會(huì)存入名稱為registered_fb數(shù)組中,這個(gè)數(shù)組定義為:
structfb_info*registered_fb[FB_MAX];
intnum_registered_fb;11.5.2實(shí)現(xiàn)消息的分派
fbmem.c實(shí)現(xiàn)了對(duì)系統(tǒng)全部FrameBuffer設(shè)備的統(tǒng)一管理。當(dāng)用戶嘗試使用一個(gè)特定的FrameBuffer時(shí),fbmem.c怎么知道該調(diào)用哪個(gè)特定的設(shè)備驅(qū)動(dòng)呢?
Linux是通過主設(shè)備號(hào)和次設(shè)備號(hào)對(duì)設(shè)備進(jìn)行唯一標(biāo)識(shí)。不同的FrameBuffer設(shè)備向fbmem.c注冊(cè)時(shí),程序分配給它們的主設(shè)備號(hào)是一樣的,而次設(shè)備號(hào)是不一樣的。于是就可以通過用戶指明的次設(shè)備號(hào),來(lái)具體該調(diào)用哪一個(gè)FrameBuffer驅(qū)動(dòng)。圖11-13LCD驅(qū)動(dòng)的open()函數(shù)的調(diào)用流程圖11.5.3開發(fā)板S3C2410LCD驅(qū)動(dòng)的流程
1.定義了初始的LCD參數(shù)
在mach-smdk2410.c(在內(nèi)核源碼arch/arm/mach-s3c2410目錄中)中,定義了初始的LCD參數(shù)。注意,這是個(gè)全局變量。
2.?s3c2410fb_probe函數(shù)
內(nèi)核初始化時(shí)候調(diào)用s3c2410fb_probe函數(shù)(內(nèi)核源碼driver/video/s3c2410fb.c文件中)。
首先動(dòng)態(tài)分配s3c2410fb_info空間。
fbinfo=framebuffer_alloc(sizeof(structs3c2410fb_info),
&pdev->dev);
把域mach_info指向mach-smdk2410.c中的smdk2410_lcd
_cfg。
info->mach_info=pdev->dev.platform_data;
3.?mmap()映射內(nèi)存函數(shù)
當(dāng)用戶調(diào)用mmap()映射內(nèi)存的時(shí)候,fbmem.c把剛才設(shè)置好的顯存區(qū)域映射給用戶。
start=info->fix.smem_start;
len=PAGE_ALIGN((start&~PAGE_MASK)+info->fix.smem_len);
io_remap_pfn_range(vma,vma->vm_start,off>>PAGE
_SHIFT,
vma->vm_end-vma->vm_start,vma->vm_page_prot);
…
11.6LCD驅(qū)動(dòng)程序開發(fā)實(shí)例
11.6.1S3C2410與LCD模塊的連接電路
博創(chuàng)開發(fā)板S3C2410與LCD模塊的連接如圖11-14所示。圖11-14S3C2410與LQ080V3DG01連接圖圖11-15S3C241O與LQ080V3DG01連接原理圖11.6.2修改代碼(一)——LCD顯示企鵝圖像
1.修改mach-smdk2410.c文件
在第8章中成功的內(nèi)核源代碼中將/linux-2.6.14
.success20090807/arch/arm/mach-s3c2410目錄下的mach-smdk2410.c文件打開:
[root@localhostlinux-2.6.14.success20090807]#viarch/arm/mach-s3c2410/mach-smdk2410.c
2.添加mxl.h文件
在?/linux-2.6.14.success20090807/include/asm-arm/arch-s3c2410目錄下創(chuàng)建mxl.h文件:
[root@localhostlinux-2.6.14.success20090807]#viinclude/asm-arm/arch-s3c2410/mxl.h
mxl.h文件內(nèi)容如下:
#include<asm-arm/arch-s3c2410/map.h>
#defineIRQ_RTL8019
IRQ_EINT4
#defineEXTINT_OFF(IRQ_EINT4-4)
/*RTL8019a,nGCS3*/
#definepRTL8019_BASE
S3C2410_PA_ISA_NET
#definevRTL8019_BASE
S3C2410_VA_ISA_NET
3.注釋blank_screen_t函數(shù)內(nèi)容
注釋drivers\char\vt.c的blank_screen_t(unsignedlongdummy)的函數(shù)內(nèi)容,否則lcd很快關(guān)掉顯示。
4.重新配置內(nèi)核
[root@localhostlinux-2.6.14.success20090807]#makemenuconfig
配置界面如圖11-16所示。圖11-16內(nèi)核配置LCD驅(qū)動(dòng)界面
5.重新編譯內(nèi)核
編譯內(nèi)核:
[root@localhostlinux-2.6.14.success20090807]#makezImage
將重新制作zImage燒寫到博創(chuàng)開發(fā)板,再次啟動(dòng)linxu2.6.14以后就可以在LCD上看到一個(gè)小的企鵝,如圖
11-17所示。圖11-17博創(chuàng)開發(fā)板LCD顯示企鵝圖像11.6.3修改代碼(二)——LCD顯示小車圖像
1.打開GIMP圖像編輯器
點(diǎn)擊開始菜單,選擇圖形,選擇TheGIMP。
2.打開想要的圖像文件
點(diǎn)擊文件,選擇圖像文件所在目錄,點(diǎn)擊確定,就可顯示圖像文件,如圖11-18所示。圖11-18打開圖像文件
3.修改圖像索引顏色
將鼠標(biāo)放在圖像中,點(diǎn)擊鼠標(biāo)右鍵,依次選擇圖像→模式→索引顏色,將顏色改為224色。
4.保存圖像
圖片大小不要大于顯示器分辨率就可以。最后將鼠標(biāo)放在圖像中,點(diǎn)擊鼠標(biāo)右鍵,將文件保存為ppm格式(ASCII碼),文件名為:mxl1.ppm,如圖11-19所示。圖11-19保存圖像
5.替換原有的企鵝圖像
將mxl1.ppm拷貝到?/linux-2.6.14.succe
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度教育設(shè)備租賃合同2篇
- 2024年度計(jì)時(shí)工勞務(wù)派遣協(xié)議下載3篇
- 2024年度聯(lián)合開發(fā)合同(房地產(chǎn))3篇
- 香煙采購(gòu)合同范例
- 2024版中式宴席廚師承包服務(wù)合同3篇
- 讀后續(xù)寫+原諒之花綻放在童真的田野上+講義 高一下學(xué)期7月期末英語(yǔ)試題
- 2024版大蒜出口貿(mào)易代理及倉(cāng)儲(chǔ)物流服務(wù)合同3篇
- 2024年標(biāo)準(zhǔn)門臉房租賃合同全文版B版
- 學(xué)期工作計(jì)劃范本匯編7篇
- 焊條買賣合同模板
- 土壤肥力評(píng)估報(bào)告
- 《系統(tǒng)解剖學(xué)》課程考試復(fù)習(xí)題庫(kù)大全-3神經(jīng)部分
- 制程異常處理管理規(guī)定
- 杯弓蛇影兒童繪本故事演講ppt課件(圖文)
- 2023年互聯(lián)網(wǎng)信息審核員理論考試題庫(kù)(含答案)
- 《走進(jìn)中國(guó)高鐵》課件
- 穴位注射-針灸學(xué)ppt
- 造價(jià)咨詢公司規(guī)章制度及管理辦法
- 國(guó)家開放大學(xué)《機(jī)械制造基礎(chǔ)》形考任務(wù)1-4參考答案
- 傳感器教案中職類職業(yè)教育
- 消防控制室值班記錄(制式表格)
評(píng)論
0/150
提交評(píng)論