1.1 嵌入式Linux驱动程序
通俗意义上的驱动程序就是指让硬件正常运行的一段程序。而在Linux系统中,所有的设备均是用文件的形式来表示的,设备驱动程序好比一组用来为特定硬件设备提供给用户程序的标准化接口,通常情况下工作在内核底层,并隐藏了设备工作细节,在源代码中占有很大的比重。通过这些接口,用户能够控制设备,完成诸如打开、关闭以及读写等操作。在Linux操作系统中,设备驱动程序被分为字符设备、块设备和网络接口3种类型[ ]:字符设备在传输过程中以字符为单位,它在存取时没有缓存,可以像普通文件一样被访问;块设备类似于字符设备,只不过内核对于它的管理是以块为单位进行的;网络接口是Linux中专门用于内核与网络驱动程序的接口,通过调用与数据包传输相关的函数来处理。
1.2 嵌入式LCD显示的发展
文献[ ]中主要研究的是将Framebuffer和直接读写GPIO驱动相结合的LCD控制方法,综合了两种控制方法的优势,实现了在底层驱动采用直接读写GPIO驱动,而在内核空间和应用程序的数据传输上采用Framebuffer的帧缓冲机制。
文献[ ]中主要基于S3C2410微处理器,讲述了LCD控制器中寄存器的相关知识和配置方法,论述了在嵌入式图形系统中连接LCD驱动硬件电路的方法,并在此基础上完成了驱动程序的设计。
文献[ ]中主要基于S3C2440开发板和Linux2.6.13内核平台,研究了怎样根据不同尺寸的LCD,来进行内核的配置和编译的方法,以及怎样将驱动编译进内核镜像。
文献[ ]中主要基于ARM9 S3C2410A开发板,在详细介绍了KS0107控制器的工作原理与使用的基础上, 给出了同开发板的硬件电路连接方法,同时搭建了一种基于两者的液晶显示工作平台。
文献[ ]中主要研究采用工业级的FPGA芯片,开发一种可以稳定、有效工作于-40~+65℃的用于军用设备的LCD显示器。在实现了接收隔行扫描的视频信号的基础上,还完成了缩放、去隔行和满屏显示的功能。
TFT-LCD是目前液晶显示技术中的主流产品,被广泛应用于各类电子产品中,例如移动通信设备、液晶电视、电脑、摄像机、数码相机等。这主要归功于它具有快速的响应、庞大的显示信息容量的特点,以及可以完全满足视频动态图像显示的需要。TFT液晶屏形式多样,可以根据不同需要选择具体尺寸大小的屏,在色彩显示方面不仅支持黑白和16位色显示,最大还支持18位真彩(即26万色)显示。在本次研究中,拟采用屏幕大小为480*272,像素16位色的TFT-LCD屏来进行。
1.3 Framebuffer技术
Framebuffer即帧缓冲,是图形设备的一个提取或抽象,是出现在Linux2.2xx内核当中的一种驱动程序接口。Linux操作系统是工作在保护模式下的,这就意着,用户进程无法像DOS系统下那样,直接利用显卡BIOS中提供的中断调用来实现写屏。为了方便用户的写屏操作,Linux抽象出了Framebuffer这个设备。Framebuffer机制模仿显卡的功能,抽象化了显卡硬件结构,使上层的应用程序在图形模式下能够直接对显存进行操作。用户唯一要做的,只是实现LCD的Framebuffer驱动,通过它的映射操作,将屏幕缓冲区的物理地址映射到用户空间的一段虚拟地址中。这样便能通过这段虚拟地址直接进行读写操作,并且写操作可以立即反应在屏幕上,用户不必关心物理显存的位置以及里面涉及到的换页机制等具体细节,这些由Framebuffer设备驱动完成[ , ]。Framebuffer使得用户在嵌入式Linux下进行图形设计变得比较简单、高效。
2 嵌入式LCD显示驱动
2.1 嵌入式LCD显示驱动方案比较
实现LCD显示驱动的方法有很多,下面介绍几种较为常用的方法,并分别比较它们的优缺点: 基于Framebuffer的LCD显示驱动程序的设计和开发(2):http://www.751com.cn/zidonghua/lunwen_19260.html