文档介绍:引言
嵌入式技术是将计算机作为一个信息处理部件,嵌入到应用系统中的一种技术,也就是说,它将软件固化集成到硬件系统中,将硬件系统与软件系统一体化。嵌入式具有软件代码小、高度自动化和响应速度快等特点,因而进入21世纪后其应用越来越广泛,例如,各种家用电器如电冰箱、自动洗衣机、数字点电视机、数码相机等广泛应用这种技术。
在本设计中硬件平台采用ARM9些列,属于中高端性能的芯片。ARM9系列处理器是英国ARM公司设计的主流嵌入式处理器,通过全新的设计,采用了更多的晶体管,能够达到两倍以上于ARM7处理器的处理能力。而这种处理能力的提高是通过增加时钟频率和减少指令执行周期实现的。同时采用型号为WXCAT35-TG3的LCD液晶显示器,,分辨率为320×240,可以实现触摸屏的相应时间小于10ms。本设计的最终目的是在LCD液晶显示器上动态显示多张图片,涉及到了从LCD驱动层到应用层的实现,关键技术为LCD驱动实现、图片解码、LCD应用程序实现。嵌入式技术是将计算机作为一个信息处理部件,嵌入到应用系统中的一种技术,也就是说,它将软件固化集成到硬件系统中,将硬件系统与软件系统一体化。嵌入式具有软件代码小、高度自动化和响应速度快等特点,因而进入21世纪后其应用越来越广泛,例如,各种家用电器如电冰箱、自动洗衣机、数字点电视机、数码相机等广泛应用这种技术。此设计是为了在ARM9硬件平台上,通过Linux系统实现LCD液晶显示器的驱动,并通过LCD应用程序实现图片在该LCD液晶显示器上进行动态显示。该LCD驱动只是在Linux-,对于不同版本的内核,可能需要进行相应的修改变动;同时设置的LCD的时序要根据不同的LCD显示器说明书进行设置。
对于在Linux内核中实现LCD液晶显示器的驱动,内核中本身有相应的实现,可以进行参考实现,但是本项目实现中,不采用内核中的定义实现方法,而是采用独立对相关变量进行定义和赋值,最终向Linux内核的上层进行提交fb_info结构体实现对LCD硬件的向上层注册。而对于LCD应用程序的实现将会是本项目的一个难点,在应用程序上通过向LCD驱动设置buffer数据区获得映射后,可以直接往该LCD的buffer里面直接写要显示的位图的值,然后LCD控制器会自动将该buffer中的位图数值进行显示到LCD液晶显示器中。而对于要写入的buffer的位图信息,必须要对图片进行解码,从而获得要现实的图片的位图数值,从而进行写入。
该LCD驱动模块以“-y”的编译选项编译到Linux内核中,从而可以实现在Linux内核启动的过程中,可以从LCD上打印出相应的启动信息,并在内核启动后显示登陆窗口。该项目的实现是在ubuntu ,通过交叉编译工具链arm-linux-gcc进行编译内核、LCD应用程序,通过网络的形式将Linux内核烧入到norflash中,然后在内核启动后通过网络进行挂载文件系统
1 LCD的显示实验的实验原理
通常我们常用的LCD显示模块有两种,一是带有驱动电路的LCD显示模块,二是不带驱动电路的LCD显示屏。大部分ARM处理器中都集成了LCD的控制器,所以,针对ARM芯片,一般不使用带驱动电路的LCD显示模块。
S3C2410 中具有内置的LCD 控制器,它能将显示缓存(在SDRAM存储器中)中的LCD图像数据传输到外部的LCD驱动电路上的逻辑功能。它支持单色、4级、16级灰度LCD显示,以及8位彩色、12位彩色LCD显示。在显示灰度时,它采用时间抖动算法(time-based dithering algorithm)和帧率控制(Frame Rate Control)方法,在显示彩色时,它采用RGB的格式,即RED、GREEN、BLUE,三色混合调色。通过软件编程,可以实现332的RGB调色的格式。对于不同尺寸的LCD显示器,它们会有不同的垂直和水平象素点、不同的数据宽度、不同的接口时间及刷新率,通过对LCD 控制器中的相应寄存器写入不同的值,来配置不同的LCD 显示板。
ARM9 s3c2410简介
在嵌入式领域中,为了开发更为高效的嵌入式设备,ARM由于其自身的高效特性成为很多开发者的首选,即使相对于MIPS架构的CPU来说,它的价格更高,但它带来的收益也会更多。
ARM技术
ARM体系结构是业界领先的微处理器体系结构,为系统和软件工程师提供了开发低能耗、高性能消费类和工业产品的硅验证解决方案。这些终端产品涵盖了从汽车和工业监视器到家庭娱乐和移动设备的各个领域。
ARM 完整产品线包括微控制器、微处理器、图形处理器、实现软件、单元库、嵌入式内存、高速连接产品、外设以及开发工具。借助于