基于linux的嵌入式lcd驱动的设计毕业设计.docx
- 文档编号:26384867
- 上传时间:2023-06-18
- 格式:DOCX
- 页数:81
- 大小:405.32KB
基于linux的嵌入式lcd驱动的设计毕业设计.docx
《基于linux的嵌入式lcd驱动的设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于linux的嵌入式lcd驱动的设计毕业设计.docx(81页珍藏版)》请在冰豆网上搜索。
基于linux的嵌入式lcd驱动的设计毕业设计
哈尔滨工程大学
毕业设计(论文)
题目基于Linux的嵌入式LCD驱动设计
学院通信与电子工程学院
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
摘要
嵌入式设备因其种类多,复杂多样的特点决定嵌入式设备必须研发自己的设备驱动程序,而设备驱动程序在嵌入式系统中占有很重要的地位。
为此,本文深入研究与设计了基于嵌入式Linux的LCD驱动程序。
以ARM9开发板作为目标机,采用VMware虚拟平台以及Windows和Linux操作系统相结合的软件开发平台,搭建了研究和设计所需的交叉编译环境。
深入研究了内存与I/O访问、并发控制等关键技术。
进而采用帧缓冲技术,研发了LCD驱动程序,实现了对LCD的显示控制以及与内核的烧写。
以显示5个不同的颜色的应用程序对其测试,结果表明,所设计开发的LCD驱动程序运行稳定颜色鲜艳饱满,满足用户色彩界面开发的需求,达到设计目标。
关键词:
嵌入式;Linux;设备驱动;帧缓冲;LCD
Abstract
AbstractEmbeddeddevicesbecauseofitsvarietyofcomplexanddiversecharacteristicsofthedecisiontoembeddeddevicesmustdeveloptheirowndevicedrivers,devicedriverplaysanimportantroleinembeddedsystems.Inthispaper,in-depthstudyanddesignofembeddedLinux-basedLCDdriver.ARM9developmentboardasthetargetmachine,usingacombinationofVMwarevirtualizationplatform,aswellasWindowsandLinuxoperatingsystemssoftwaredevelopmentplatformtobuildaresearchanddesigntherequiredcross-compilerenvironment.In-depthstudyofthekeytechnologiesofmemoryandI/Oaccess,concurrencycontrolandsoon.Andthenusingtheframebuffertechnology,researchanddevelopmentoftheLCDdriver,LCDdisplaycontrol,andkernelprogramming.ToshowtheapplicationoffivedifferentcolorsoftheirtestresultsshowthatthedesignanddevelopmentofLCDdriverstablefullofbrightcolors,tomeettheneedsoftheusercolorinterfacedevelopment,andmeetthedesigngoals.
Keywords:
Embedded;Linux;devicedriver;framebuffer;theLCD
第一章绪论
1.1概述
现在的嵌入式开发始于微机时代的嵌入式应用的。
在1964年电子计算机诞生以后,其接下来的漫长生涯始终是供养住在特殊的机房中,完成数值计算的大型而昂贵远终端设备。
直到20世纪70年代中期,微处理器计算机的出现,计算机才实现了历史性的突破。
以微处理器为核心的微型计算机以其小巧,经济,可靠性高特点,步入到社会当中;凌驾于高速数值解算能力的微型机,体现出的智能化水平引起了控制主业人士的兴趣,要求将微型机嵌入到一个对象体系中,实现对象体系的智能化控制。
例如,将微型计算机经电器加固,机械加固,并配置各种外围GPIO电路,安装到大型车体中构成自动驾驶仪或发动机状态系统检测,以此,计算机就丢掉了原有的形态和普及得分计算机能力。
为了区别以往的传统计算机体系,把嵌入到目标体系中,以此,我们把嵌入式计算机系统,称为能够实现对象体系智能化控制的计算机。
因此,嵌入式系统步入了微型机时代。
嵌入式系统的嵌入性本质是将一个计算机嵌入到一个对象体系中去,这些是理解嵌入式系统的基本出发点。
随着嵌入式开发和智能设备的不断发展,科学赋予人们的人机交互的能力越来越强,对其的要求也是越来越高,而显示屏幕的应用无疑让人机交互达到了一个新的发展层次。
由于LCD体积小,重量轻,故而使得其可视化人机交互的过程中成为人们的首选,也使得其开发成为当今嵌入式开发中比较热门的应用。
本设计选择以嵌入式lcd的开发为题,正是为了更好的研究与应用LCD服务我们的社会生活,促进嵌入式应用的发展。
1.2目前的发展现状及前景
随着信息科技的不断发展,无论是高精尖的军工领域、航空航天领域,还是我们身边的手机,电话,PDA,数码相机,家用电器,嵌入式系统得到越来越广泛的应用。
以前的嵌入式系统相对比较简单,往往只有一个很小的芯片,程序固化在产品的内部,完成相对简单的功能,交互性比较低。
随着人们对于嵌入式系统的需求越来越多,所需求的功能也逐渐增多,因此,嵌入式系统也具有了更强的交互性。
为了更加便利的对系统进行个性化的设置,需要用户与系统有相应的交互,那么,就需要将交互过程可视化,因此,越来越多的嵌入式设备就配备了液晶屏,一方面可以提高系统的交互性,另一方面,也为多媒体技术的应用带来更广阔的空间,无论是MP3,MP4,甚至我们每个人手上的手机,都是液晶显示屏,同样都有对于多媒体娱乐的需求,为我们提供更加丰富多彩的生活。
linux操作系统有许多优点,最重要的就是它的内部实行细节对所有人都是公开的以前,操作系统的代码仅仅掌握在少数程序员手里,但是linux使我们只要具备必要的技术能力,就可以方便的验证、理解、修改、移植操作系统,或者其中的某一部分。
驱动程序在linux内核中起到重要的作用。
它能够用规定好的硬件特性来响应限定好的内部编程接口,我们通过一些工作细节来完成接口设备的隐藏工作。
我们用标准化的调用来执行用户的操作,然后而特定的调用将被独立于特定的驱动程序。
然后这些调用将被映射到作用于实际硬件的特有设备操作上,是驱动程序的主要任务。
这些接口可以使驱动程序独立于内核的其他部分而建立,以模块的形式,在需要时动态的插入到内核中,在不需要时可以移出内核。
显示出了其良好的特性。
由于液晶显示器的大量需求,以及linux操作系统众多的优点,因此,本题目的设计选择了以linux作为嵌入式设备的操作系统,对于基于linux的嵌入式LCD驱动,将会有很好的应用前景。
1.3本文主要的研究意义
液晶显示模块满足了嵌入式系统随着日益的提高现在的科技要求它可以显示字符、汉字和图形化同时还需具有低功耗、低压、重量轻、体积小和超薄等优点。
随着嵌入式系统的应用逐渐广泛功能也逐渐强大对系统中的人机交互界面的要求也逐渐提高,在应用需求的日益驱使下许多基于Linux下的图形化界面软件包的开发和移植程序中都涉及到了底层LCD驱动的开发问题。
因此在嵌入式系统中开发LCD驱动得以广泛运用随着高性能嵌入式处理器的全面普及化和硬件成本的大幅度降低,尤其是ARM系列处理器的引进,嵌入式系统的功能也逐渐强大。
目前在多媒体应用的推动下,彩色LCD也逐渐多地运用到了嵌入式系统中,如新型产品掌上电脑PDA多采取TFT显示器件,彩色图形界面,图片显示和视频媒体播放也得到了相应的支持。
彩色LCD的操作系统有微软WindowCE,PalmOS等。
而Linux操作系统做为开源的操作系统也在市场中占据了很重要的地位。
由于Linux成本低廉,任何人都可以得到其源代码并在其基础上进行开发,成为各家厂商极力发展的操作系统,加上其核心小,潜力可观。
1.4本文的研究内容
课题研究的基本内容学习LCD显示启动基本原理了解LINUX下FRAMEBUFFER结构原理。
了解用总线凡是驱动LCD模块并且编程实现RM内置的LCD控制器来驱动LCD。
在LINUX系统中设备驱动是内核的一部分,它主要完成以下内容:
1.LCD原理和LCD的驱动方式;
2.Linux下设备驱;
3.嵌入式系统中实现LCD显示驱动程序;
4.Linux中的显示驱动程序结构和框架。
自定义显示内容;
第2章系统设计综述
2.1操作系统的选择
嵌入式系统大体分为4种分别为:
计算机与科学技术、通信与传输技术、半导体与导体技术、微电子与科学技术、图像语音数据传输技术、传感器等先进技术和具体应用与现实相结合后的更新产品。
嵌入式系统主要以应用为研究中心、以计算机应用技术为研究基础、软硬件可裁剪、适用于应用系统,对功能、可靠性、成本、体积、功耗等5项严格要求的专业型计算机系统。
总体上,嵌入式可以划分为硬件和软件两部分,硬件一般由高性能的处理器和各种接口电路组成,软件一般由实时操作系统和其他运行的应用软件构成,软件和硬件之间由中间层(BSP板,板极支持包)连接。
2.1.1嵌入式系统的发展过程
嵌入式系统的出现,距今将近有四十年的时间,近年来,随着智能系统,通讯产业,多媒体娱乐,计算机产业的不断发展和日趋融合,嵌入式系统的应用越来越贴近普通人的生活,嵌入式技术也受到专业开发人员的追捧。
由嵌入式技术的出现,发展到当今阶段,其发展过程大致可分为以下几个阶段:
第一阶段是以单芯片为核心的可编程控制器形式的系统,具有监测,伺服,指示设备相互助的功能。
这些系统基本应运用于一些专业性比较强的工业控制系统中,基本没有操作系统的支持和协助,通过汇编语言对系统进行控制;
第二阶段是以嵌入式中央处理器为基础,以基本操作系统为核心的嵌入式系统。
主要特点包括:
CPU种类较多,通用性薄弱;系统消耗小,效率显著提高;操作系统达到特定的兼容性和扩展性;应用软件呈现专业化趋势,用户界面不够完善;
第三阶段是以嵌入式操作系统做为标志。
主要具有操作系统内核小、效率高等特点,并且模块化和扩展性得到了高度的体现;具备管理文件和目录和多任务和网络支持,图形窗口以及用户界面替换等功能;提供大量的应用程序接口,具有简单的开发应用程序;嵌入式应用软件丰富;
第四阶段是以Internet为标志的嵌入式系统。
这是一个正在迅速发展的阶段.目前许多嵌入式系统还局限于Internet之外,但随着Internet的逐渐发展以及Internet技术和工业控制技术结合日益密切,嵌入式系统的未来要逐渐走要与Internet的结合时代。
2.1.2嵌入式的特点
嵌入式系统是继PC时代和网络时代之后,又一兴起的时代新秀。
与传统的普通计算机、数字产品相比,嵌入式系统具有以下特点:
专用型强。
嵌入式系统通常是面向某个特定的应用方向,因此嵌入式系统的硬件是为特定的用户群来设计的,它通常具有专用性的特点。
嵌入式CPU与通用型的最大不同,就是嵌入式CPU针对特殊的应用领域,偏重于图像处理、数据处理、科学计算、低功耗等其中的一项或者几项,相对普通计算机处理器更具有专一性。
实时性好。
嵌入式系统的软件一般不是存储与磁盘等载体,而是固化在存储器芯片或单片系统的存储器里,系统体积远远小于普通计算机操作系统,可以快速响应外部事件,使得嵌入式系统具有非常好的实时性。
可裁剪性强。
嵌入式系统的软件和硬件都是可裁剪的。
以便于开发人员或者用户,根据具体的应用需求,添加需求的部分,剪裁掉不需要的冗余部分,精简系统的规模,这对于嵌入式系统的应用来说,无论是对于其占用的空间,还是在运行速度和实时性上,都是非常有必要的。
嵌入式系统是将先进的计算机技术、半导体技术、电子技术与各个行业的具体应用相结合后的应用产物。
这一点决定了它是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
嵌入式系统的硬件和软件都必须高效率的设计,量体裁衣、去除冗余、力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。
嵌入式系统和具体应用有机结合在一起,它的升级换代也适合具体产品同步进行的,因此嵌入式产品进入市场之后,具有较长的生命周期。
嵌入式系统不具有自主开发能力,即使设计完成后用户端通常也不能对其中的程序功能进行修改,必须有一套自主开发程序和相应的环境才能进行研发。
2.1.3嵌入式程序的开发
嵌入式系统的软件开发一般都会按照以下几个层次来开发。
第一层是用户界面函数,每个嵌入式系统的硬件所提供的用户界面不一样,虽然大多数LCD的屏幕以及触摸面板的方式,但还是有屏幕尺寸的不同,所以有关界面的设计,需要根据不同的平台而进行相应的调整。
第二层是环境界面函数,因为每个操作系统所提供的系统调用不同,或者硬件参数和编译器不同,造成数值长度不同。
在进行平台移植时,可能会出现不同的运算结果,甚至造成系统的崩溃,这在系统和程序开发时,是需要保持警惕的。
2.2系统硬件的选择
图2.2为lcd驱动的结构框图,S3C2440处理器通过数据线和地址线与显示缓存SDRAM达到连接、传入像素数据,LCD控制器就会自动通过DMA读取数据送往TFTLCD显示,下文主要介绍如何选择lcd的硬件部分。
图2.2LCD驱动结构框图
2.2.1LCD液晶屏
随着信息显示技术的发展,液晶显示器已经得到了越来越广泛的应用。
利用光电效应的LCD大致可分为以下几种:
TN-LCD、STN-LCD、HTN-LCD、FSTN-LCD、TFT-LCD。
TN-LCD就是扭曲向列液晶显示器。
在TN型液晶显示器中含有正性向列型液晶。
液晶分子的定向就是使玻璃表面平行于圆柱型的液晶分子沿一个固定方向排列,分子长轴的方向是由定向处理的方向而定的。
玻璃上下表面的定向方向是相互垂直的,这样,在垂直于玻璃片表面的方向,呈现出逐渐扭曲液晶分子,从上玻璃片到下玻璃片扭曲了90°,这就是扭曲向列型液晶显示器名称的由来。
TN-LCD是人们发现最早,应用最广,数量最多,价格最便宜的显示器。
STN-LCD是SuperTwistLiquidCrystalDisplay的简称。
即超扭曲向列型LCD。
它与TN-LCD的结构相似,不同的是它的扭曲角不是90度,而是在180~270度之间,虽然仅仅扭曲角不同,但它的工作原理与TN-LCD完全不同。
HTN-LCD是HighTwistNematicLiquidCrystalDisplay的简称。
即高扭曲向列型液晶显示器。
HTN-LCD的扭曲角在100度到120度之间。
介于TN-LCD和STN-LCD之间,其性能也介于TN-LCD和STN-LCD之间。
FSTN-LCD是FilmSuperTwistNematicLiquidCrystalDisplay的简称,称为补偿膜超扭曲向列型液晶显示器。
通过一层特殊处理的补偿膜,能够克服STN-LCD的缺点。
TFT-LCD是ThinFilmTransistor的简称,即薄膜晶体管的有源矩阵LCD,它是目前LCD市场中较高档的产品。
TFT-LCD以其分辨率高、响应速度快和色彩丰富等优点正逐渐取代STN-LCD,随着TFT工艺的成熟,TFT已逐渐成为现在液晶显示领域的主流产品
2.2.2ARM9处理器
ARM9系列处理器是英国ARM公司设计的主流嵌入式处理器,主要包ARM9TDMI和ARM9E-S等系列。
以应用手机为例,2G手机的功能是提供语音及简单的文字短信,而现在我们使用的2.5G和未来将要面世的3G手机除了提供这两项功能外,还必须提供各种其他的应用功能。
主要包括:
(1)无线网络设备:
手机无线上网、电子邮件的收发及其他GPS定位服务等功能
(2)掌上平板电脑功能:
包括用户操作系统(WindowsCE、SymbianOS、Linux等)及其他功能;(3)高性能功能:
音频播放、可视电话、手机游戏等。
在2.5G和3G的应用中ARM9嵌入式处理器已经完全的替代了ARM7嵌入式处理器。
因为ARM9的全新特性能够满足各种新需求的同时减少产品研发时间并降低研发费用。
新一代的ARM9处理器,呈现给我们的是全新的设计,并且采取了更多的晶体管,能够超越ARM7处理器两倍以上的处理速度。
我们通过增加时钟频率和减少指令执行周期来实现处理速度的提高。
1.时钟频率的提高
ARM7处理器的流水方式3级流水线,而ARM9的流水方式为5级流水线,时钟频率和并行处理能力的提高是通过增加流水线而实现的。
在5个时钟周期内可以通过5级流水线将每个指令分配进去,有5个指令在同一时刻被执行。
在同样工艺加工下,ARM920T处理器的时钟频率是ARM720T的1.8~2.2倍。
2.指令周期的改进
对于处理器性能我们会用改进指令周期的方法来提高。
代码执行时指令的重叠决定了性能提高的幅度,这实际问题体现在程序本身。
对于最高级的语言的采用,总体来说,会提高性能的30%左右。
2.2.3S3C2440处理器
S3C2440是一款基于ARM920T内核的32位的执行命令较少的微嵌入式微处理器,主要面向以及高性价比、低功耗的手持设备应用。
可以达到203MHz的运行频率。
ARM920T内核由基于ARM体系结构v4版本的高端ARM核、高速缓存和储存管理三部分组成。
其中虚拟内存可以被内存管理单元所管理,由独立的16KB地址和16KB数据高速缓存器组成了高速存储设备。
ARM920T有两个协处理器:
CP14和CP15。
CP14具有调试控制,CP15具有存储系统控制以及测试控制。
其内结构如图2.2所示
图2.2S3C2440内核结构图
S3C2440在内核结构中是比较复杂的,功能模块的扩展性也比较强,主要有ARM9独立的16KB数据缓存和16KB指令集,ARM920T内核,虚拟内存管理单元,LCD控制器,NANDflash内存,,3通道UART,4通道DMA,4通道具备PWM功能的定时器,内存管理单元,I/O口,实时时钟芯片,8通道10比特位精度ADC汇编指令,互联网信息,数字音频总线接口,USB主机,USB设备,SD/MMC卡控制器,2通道SPI和PLL数字锁相环组成。
其内部结构如图2.3所示:
图2.3S3C2440功能框图
第3章创建嵌入式linux软件开发平台
3.1Linux系统
Linux是一个类UNIX内核的可自由发布的实现版本,是一个操作系统的底层核心。
因为Linux以UNIX为灵感来源,所以Linux程序和UNIX程序非常类似。
事实上,几乎所有为UNIX编写的程序都可以在Linux上运行。
而且,一些专用于UNIX商用版的商用应用程序也可以不加改变的以二进制形式运行在Linux系统上。
Linux是由赫尔辛基大学的LinusTorvalds开发的。
起见得到了网络上广大的UNIX程序员的不断帮助,逐渐完善起来的。
它最初只是受AndyTanenbaum教授的Minix启发而开发的个人爱好的程序,但后来它逐渐发展成为一个拥有自己版权的完整操作系统。
其目的是,保证Linux除包含自由发布的代码外,不会集成任何私有代码。
在linux的特性中灵活性和高效性得到了充分的体现。
它可以集成unix的全部特性在计算机上。
具有多功能例如:
多任务、多用户并发。
在GNU操作系统下的GPL协议公共许可权限下我们可以免费获得Linux,linux是一个符合POSIX标准的操作系统。
Linux操作系统不仅被Linux操作系统软件包所包括,而且文本编辑器、高级语言编译器等应用软件也包含在内。
它还包括带有多个窗口管理器的Windows图形用户界面,如果我们使用WindowsNT一样,允许我们使用窗口、图标、菜单对系统进行操作。
现在,linux几乎可以运行在所有类型的CPU的计算机上,包括基于intelx86系列机及其各种兼容型个人计算机,使用SPARC、POWERPC、Itanium的工作站和服务器,还有一些手持设备,PDA,游戏机,手机,嵌入式产品等,都会有Linux的身影出现。
由于Linux的开源性免费性,使得很多厂家将注意力都转移到它的上面,以便于降低产品成本,增强产品市场竞争力。
同时,也推进了linux在操作系统领域的推广与普及。
3.2Linux的发展过程
1990LinusTorvalds首次接触MINIX;
1991LinusTorvalds开始在MINIX上编写各种驱动程序等操作系统内核组件;
1991底,LinusTorvalds公开了Linux内核;1993Linux1.0版发行,Linux转向GPL版权协议;
1994Linux的第一个商业发行版Slackware问世;
1996美国国家标准技术局的计算机系统实验室确认Linux版本1.2.13(由OpenLinux公司打包)符合POSIX标准;
1999Linux的简体中文发行版相继问世。
3.3Linux系统的优点
(1)良好的界面
字符界面和图形界面同时被Linux采用着。
用户可以通过键盘在字符界面输入相应的指令来进行操作。
它同时也提供了类似Windows图形界面的系统,用户可以使用鼠标对其进行操作。
在Windows环境中就和在Windows中相似,可以说是一个Linux版的Windows。
(2)多任务、多用户
Linux采用多用户切换状态,各个用户之间有着自己特殊的管理权力对自己的文件设备,用户之间互不影响得到了充分的保护。
现在电脑中多任务是最主要的要求之一,在相应的操作系统上linux允许多个程序同时并独立的运行。
(3)开源免费
Linux是一款开源的完全免费的操作系统,用户可以通过网络下载申请等途径免费获得,并可以根据需求自己可以修改其源代码。
这是其他的操作系统所不能被允许的。
正是这一特性,全世界无数程序员参与了Linux编写工作,源代码的修改,根据自己兴趣和灵感程序员可以对其进行相应的修改。
无数程序员的精华在linux操作系统中得到了充分的施展。
POSIX1.0标准被Linux完全的兼容,这使得可以运行常见的DOS、windows在Linux下通过相应的模拟器。
这为用户从Windows到Linux成功转型奠定了基础。
许多用户在考虑使用Linux时,就想到以前常见的应用程序在Windows下是否能正常运行,他们的疑虑在这一点被成功的消除了。
(4)可靠的安全、稳定性能
Linux采用了许多安全技术的相应措施,其中对读、写操作设置了相应控制、审计跟踪、核心技术授权等
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 linux 嵌入式 lcd 驱动 设计 毕业设计