山东建筑大学 基于ARM的LCD显示系统设计报告综述.docx
《山东建筑大学 基于ARM的LCD显示系统设计报告综述.docx》由会员分享,可在线阅读,更多相关《山东建筑大学 基于ARM的LCD显示系统设计报告综述.docx(12页珍藏版)》请在冰豆网上搜索。
山东建筑大学基于ARM的LCD显示系统设计报告综述
附录1:
原理图
摘要
嵌入式系统已成为当今最热门的概念之一,对大多数嵌入式系统开发者而言,显示系统的硬件和软件开发是不可回避的关键性技术。
三星公司开发S3C2440A是一款以ARM920T为内核的嵌入式微处理器,它的最高工作频率达533MHz,内含3通道的异步串行口,USB主、从单元设备接口,摄像头接口,触摸屏接口,LCD控制器等众多片上外设接口,且具低功耗、高性能,广泛适用于PDA、便携式媒体播放器、手持式导航仪等领域。
目前国内对该款高性价比嵌入式微处理器的开发应用才起步不久。
嵌入式系统是嵌入到对象体系中的专用计算机系统。
以嵌入式计算机为核心的嵌入式系统是继IT网络技术之后,又一个新的技术发展方向
夏普公司生产的LCD屏LQ035Q7DH01为3.5in透反射式TFT-LCD显示器,屏幕分辨率为320×240,能提供262144种色彩,显示亮度达到100nit,使设计人员能够在各种照明条件下利用它来生动地展示图像和文字信息。
本文以S3C2440A和LQ035Q7DH01为硬件基础,设计了显示硬件电路。
该系统在功耗,体积,集成度,成本等都有较好的优势,具有一定的实用意义。
关键词:
嵌入式;LCD;S3C2440A;LQ035Q7DH01;
1设计目的
以三星公司的嵌入式微处理器S3C2440A和夏普公司3.5inLCD屏LQ035Q7DH01为基础,设计了显示硬件电路,不论是显示硬件电路还是软件驱动程序,都有很强的可移植性,可以方便地移植到不同的平台。
2设计要求
设计要求实现一个能把采集和处理的数据,图像显示在LCD上的系统。
该系统可以把采集来的数据经过ARM的处理后显示在LCD上。
采集数据和处理数据可以自己根据具体情况自己设定(如键盘输入,ARM计算等)。
根据设计题目的要求,选择确定ARM芯片型号、LCD型号、LCD控制器芯片型号,完成系统硬件设计。
3设计内容
3.1S3C2440A最小系统
为确保S3C2440A的基本运行需求,对ARM主芯片的基本硬件设计,包括电源,时钟以及复位的设计,通过提供一套完整的通用系统外设,S3C2440A减少整体系统成本和无需配置额外的组件。
综合对芯片的功能描述,S3C2440A集成的以下片上功能:
●1.2V内核供电,1.8V/2.5V/3.3V储存器供电,3.3V外部I/O供电,具备16KB的指令缓存和16KB的数据缓存和MMU的微处理器
●外部存储控制器(SDRAM控制和片选逻辑)
●LCD控制器(最大支持4K色STN和256K色TFT)提供1通道LCD专用DMA
●4通道DMA并有外部请求引脚
●3通道UART(IrDA1.0,64字节发送FIFO和64字节接收FIFO)
●2通道SPI
●1通道IIC总线接口(支持多主机)
●1通道IIS总线音频编码器接口
●AC’97编解码器接口
●兼容SD主接口协议1.0版和MMC卡协议2.11兼容版
●2通道USB主机/1通道USB设备(1.1版)
●4通道PWM定时器和1通道内部定时器/看门狗定时器
●8通道10位ADC和触摸屏接口
●具有日历功能的RTC
●摄像头接口(最大支持4096×4096像素输入;2048×2048像素输入支持缩放)
●130个通用I/O口和24通道外部中断源
●具有普通,慢速,空闲和掉电模式
●具有PLL片上时钟发生器
3.2显示系统硬件电路
3.2.1S3C2440A内置LCD控制器
S3C2440A的内置LCD控制器支持单色、每象素2位(4级灰度)、每象素4位(16级灰度)的黑白屏,也支持每象素8位(256色)和每象素12为(4096色)的彩色LCD,并且也支持每象素16位和每象素24位的真彩显示。
LCD控制器可以通过编程选择支持不同的LCD屏的要求,例如行和列象素,数据总线宽度,就口时序和刷新频率。
LCD控制器的主要作用是将定位于系统存储器的显示缓冲区的LCD图像数据传送到外部LCD驱动器。
S3C2440ALCD控制器的特性:
∙STNLCD屏支持3种扫描方式:
4bit单扫描、4位双扫描和8位单扫描的显示类型。
∙支持单色、4级灰度和16级灰度屏。
∙支持256色和4096色彩色STN屏。
∙支持分辩率为640*480、320*240、160*160以及其它规格的多种LCD。
TFTLCD屏
∙支持单色(1bpp)、4级灰度(2bpp)、256色(8bpp)调色彩色TFT显示屏(调色彩色TFT显示屏)。
∙支持64K(16bpp)和16M(24bpp)色非调色板显示模式(真彩TFT显示屏)。
∙支持分辩率为640*480,320*240及其它多种规格的LCD
S3C2440ALCD的控制线
∙VFRAME/VSYNC/STV:
LCD控制器和LCD驱动器之间的帧同步信号。
他通知LCD屏新的一帧显示,LCD控制器在一个完整帧的显示后发出VFRAME信号。
∙VLINE/HSYNC/CPV:
LCD控制器和LCD驱动器之间的同步脉冲信号,LCD驱动器通过他来将水平移位寄存器中的内容显示到LCD屏上。
LCD控制器在一整行数据全部传输到LCD驱动去后,插入一个VLINE信号。
∙VCLK/LCD_HCLK:
此信号为LCD控制器和LCD驱动器之间的象素时钟信号,LCD控制器在VCLK的上升沿发送数据,LCD驱动器在VCLK的下降沿采样数据。
∙VM:
LCD驱动器所使用的交流信号,LCD驱动器使用VM信号改变用于打开或关闭象素的行和列电压的极性,从而控制象素点的显示或熄灭。
VM信号可以与每个帧同步,也可以与可变数量的VLINE信号同步。
∙VD[23:
0]:
LCD象素数据输出端口,也就是我们所说的RGB信号线。
S3C2440A内部的LCD控制器的逻辑示意图
∙
LCD控制电路
∙
3.2.2时序和数据匹配电路
由于S3C2440A的LCD控制器与LCD屏LQ035Q7DH01在数据格式及显示时序上无法匹配,需要选用一种时序控制IC或者用CPLD(也就是通常所说的LCD伴侣芯片)来对不同数据格式的数据接口进行映射。
但CPLD面积较大、成本较高,因而通常只在需要对电路进行灵活配置的情况下才使用。
本文时序控制IC选用夏普公司的LZ9FC22。
该芯片专用于对TFT型QVGA屏幕(屏幕分辨率320×240)的LCD进行时序控制。
这是一个18bit(R6G6B6)的控制器,由于本文采用的是RGB56516位工作模式,所以将其输入引脚R0和B0接地。
时序和数据匹配电路如图所示:
3.2.3多路电压产生电路
3.2.4显示驱动和LQ035Q7DH01的接口电路
显示驱动和LQ035Q7DH01的接口电路如图所示:
3.2.5显示系统整体结构框图
3.3显示系统软件编写
文中根据需要为S3C2440A的LCD控制器定义了一个专用结构体s3c2440fb_mach_info:
structs3c2440fb_mach_info{
u_longpixclock;/*像素时钟频率*/
u_charbpp;/*每像素需要的bit数*/
u_shortxres;/*显示器行分辨率*/
u_shortyres;/*显示器列分辨率*/
u_charhsync_len;/*行同步信号的长度*/
u_charvsync_len;/*帧同步信号的长度*/
u_charleft_margin;/*从本行图象数据输出结束到下一行的行同步信号开始之间的像素时钟数*/
u_charright_margin;/*从行同步信号结束到该行的图象数据开始输出之间的像素时钟数*/
u_charupper_margin;/*从本帧图象数据输出结束到下一帧的帧同步信号开始之间的无效行数*/
u_charlower_margin;/*从帧同步信号结束到该帧图象数据开始输出之间的无效行数*/
u_charsync;
structs3c2440fb_lcd_regreg;/*S3C2440A
LCD控制寄存器结构体*/
};
Main()
{
intfbfd=O;
structfb_var_screeninfovinfo;
structfb_fix_screeninfofinfo;
unsignedchar*fbp;
fbfd=open("/dev/fb0",O_RDWR);
/*打开设备文件*/
if(!
fbfd){ /*失败返回*/
printf("Error:
cannotopenframebufferdevice.\n");
exit
(1);
}
Printf("Theframebufferdevicewasopenedsuccessfully.\n");
ioctl(fbfd,FBIOGET_FSCREENINFO,&finfo);
/*获取显示设备特性*/
ioctl(fbfd,FBIOGET_VSCREENINFO,&vinfo);
screensize=vinfo.xres*vinfo.yres*vinfo.bits_per_pixel/8/*计算屏幕缓冲区的大小*/
fbp=(unsignedchar*)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].北京:
北京航空航天大学出版社,2005.
[6]孙天泽,袁文菊.嵌入式设计及Linux驱动开发指南——基于ARM9处理器[M].第2版.北京:
电子工业出版社,2007.
[7]田泽.ARM9嵌入式Linux开发实验与实践[M].北京:
北京航空航天大学出版社,2006.
[8]于明.ARM9嵌入式系统设计与开发教程[M].北京:
电子工业出版社,2006.
[9]赵星寒 .ARM开发工具ADS原理与应用[M].北京:
北京航空航天大学出版社,2006.
[10]季昱,林俊超,宋飞编.ARM嵌入式应用系统开发典型实例[M].北京:
中国电力出版社,2005.