【正文】
設(shè)計(論文)題目:Linux下的單片機(jī)LCD驅(qū)動的設(shè)計摘 要LCD由于其工作電壓低、功耗低、無輻射、壽命高、輕巧方便、易于實(shí)現(xiàn)大規(guī)模集成和生產(chǎn)等一系列優(yōu)點(diǎn),率先進(jìn)入顯示器市場并不斷擴(kuò)寬其領(lǐng)域。又由于人機(jī)交互技術(shù)的快速發(fā)展,LCD憑借其高清晰度、大容量的顯示效果,成為了顯示領(lǐng)域的新秀。嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計算機(jī)系統(tǒng)。它一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶的應(yīng)用程序等四個部分組成,用于實(shí)現(xiàn)對其他設(shè)備的控制、監(jiān)視或管理等功能。本文應(yīng)用了嵌入式開發(fā)方面的知識,從實(shí)際出發(fā),對ZLG240128F型號的LCD進(jìn)行了驅(qū)動。本文的工作主要體現(xiàn)在以下幾點(diǎn):第一,本文深刻分析了當(dāng)今嵌入式LCD驅(qū)動開發(fā)的背景、開發(fā)現(xiàn)狀以及應(yīng)用前景,對LCD驅(qū)動技術(shù)的發(fā)展作了展望,確定了本文的目的將是對總線結(jié)構(gòu)控制的LCD和掃描方式控制的LCD的開發(fā)方式的探討。第二,本文以ZLG240128F型號的LCD為開發(fā)對象,以ARMSYS44B0P 嵌入式系統(tǒng)開發(fā)板為硬件平臺,以linux為操作系統(tǒng)進(jìn)行了開發(fā)。本文先是采用linux應(yīng)用程序開發(fā)的方式,對LCD直接進(jìn)行引腳控制,直接對其顯存讀寫來達(dá)到我們驅(qū)動的目的。在第六章,本文繼續(xù)探討了采用linux內(nèi)核對LCD驅(qū)動的技術(shù),主要是探討了基于framebuffer的寫驅(qū)動程序的過程?!娟P(guān)鍵字】LCD 液晶 framebuffer 嵌入式AbstractLCD, with a series of advantages such as low working voltage and power consumption, no radiation, longevity, being light and convenient and easy to implement largescale integration and production, has led way into the display market and is constantly widening its field. Additionally, due to rapid development of humanputer interaction technology, LCD has bee the rookie in the display area with its highdefinition, and largecapacity display. Embedded system is a specialized puter system, which is applicationcentric and based on puter technology. It is such a system that its software and hardware can be tailored and applied to application system which has strict requirements on function, reliability, cost, size and power consumption. Generally, posed of four parts as embedded operating microprocessors, peripheral hardware devices, embedded operating system and user application, the system is used to realize controlling, monitoring or managing other on the practice, in this paper, the ZLG240128F LCD model is driven by making use of the knowledge of embedded development. The main job of the article is reflected in the following: First, this paper deeply analyzes the development background, the status quo and application prospect of the present embedded LCD driver, and makes a prospect of the LCD driver technology, thus aims to discuss the development approach of both LCDs that controls the bus structure and scanning respectively.Second, with the ARMSYS44B0P embedded system development board as the hardware platform and linux the operating system, this paper develops the ZLG240128F LCD. It first makes a direct pin control of LCD by using of the linux application development approach, thus achieve our driving objective by direct memory read and write. In the sixth chapter, the paper continues to explore the use of linux kernel on the LCDdriven technology, mainly focusing on the writedriver process based on framebuffer.Keywords: LCD Liquid Crystal embedded frambuffer前 言隨著電子科學(xué)技術(shù)的不斷發(fā)展,無論是高尖端的軍工、航天領(lǐng)域,還是低要求的我們的生活領(lǐng)域,嵌入式系統(tǒng)的應(yīng)用可以說是得到了鋪天蓋地的發(fā)展。嵌入式系統(tǒng)的出現(xiàn)最初是基于單片機(jī)的,并應(yīng)用于汽車、家電、工業(yè)機(jī)器、通信裝置以及成千上萬種產(chǎn)品,通過內(nèi)嵌電子裝置使這些產(chǎn)品獲得更佳的性能。但是這些裝置交互性較差,只是初步的具備了嵌入式系統(tǒng)的特點(diǎn)。隨著人們對嵌入式系統(tǒng)的應(yīng)用越來越多,需求的功能也越來越多,因此嵌入式系統(tǒng)也就具有了更強(qiáng)的交互性。為了更便利的進(jìn)行個性化設(shè)置,就需要用戶和系統(tǒng)有著親密的交互,而這就需要將交互過程可視化。因此,越來越多的嵌入式產(chǎn)品配備了液晶屏。這樣,無論是增強(qiáng)人機(jī)的交互性,還是為像mpmp4等多媒體產(chǎn)品增加廣闊的空間,液晶屏的應(yīng)用都是很重要的。在眾多的操作系統(tǒng)中,Linux有著很多其他操作系統(tǒng)不及的優(yōu)點(diǎn)。其開源性、廣泛性以及靈活性使其倍受各個開發(fā)廠商的青睞。在其眾多的優(yōu)點(diǎn)中,最重要的就是開源性,讓我們可以方便的對其學(xué)習(xí)以及應(yīng)用。我們可以隨意的裁剪、移植和裝載其中的某些部分,并應(yīng)用于各種嵌入式的開發(fā)。驅(qū)動程序在linux內(nèi)核中扮演著特殊的角色,它使某個特定的硬件響應(yīng)一個定義良好的內(nèi)部編程接口,這些接口完全隱藏了設(shè)備的細(xì)節(jié)問題。用戶通過調(diào)用來執(zhí)行特定的驅(qū)動程序,從而服務(wù)于自己的軟件。而這些驅(qū)動程序,就是將用戶的要求反映給那些特定的設(shè)備,從而實(shí)現(xiàn)用戶期望的功能。這些驅(qū)動程序在內(nèi)核中都是獨(dú)立于其他部分而建立,以模塊的形式,在需要的時候以動態(tài)的形式插入到內(nèi)核中。鑒于液晶顯示器的大量需求和linux操作系統(tǒng)的眾多優(yōu)點(diǎn),因此本題的設(shè)計選擇了以linux作為嵌入式設(shè)備的操作系統(tǒng),對于基于linux開發(fā)的LCD驅(qū)動,將會有著廣闊的應(yīng)用前景。第一章 緒論第一節(jié) 開發(fā)的背景及意義 現(xiàn)在的嵌入式開發(fā)始于微機(jī)時代的嵌入式應(yīng)用。在1946年電子計算機(jī)誕生以后,其接下來的漫長生涯始終是供養(yǎng)在在特殊的機(jī)房中,實(shí)現(xiàn)數(shù)值計算的大型昂貴設(shè)備。直到20世紀(jì)70年代,微處理器的出現(xiàn),計算機(jī)才出現(xiàn)了歷史性的變化。以微處理器為核心的微型計算機(jī)以其小型、價廉、高可靠性特點(diǎn),迅速走出機(jī)房;基于高速數(shù)值解算能力的微型機(jī),表現(xiàn)出的智能化水平引起了控制專業(yè)人士的興趣,要求將微型機(jī)嵌入到一個對象體系中,實(shí)現(xiàn)對象體系的智能化控制。例如,將微型計算機(jī)經(jīng)電氣加固、機(jī)械加固,并配置各種外圍接口電路,安裝到大型艦船中構(gòu)成自動駕駛儀或輪機(jī)狀態(tài)監(jiān)測系統(tǒng)。這樣一來,計算機(jī)便失去了原來的形態(tài)與通用的計算機(jī)功能。為了區(qū)別于原有的通用計算機(jī)系統(tǒng),把嵌入到對象體系中,實(shí)現(xiàn)對象體系智能化控制的計算機(jī),稱作嵌入式計算機(jī)系統(tǒng)。因此,嵌入式系統(tǒng)誕生于微型機(jī)時代,嵌入式系統(tǒng)的嵌入性本質(zhì)是將一個計算機(jī)嵌入到一個對象體系中去,這些是理解嵌入式系統(tǒng)的基本出發(fā)點(diǎn)。隨著嵌入式開發(fā)和智能設(shè)備的不斷發(fā)展,科學(xué)賦予人們的人機(jī)交互的能力越來越強(qiáng),對其的要求也是越來越高。而顯示屏幕的應(yīng)用無疑讓人機(jī)交互達(dá)到了一個新的發(fā)展層次。由于LCD體積小,重量輕,故而使得其在可視化人際交互的過程中成為人們的首選,也使得其開發(fā)成為當(dāng)今嵌入式開發(fā)中比較熱門的應(yīng)用。本設(shè)計選擇以嵌入式LCD的開發(fā)為題,正是為了更好的研究與應(yīng)用LCD服務(wù)我們的社會生活,促進(jìn)嵌入式應(yīng)用的發(fā)展。第二節(jié) 嵌入式LCD的應(yīng)用前景 當(dāng)今社會,嵌入式LCD開發(fā)的應(yīng)用可以說是數(shù)不勝數(shù),小到我們的MPMP4,大到我們的電腦、電視甚至是軍工的飛機(jī)、大炮,都離不開對LCD的應(yīng)用。所以,應(yīng)用成熟的嵌入式技術(shù)對我們的LCD進(jìn)行開發(fā)就具有了廣闊的前景。其主要應(yīng)用就體現(xiàn)在以下一些方面:1.?dāng)?shù)字、字符顯示這方面的應(yīng)用和LED相似,屬于小型顯示器件,可以顯示數(shù)字、字符及標(biāo)志等簡單信息,在鐘表家用電器,儀器儀表等有廣泛的應(yīng)用。2.平面顯示LCD的優(yōu)勢在于平面顯示,例如電視機(jī)、計算機(jī)顯示器,公共場合的大屏幕顯示器等,具有很大的應(yīng)用前景。3.可以作為光開關(guān)利用液晶對光的通過,遮斷特性,可將液晶器件做為光開關(guān)來使用。例如在光纖通信系統(tǒng)的交叉連接設(shè)備中,已開發(fā)出基于液晶器件的光開關(guān)矩陣。在光信息處理中,液晶光開關(guān)也得以應(yīng)用。4.軍用上的應(yīng)用也有很多這方面的應(yīng)用可以說舉不勝舉。我們的飛機(jī)、大炮,已經(jīng)各種最先進(jìn)的武器都會裝載有LCD。第三節(jié) LCD驅(qū)動技術(shù)的現(xiàn)狀及演進(jìn)趨勢LCD顯示器有兩大發(fā)展方向。一個方向是屏幕尺寸更大、分辨率更高、動態(tài)畫質(zhì)更好的LCDTV,其中最重要的任務(wù)是提高運(yùn)動圖像的質(zhì)量,即解決LCD顯示器天生的運(yùn)動偽像問題。另一個方向是用于移動顯示(例如手機(jī)顯示屏) 的顯示屏向著更高速、更高分辨率方向發(fā)展,即移動顯示屏要顯示1280800或1366 768像素的視頻信號和畫面,屏幕尺寸也加大到5英寸~6英寸。為此要開發(fā)出一系列成本低、功耗低的芯片。維持型顯示和較慢的時間響應(yīng)是LCD產(chǎn)生運(yùn)動偽像(Motion Artifacts)的原因。CRT顯示屬于瞬態(tài)顯示,顯示該位置圖像的亮度,然后在約1ms時間內(nèi)衰減到零。在下一幀中再發(fā)光,顯示另一個位置。人眼感受到的運(yùn)動是平滑的,其中暗的時段被人眼的低通時間響應(yīng)特性(即所謂視覺暫留)濾掉了。TFTLCD是維持型,顯示任何運(yùn)動物體,在一幀時間內(nèi)總是停留在一個位置上,在下一幀跳到另一個位置,加上人眼對運(yùn)動物體的自動跟蹤特性,將不同幀的發(fā)光強(qiáng)度積分在一起,人眼因此對運(yùn)動圖像感到模糊,這就是運(yùn)動偽像。解決LCD較慢的響應(yīng)時間可采用過驅(qū)動(OD,Over Drive)技術(shù),以此將液晶(LC)的響應(yīng)時間降低到8ms或更短。但是如何正確選擇過驅(qū)動電壓的大小仍是一個較大的技術(shù)問題。過分的OD將使運(yùn)動目標(biāo)邊緣產(chǎn)生亮、暗雙邊,即過驅(qū)動中的邊緣偽像;不足的OD則使LC的響應(yīng)時間不夠短,引起運(yùn)動圖像模糊。即使LC的響應(yīng)時間問題已完滿地解決,LCD維持型顯示器特性仍會對運(yùn)動圖像產(chǎn)生一系列偽像。對于高分辨率大顯示屏,運(yùn)動偽像問題變得嚴(yán)重。因此出現(xiàn)一系列降低維持時間(即積分時間),使LCD顯示更接近于瞬態(tài)型顯示的措施,以減輕運(yùn)動偽像的生成。與此相對應(yīng)的是驅(qū)動程序開發(fā)技術(shù)的演進(jìn)。早期,由于嵌入式的應(yīng)用主要是基于單片機(jī)的開發(fā),故而隨之而來的LCD驅(qū)動程序的應(yīng)用也主要是利用單片機(jī)的開發(fā),而相應(yīng)的LCD的控制方式也主要是基于intel8080時序和M6800時序的總線控制方式。隨著嵌入式Linux的應(yīng)用和微處理器的功能越來越強(qiáng)大,目前的LCD驅(qū)動程序開發(fā)技術(shù)更多的是利用linux內(nèi)核的開發(fā)。而這類LCD的控制方式也是掃描控制方式。這類開發(fā)方式加強(qiáng)了程序員對LCD的可操作性,減少了和硬件之間的聯(lián)系,但是由于利用了linux內(nèi)核部分,所以加強(qiáng)了對Linux的應(yīng)用。這有利于應(yīng)用于高級LCD工控系列產(chǎn)品的開發(fā)。第四節(jié) 本文的研究工作和論文組織結(jié)構(gòu)一 、本文需要解決的問題 LCD的驅(qū)動程序的開發(fā),歸根結(jié)底就是要利用LCD自身提供的硬件接口和硬件平臺,利用編程技術(shù)對這些硬件平臺進(jìn)行操作,按照一定的步驟和順序往這些硬件設(shè)備或者是硬件的部件中寫入數(shù)據(jù),然后讓其轉(zhuǎn)化成相應(yīng)的顯示圖像顯示出來。目前,大多數(shù)的LCD的驅(qū)動程序的開發(fā)都是基于Linux的內(nèi)核,對framebuffer的操作進(jìn)行的,這種方式主要是針對掃描控制方式的LCD進(jìn)行開發(fā)。對于目前的很多自帶總線控制接口的LCD,一般都采用單片機(jī)開發(fā)。在本文中,我們將同時探討對兩種LCD應(yīng)用Linux平臺的開發(fā)。二、本文的組織與結(jié)構(gòu)本文共分六章,各章的主要內(nèi)容如下:在第一章中, 本文介紹了開發(fā)的背景、意義,LCD嵌入式應(yīng)用的前景,LCD的驅(qū)動技術(shù)的現(xiàn)狀以及發(fā)展趨勢等等,并且介紹了本文需要解決的問題和組織結(jié)構(gòu)。在第二章