基于arm的lcd显示系统的设计-学位论文.doc
山东建筑大学信息与电气工程学院课程说明书目录摘 要II1设计目的12设计原理13设计内容13.1S3C2440A最小系统.13.2显示系统硬件电路23.2.1LCD控制电路23.2.2时序和数据匹配电路53.2.3多路电压产生电路63.2.3以太网通信模块93.2.4显示驱动和LQ035Q7DH01的接口电路73.2.5 显示系统整体结构框图83.3显示系统软件编写8总结与致谢10参考文献11摘 要嵌入式系统是嵌入到对象体系中的专用计算机系统。以嵌入式计算机为核心的嵌入式系统是继IT网络技术之后,又一个新的技术发展方向。本文介绍和设计了一款基于ARM嵌入式系统的LCD显示系统。该系统在功耗,体积,集成度,成本等都有较好的优势,具有一定的实用意义。 关键词:嵌入式;LCD;S3C2440A;LQ035Q7DH01;11山东建筑大学信息与电气工程学院课程说明书1 设计目的 以三星公司的嵌入式微处理器S3C2440A和夏普公司3.5inLCD屏LQ035Q7DH01为基础,设计了显示硬件电路,不论是显示硬件电路还是软件驱动程序,都有很强的可移植性,可以方便地移植到不同的平台。2 设计要求设计要求实现一个能把采集和处理的数据,图像显示在LCD上的系统。该系统可以把采集来的数据经过ARM的处理后显示在LCD上。采集数据和处理数据可以自己根据具体情况自己设定(如键盘输入,ARM计算等)。根据设计题目的要求,选择确定ARM芯片型号、LCD型号、LCD控制器芯片型号,完成系统硬件设计。3 设计内容3.1 S3C2440A最小系统为确保S3C2440A的基本运行需求,对ARM主芯片的基本硬件设计,包括电源,时钟以及复位的设计图1 时钟以及复位的设计3.2显示系统硬件电路3.2.1LCD控制器电路 LCD控制器用来传输图像数据并产生相应的控制信号,S3C2440A LCD控制器能支持高达4K色STN屏和256K色TFT屏,支持1024×768分辨率下的各种液晶屏, 具有LCD专用DMA。LCD控制器产生的控制信号和数据信号主要有:· VFRAME:LCD 控制器和LCD驱动器之间的帧同步信号, LCD控制器在一个完整帧显示完成后插入一个VFRAME信号,开始新一帧的显示。 · VLINE:LCD控制器和LCD驱动器之间的行同步信号,LCD控制器在整行数据移入LCD驱动器后插入一个VLINE信号。 · VCLK:LCD控制器和LCD驱动器之间的像素时钟信号, 由LCD控制器送出的数据在VCLK的上升沿处送出,在VCLK的下降沿处被LCD驱动器采样。 · VM:数据输出使能信号,在VM 信号跃变成高电平后行数据信号开始由LCD控制器输出至LCD驱动器,当VM信号跃变为低电平后数据输出停止。 · 数据线:也就是RGB信号线,S3C2440A LCD控制器有VD0:23共24根数据线,数据格式不同,接线方式就不同。本文用的是RGB565方式,只需要16根数据线(红色5根,绿色6根,蓝色5根)。其数据线接线方式如表1所示:·图2 LCD控制器电路3.2.2时序和数据匹配电路由于S3C2440A 的LCD控制器与LCD屏LQ035Q7DH01在数据格式及显示时序上无法匹配,需要选用一种时序控制IC或者用CPLD(也就是通常所说的LCD伴侣芯片)来对不同数据格式的数据接口进行映射。但CPLD面积较大、成本较高,因而通常只在需要对电路进行灵活配置的情况下才使用。本文时序控制IC选用夏普公司的LZ9FC22。该芯片专用于对TFT型QVGA屏幕(屏幕分辨率320×240)的LCD进行时序控制。这是一个18bit(R6G6B6)的控制器,由于本文采用的是RGB565 16位工作模式,所以将其输入引脚R0和B0接地。时序和数据匹配电路如图所示:图3 时序和数据匹配电路3.2.3多路电压产生电路图4 多路电压产生电路3.2.4显示驱动和LQ035Q7DH01的接口电路显示驱动和LQ035Q7DH01的接口电路如图所示:图5 显示驱动和LQ035Q7DH01的接口电路3.2.5显示系统整体结构框图 图6 整体结构框图3.3显示系统软件编写文中根据需要为S3C2440A的LCD 控制器定义了一个专用结构体s3c2440fb_mach_info:struct s3c2440fb_mach_infou_long pixclock; /* 像素时钟频率 */u_char bpp; /* 每像素需要的bit数 */u_short xres; /* 显示器行分辨率 */u_short yres; /* 显示器列分辨率 */u_char hsync_len; /* 行同步信号的长度 */u_char vsync_len; /* 帧同步信号的长度 */u_char left_margin;/* 从本行图象数据输出结束到下一行的行同步信号开始之间的像素时钟数 */u_char right_margin; /* 从行同步信号结束到该行的图象数据开始输出之间的像素时钟数*/u_char upper_margin;/*从本帧图象数据输出结束到下一帧的帧同步信号开始之间的无效行数 */u_char lower_margin; /*从帧同步信号结束到该帧图象数据开始输出之间的无效行数*/u_char sync;struct s3c2440fb_lcd_reg reg; /*S3C2440ALCD控制寄存器结构体 */;Main()int fbfd=O;struct fb_var_screeninfo vinfo;struct fb_fix_screeninfo finfo;unsigned char *fbp;fbfd=open ("/dev/fb0",O_RDWR);/* 打开设备文件 */if(!fbfd) /* 失败返回 */printf("Error:cannot open framebuffer device.n ");exit(1);Printf ("The framebuffer device was opened successfully.n");ioctl (fbfd,FBIOGET_FSCREENINFO,&finfo);/* 获取显示设备特性 */ioctl(fbfd,FBIOGET_VSCREENINFO,&vinfo);screensize=vinfo.xres*vinfo.yres*vinfo.bits_per_pixel/8 /* 计算屏幕缓冲区的大小 */fbp= (unsigned char*)mmap (0,screensize,PORT_READ|PORT_WRITE,MAP_SHARED,fbfd,0);/* 将屏幕缓冲区映射到用户地址空间,然后应用程序就可以通过fbp访问缓冲区了*/memset (fbp,0,screensize); /* 用memset将屏幕清空 */总结与致谢在这次设计过程中,体现出自己单独设计模具的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。在此论文完成之际,首先特别感谢我的导师杨健对我的悉心指导和帮助。在我的设计和调试工作中无不倾注着老师辛勤的汗水和心血。导师脚踏实地的治学态度、兢兢业业的工作态度和认真务实的科研作风使我深受启迪。从尊敬的导师身上,我不仅学到了专业的知识,也学到了做学问的方法。在此,我要向我的导师表达深深的感谢和崇高的敬意。 在显示系统硬件设计中,显示硬件的整体设计考虑全面是设计过程中的重点,这就要求对显示硬件的各特性参数有全面的了解。软件设计中,由于其中涉及到的数据结构比较多,同时又和控制台联系在一起,有一定的难度。只有在深刻理解各个变量和操作函数的具体意义后, 才能分析编写自己需要的LCD驱动程序。 参考文献1 杜春雷.ARM体系结构与编程M.北京:清华大学出版社,2003.2 周立功 .ARM嵌入式Linux系统构建与驱动开发范例M.北京:北京航空航天大学出版社,2006.3 斯洛斯(Sloss,A.N.).ARM嵌入式系统开发:软件设计与优化M.北京:北京航空航天大学出版社,2005.4 ARM&Linux嵌入式系统教程.北京:北京航空航天大学出版社,2004.5 陈赜ARM9嵌入式技术及Linux高级实践教程M 北京:北京航空航天大学出版社,20056 孙天泽,袁文菊嵌入式设计及Linux驱动开发指南基于ARM9处理器M 第2版北京:电子工业出版社,2007.7 田泽ARM9嵌入式Linux开发实验与实践M 北京:北京航空航天大学出版社,2006.8 于明ARM9嵌入式系统设计与开发教程M 北京:电子工业出版社,2006.9 赵星寒 ARM开发工具ADS原理与应用M 北京:北京航空航天大学出版社,200610 季昱, 林俊超, 宋飞编ARM嵌入式应用系统开发典型实例M 北京:中国电力出版社,2005