亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Linux系統(tǒng)下基于3C2410X的液晶顯示驅(qū)動程序的研究

        2008-04-12 00:00:00刁智華趙春江
        現(xiàn)代電子技術(shù) 2008年14期

        摘 要:主要介紹Linux下基于3C2410X的液晶驅(qū)動程序的研究與開發(fā)。首先詳細(xì)介紹LCD控制器工作原理以及3C2410X的LCD控制器及其管腳,同時給出LCD控制寄存器的設(shè)置規(guī)則。并根據(jù)系統(tǒng)中的液晶參數(shù)給出具體的硬件連接圖,得到LCD控制寄存器的參數(shù)。然后介紹幀緩沖的工作原理,并說明了幀緩沖2個方面的實(shí)現(xiàn),提出了一種適用于3C2410X硬件的通用的液晶顯示驅(qū)動程序的編寫方法。開發(fā)了相應(yīng)的驅(qū)動程序,得到很好的顯示效果,可以穩(wěn)定運(yùn)行。

        關(guān)鍵詞:LCD控制器;Linux;3C2410X;驅(qū)動程序

        Research of LCD Driver Based on 3C2410X under Linux ystem

        DIAO Zhihua1,WANG Cheng2,ZAO Chunjiang2,WU Gang1,WANG Jun1,ZANG Xin2

        (1University of cience and echnology of China,efei,230026,China;

        [JZ]2National Engineering Research Center for Information echnology in Agriculture,Beijing,100097,China)[J12/3]

        Abstract: his paper mainly introduces the research and development of LCD driver based on 3C2410X under Linux systemAt first,a detailed account of the principle of LCD controller and LCD controller and pins of 3C2410X are givenMeanwhile,the set rules of LCD control register is givenAnd the hardware specific graph paper is given based on the liquid crystal parameters of the system,the parameters of LCD control register are gainedhen it introduces principle of the frame buffer,notes two aspects of the realization of the frame buffer,and develops the corresponding driverhe results show a good,stable operationhe innovation of the paper proposes a LCD driver programming method that is applicable to 3C2410X hardware and universal

        Keywords:LCD controller;Linux;3C2410X;driver program

        隨著高性能嵌入式處理器的普及以及硬件成本的降低,特別是ARM系列處理器的不斷推出,嵌入式系統(tǒng)的功能不斷增強(qiáng),嵌入式系統(tǒng)的應(yīng)用領(lǐng)域也不斷擴(kuò)大。為了更好地操作系統(tǒng),顯示系統(tǒng)工作狀況,需要使用液晶實(shí)時顯示。然而在嵌入式系統(tǒng)的液晶驅(qū)動方面,不同的嵌入式硬件對應(yīng)的驅(qū)動程序編寫方法卻千差萬別。3C2410X是三星公司生產(chǎn)的基于ARM920內(nèi)核的RIC處理器,主頻高達(dá)203 Mz,內(nèi)部集成了具有通用性的LCD控制器,支持N和F液晶顯示。

        本文的研究內(nèi)容源于一個正在開發(fā)的無線監(jiān)控網(wǎng)絡(luò)系統(tǒng),該系統(tǒng)主要用來控制大田的灌溉,有3種工作方式:定時、定量和按邏輯條件工作,并能根據(jù)外在環(huán)境的變化做出相應(yīng)的決策。同時,系統(tǒng)還能實(shí)時顯示系統(tǒng)工作狀況,并可以在系統(tǒng)界面上設(shè)置系統(tǒng)工作參數(shù)。為了實(shí)現(xiàn)該系統(tǒng),采用合肥華恒公司生產(chǎn)的2410開發(fā)板作為主機(jī),采用PD064V作為顯示屏,分辨率為640×480。該顯示屏采用18 b數(shù)據(jù)信號,能顯示262 144色。本文從硬件和軟件2個方面詳細(xì)介紹液晶顯示驅(qū)動程序的實(shí)現(xiàn),給出了一種在Linux操作系統(tǒng)下編寫液晶驅(qū)動的比較通用的方法。

        1 系統(tǒng)硬件電路設(shè)計

        11 LCD控制器

        LCD控制器提供CPU應(yīng)用處理機(jī)與被動(N)或主動(F)平板顯示器的接口,其主要功能是產(chǎn)生顯示驅(qū)動信號,進(jìn)而控制LCD的顯示。在驅(qū)動LCD設(shè)計的過程中首先配置LCD控制器。在配置LCD控制器時需要正確的設(shè)置:顯示方式(主動或被動顯示)、顯示類型(彩色或單色)、各種時鐘信號、每行及每列的像點(diǎn)數(shù)以及每個像點(diǎn)的位數(shù)參數(shù),然后則是幀緩沖區(qū)的指定,用戶所要顯示的數(shù)據(jù)都是從該緩沖區(qū)中讀出,再顯示到屏幕上的。隨著技術(shù)的發(fā)展,現(xiàn)在的嵌入式處理器(片上系統(tǒng))一般都集成LCD控制器,如本系統(tǒng)采用的ARM上就集成LCD控制器。集成LCD控制器的片上系統(tǒng)的基本體系結(jié)構(gòu)如圖1所示。

        在圖1中,處理器內(nèi)核是整個片上系統(tǒng)的核心,如本系統(tǒng)的ARM內(nèi)核。系統(tǒng)總線是指處理器內(nèi)部的總線,如ARM著名的AMBA總線,其他片上系統(tǒng)的外設(shè)都通過總線和處理器連接。在LCD控制器工作時,通過DMA請求占用系統(tǒng)總線,直接通過DRAM控制器讀取DRAM中指定地址(顯示緩沖區(qū))的數(shù)據(jù)。此數(shù)據(jù)通過LCD控制器轉(zhuǎn)換成液晶屏掃描數(shù)據(jù)的格式,驅(qū)動液晶屏顯示。這種模式是集成了LCD控制器的嵌入式處理器普遍使用的方式,其優(yōu)點(diǎn)是:通過利用系統(tǒng)的DRAM控制器,使顯示緩沖和系統(tǒng)共享RAM空間,處理器可以直接讀/寫顯示緩沖區(qū);節(jié)省額外的顯示緩存控制器和昂貴的顯示緩存。

        12 3C2410X內(nèi)部LCD控制器管腳

        3C2410X具有內(nèi)置的LCD控制器,該控制器提供如下外部接口信號:

        VFRAME:LCD控制器和LCD驅(qū)動器之間的幀同步信號。它通知LCD屏新的1幀的顯示,LCD控制器在一個完整幀的顯示后發(fā)出VFRAME信號。

        VLINE:LCD控制器和LCD驅(qū)動器之間的線同步脈沖信號,它用于LCD驅(qū)動器將行移位寄存器的內(nèi)容傳送給LCD屏顯示。LCD控制器在整行數(shù)據(jù)移入LCD控制器后,插入一個VLINE信號。

        VCLK:LCD控制器和LCD驅(qū)動器之間的像素時鐘信號。由LCD控制器送出的數(shù)據(jù)在VCLK的上升沿處送出,在VCLK的下降沿處被LCD驅(qū)動器采樣。

        VM:LCD驅(qū)動器的AC信號。VM信號被LCD驅(qū)動器用于改變行和列的電壓極性,從而控制像點(diǎn)的顯示或熄滅。VM信號可以與每個幀同步,也可以與可變數(shù)量的VLINE信號同步。

        VD[23:0]:視頻數(shù)據(jù)信號。

        PD064V是一個具有31管腳的液晶屏,根據(jù)工作方式的不同有不同的連接方式,圖2是該液晶屏工作在分辨率為640×480時與3C2410X的連接圖。

        [B3+2]13 3C2410X內(nèi)部LCD控制器

        [JP2]LCD控制器由REGBANK,LCDCDMA,VIDPRC,IMEGEN和LPC3600組成,如圖3所示。REGBANK有17個可編程寄存器組和26X16的調(diào)色板存儲器,用來設(shè)定LCD控制器。LCDCDMA是一個專用DMA,自動從幀存儲器傳輸視頻數(shù)據(jù)到LCD控制器,用這個特殊的DMA,視頻數(shù)據(jù)可不經(jīng)過CPU干涉就顯示在屏幕上。VIDPRC接收從LCDCDMA來的視頻數(shù)據(jù)并在將其改變到合適數(shù)據(jù)格式后經(jīng)VD[23:0]將之送到LCD驅(qū)動器,如4/8單掃描或4雙掃描顯示模式。IMEGEN由可編程邏輯組成,以支持不同LCD驅(qū)動器的接口時序和速率的不同要求。IMEGEN產(chǎn)生VFRAME,VLINE,VCLK,VM信號等。

        14 3C2410X內(nèi)部LCD控制寄存器

        3C2410X的LCD控制器內(nèi)有個寄存器,分別為LCDCON1,LCDCON2,LCDCON3,LCDCON4,LCDCON。這些寄存器的設(shè)置可以參見參考文獻(xiàn)[2]。在本系統(tǒng)中,液晶屏PD064V的相關(guān)時間時間參數(shù)以及時序圖分別如表1和圖4所示。為了使液晶屏正確顯示,需要相應(yīng)的設(shè)定寄存器的值。為此,得到如下關(guān)鍵參數(shù):

        PW=96BPD=48 FPD=16 VPW=2 

        VBPD=33VFPD=10 CLKVAL=4

        同時將PNRMODE設(shè)為3,表示所用模塊是F型;BPPMODE設(shè)為12,表示采用16 bpp輸出,選擇FRM6視頻輸出數(shù)據(jù)的格式。

        2 系統(tǒng)軟件設(shè)計

        本系統(tǒng)中,采用的操作系統(tǒng)內(nèi)核版本為2420[CD2]8,并采用北京飛漫公司的MINIGUI軟件進(jìn)行系統(tǒng)界面的開發(fā)。由于在Linux22XX之后內(nèi)核版本中出現(xiàn)了一種驅(qū)動程序接口幀緩沖(Frame Buffer),因而LCD設(shè)備的驅(qū)動程序必須采用Linux的幀緩沖設(shè)備來處理與LCD控制器的底層命令。

        幀緩沖設(shè)備對圖像硬件設(shè)備進(jìn)行抽象化處理,使應(yīng)用軟件可以通過定義明確的界面訪問圖像硬件設(shè)備,從而使軟件無需了解涉及硬件底層驅(qū)動的細(xì)節(jié)就可以直接對顯示緩沖區(qū)進(jìn)行讀寫和I/O控制等操作。在通常情況下,驅(qū)動程序都為應(yīng)用程序提供了專門的設(shè)備節(jié)點(diǎn)來訪問該設(shè)備,如:/dev/fb0。用戶可以將它看成是顯示內(nèi)存的一個映像,將其映射到進(jìn)程地址空間之后,就可以直接進(jìn)行讀寫操作,而讀寫操作可以立即反應(yīng)到LCD上。同時Linux支持多個幀緩沖設(shè)備,最多可達(dá)32個,即/dev/fb0~/dev/fb31,其主設(shè)備號都為29,次設(shè)備號分別對應(yīng)與0~31,缺省情況下的幀緩沖設(shè)備是/dev/fb0。

        幀緩沖的實(shí)現(xiàn)分為2個方面:對LCD及其相關(guān)部件的初始化;對畫面緩沖區(qū)的讀寫,具體到代碼為read,write,lseek等系統(tǒng)接口的調(diào)用。基于幀緩沖的完整驅(qū)動程序就是以上兩方面的實(shí)現(xiàn)。由于在Linux的發(fā)布版本中,包含了大量的設(shè)備驅(qū)動程序源代碼,例如drivers/video下提供了多種顯示卡的幀緩沖驅(qū)動程序,這就省去了上層接口調(diào)用程序的工作,只需要針對所用的LCD模塊的類型以及接口時序,修改驅(qū)動程序中與底層相關(guān)的內(nèi)容,即可得到自己的驅(qū)動程序。

        [JP2]與Linux的幀緩沖相關(guān)的代碼在linux/drivers/video下,打開該路徑后在目錄下有一個名為3C2410fbc的文件,這個文件就是支持3C2410X的幀緩沖驅(qū)動源文件,同時其定義了與底層相關(guān)的參數(shù)。根據(jù)上面對LCD控制器的分析結(jié)果,將該文件修改如下:

        將修改后的驅(qū)動程序加入內(nèi)核,然后重新編譯內(nèi)核。將新編譯的Linux內(nèi)核映像文件燒寫到FLA中,然后重新啟動系統(tǒng),就可以在LCD屏幕上顯示圖片以及圖形界面。系統(tǒng)運(yùn)行效果如圖所示。

        3 結(jié) 語

        本文對3C2410X的LCD內(nèi)部控制器及其管腳做了詳細(xì)的介紹,并給出具體的硬件連接圖。同時也詳細(xì)介紹Linux的驅(qū)動原理,并給出相應(yīng)的軟件實(shí)現(xiàn)。經(jīng)過上述方法實(shí)現(xiàn)的設(shè)備驅(qū)動程序,可以很好地顯示本系統(tǒng)中的示例程序,在系統(tǒng)中穩(wěn)定的運(yùn)行。如需要改變液晶顯示器的型號,只要根據(jù)具體的液晶要求,搭建相應(yīng)的硬件實(shí)現(xiàn)電路,然后根據(jù)上面的介紹,編寫相應(yīng)的驅(qū)動顯示程序,修改相應(yīng)的寄存器參數(shù),即可很成功地點(diǎn)亮你所選擇的液晶屏。

        參 考 文 獻(xiàn)

        [1]劉淼嵌入式系統(tǒng)接口設(shè)計與Linux驅(qū)動程序開發(fā)[M]北京:北京航空航天大學(xué)出版社,2006

        [2]amsung ElectronicsUser′s Manual 3C2410X 32-Bit RIC Microprocessor[Z]2003

        [3][美]Alessandro Rubini,[美]Jonathan CorbetLinux設(shè)備驅(qū)動程序[M]2版魏永明,羅剛,姜君,等譯北京:中國電力出版社,2002

        [4]Prime View International CoLtd,echnical pecification[Z]aiwan,2004

        []齊開悅,陳劍波基于Linux操作系統(tǒng)的液晶顯示屏驅(qū)動程序的開發(fā)[J]計算機(jī)工程,2003,29(6):188[CD2]190

        [6]楊虹,唐志勇,凌智華,等VGA F LCD的驅(qū)動電路設(shè)計[J]液晶與顯示,2001,16(1):2[CD2]8

        [7]陳峰,李濱滔,戈志華基于3C2410的嵌入式Linux系統(tǒng)構(gòu)建[J]現(xiàn)代電子技術(shù),2007,30(24):[CD2]7,60

        作者簡介 刁智華 男,1982年出生,河南夏邑人,博士研究生。主要從事嵌入式系統(tǒng)開發(fā)、研究工作。

        趙春江 男,1964年出生,河北人,研究員。主要從事農(nóng)業(yè)信息的化研究。

        亚洲天堂精品一区入口| 亚洲av无码成人网站www | 国产精品亚洲一区二区三区在线| 亚洲综合色一区二区三区小说| 久青青草视频手机在线免费观看| 久久一区二区三区老熟女| 精品一区二区三区免费视频| 久久国产精品二国产精品| 久久久久亚洲AV片无码乐播 | 久久综合加勒比东京热| 国产毛片黄片一区二区三区| 久久久av精品波多野结衣| 热久久这里只有| 亚洲大胆视频在线观看| 天天躁夜夜躁狠狠躁婷婷| 国产成人精品电影在线观看| 国产一级三级三级在线视| 国产成人av一区二区三| 亚洲va久久久噜噜噜久久天堂| 中文字幕人妻av一区二区| 国产欧美日韩图片一区二区| 精品少妇一区二区三区入口| 欧美激情在线播放| 精品推荐国产精品店| 强d乱码中文字幕熟女1000部| 亚洲成人福利在线视频| 欧美内射深喉中文字幕| 91精品国产免费久久久久久青草 | 成人av资源在线播放| 色婷婷五月综合久久| 国产AV无码专区久久精品网站| 一区二区三区国产视频在线观看| 亚洲偷自拍国综合第一页| 国产精品免费大片| 乱人伦人妻中文字幕不卡| 亚洲成年国产一区二区| 凹凸在线无码免费视频| 国内久久婷婷精品人双人| 国产91九色免费视频| 精品乱码一区内射人妻无码| 亚洲天堂在线视频播放|