基于ARM处理器的LCD控制及触摸屏接口设计

发布者:VelvetDreamer最新更新时间:2011-08-10 关键字:ARM处理器  S3C44B0X  LCD  ADS7843  触摸屏 手机看文章 扫描二维码
随时随地手机看文章

    随着信息技术的不断发展,嵌入式系统正在越来越广泛的应用到航空航天、消费类电子、通信设备等领域。而在嵌入式系统中,LCD作为人机交互的主要设备之一,显示系统又是不可缺少的一部分。近年来,随着微处理器性能的不断提高,特别是ARM处理器系列的出现,嵌入式系统的功能也变得越来越强大。液晶显示器由于具有功耗低、外形尺寸小、价格低、驱动电压低等特点以及其优越的字符和图形的显示功能,已经成为嵌入式系统使用中的首选的输出设备。随着多媒体技术的发展,单色的LCD已不能满足人们在各种多媒体应用方面的更高要求,彩色LCD正越来越广泛地被应用到嵌入式系统中。触摸屏是人们获取信息的一种便利工具, 已广泛应用于工商、税务、银行等各种需要对公众提供信息服务的行业[1]。触摸屏作为一种特殊的计算机外设,是目前最简单、方便、自然的一种人机交互方式。它赋予了多媒体以崭新的面貌,是极富吸引力的全新多媒体交互设备[2]。

    S3C44B0X是三星公司生产的基于ARM7TDMI内核的RISC微处理器,主频可达66MHz[3]。它集成了包括LCD控制器在内的等外围器件。LM7M632是Sharp公司推出的分辨率为640×240的STN型彩色LCD显示屏,支持256色显示[4]。本文重点讨论了S3C44B0X与LM7M632及ADS7843的接口设计以及LCD和触摸屏的驱动过程。

1 S3C44B0X中内置LCD控制器介绍

    S3C44B0X中内置的LCD控制器可以支持4级灰度、16级灰度的黑白LCD和256级颜色的彩色LCD屏;支持3种LCD驱动器:4位双扫描,4位单扫描,8位单扫描显示模式。内置的LCD控制器的作用是将定位在系统存储器(SDRAM)中的显示缓冲区中的LCD图像数据传送到外部LCD驱动器,并产生必须的LCD控制信号[5]。图1为LCD控制器内部结构框图。其中,VCLK是LCD控制器和LCD驱动器之间的像素时钟信号;VLINE是LCD控制器和LCD 驱动器之间的行同步脉冲信号;VFRAME是LCD控制器和LCD驱动器之间的帧同步信号。VM是LCD驱动器的AC信号。VD[3∶0 ]和VD[ 7∶4 ] 是LCD像素点数据输出端口。

 
图1   LCD控制器内部结构图

2 LCD模块及硬件接口

    LM7M632是按照8位单扫描模式工作的。所谓8位单扫描方式,就是显示采用8位并行数据线进行“行”数据连续移位输出,直到整个帧的数据都被移出为止。LCD模块接口信号线的定义如表1所示,图2为LCD控制器与LCD的硬件接口的连接图。在该显示系统的硬件电路中,S3C44B0中的内置LCD控制器与LCD模块LM7M632的连接是关键。图3是LM7M632模块接口时序图。其中,YD是帧(写满整个屏的数据称为1个“帧”)同步信号,该信号启动LCD屏的新一帧的数据。两个YD脉冲之间的时间长度就称之为“帧周期”。根据LCD模块的特性,帧刷新周期为12ms到14ms,频率为70Hz~80Hz。每1帧中包含240个LP脉冲。LP为行(共240行)数据输入锁存信号,该信号启动LCD屏新的一行的数据。也就是行同步脉冲信号。每1行中包括640×3/8个XCK脉冲信号。XCK为行数据输入信号,也就是每一行中像素点数据传输的时钟信号;每组8位的数据在XCK的下降沿处被输入锁存。D0~D7是8位的显示数据输入信号。

表1:LCD模块(LM7M632)接口信号线定义

 

图3  LM7M632模块接口时序图

    在该显示系统中,其显示方式是以直接操作显示缓冲区(SDRAM)的内容进行,LCD控制器会通过DMA方式从显示缓冲区中获取数据,不需要CPU干预。在256色显示模式下,显示缓冲区中的一个字节数据代表LCD上的一个点的颜色信息,因此,所需要的缓冲区的大小为640 ×240 ×1 字节,其中每个字节的RGB数据格式为:由3位红色(Bit7~Bit5)、3位绿色(Bit4~Bit2)、2位蓝色 (Bit1~Bit0) 组成。

3 触摸屏原理及硬件接口

    触摸屏按其工作原理的不同可分为表面声波屏、电容屏、电阻屏和红外屏几种[6]。其中最常见的是电阻式触摸屏,其屏体部分是一块与显示器表面非常配合的多层复合薄膜。触摸屏工作时,上下导体层相当于电阻网络。当某一层电极加上电压时,会在该网络上形成电压梯度。如有外力使得上下两层在某一点接触,则在另一层未加电压的电极上可测得接触点处的电压,从而知道接触点处的坐标。

    ADS7843是TI公司生产的四线电阻触摸屏转换接口芯片。它是一款具有同步串行接口的12位取样模数转换器。在125kHz吞吐速率和2.7V电压下的功耗为750μW,而在关闭模式下的功耗仅为0.5μW。由于具有低功耗和高速等特性,所以被广泛应用。图4是S3C44B0同ADS7843的连接电路。X+、Y+、X- 、Y-是转换器模拟输入端,DCLK是外部时钟输入;CS 是片选端;DIN 是串行输入,其控制数据通过该引脚输入;DOUT是串行数据输出,用于输出转换后的触摸位置数据.最大数为二进制的4095; IN3、IN4是辅助输入;PENIRQ是PEN中断引脚。其中,S3C44B0选取PG口与ADS7843接口,共使用PG2 - PG7的6条口线。
 


图4  S3C44B0与ADS7843的接口电路[page]

4、彩色液晶显示及触摸屏软件设计

    4.1 LCD显示

    4.1.1 初始化LCD端口。

    由于LCD模块与S3C44B0相连,LCD是8位数据线,所以必须初始化S3C44B0X的C口与D口。其程序如下: rPDATC = rPDATC &~ (1 << 8) | (1 << 8);/ / LCD使能

    rPCONC = rPCONC &~ ( 0xff << 8) | ( 0xff <<8);/ / 配置VD[7∶4 ]

    rPCOND = 0xaaaa;/ /配置VD[3∶0 ],VCLK,VLINE,VM,VFRAME

    rPDATC=0xffff ;

    4.1.2 申请大小为640×240字节大小的显示缓冲区。

    显示缓冲区就是在系统存储器中划出一块区域,用来存放要显示的图像数据。将要显示的图像数据直接放入显示缓冲区就能直接在LCD显示屏上显示出所显示的图像。其程序如下:

    frameBuffer256= (unsigned char*)malloc(ARRAY_SIZE_COLOR);其中ARRAY_SIZE_COLOR=640×240

    4.1.3 初始化LCD控制寄存器

    在点亮LCD之前,还应该对LCD控制器相关的寄存器进行初始化[6],使LCD控制器的配置与外接LCD显示模块特性相匹配,包括设置LCD分辨率、扫描频率、显示模式、产生控制信号和控制时序等。

    4.1.4 LCD显示

    LCD初始化之后,由于在S3C44B0X中,CUP不支持文件管理,必须把要显示的图片包含到程序中。例如,如果要在LCD显示640×240大小的图片,在实际操作中,首先应使用转换工具(如:Image2Lcd)把图片转换成c格式的数组文件,即把每一个像素点的颜色转换成用一个字节表示,然后把整个文件保存成240×640的数组形式。然后把文件包含在项目工程中,用循环语句即可实现显示。如要显示汉字、字符和数字等, 其方法和原理与显示图像基本一样。

    4.2 触摸屏软件设计

    4.2.1触摸屏模式设置

    ADS7843的参考电压模式设置分为两种:单端模式和差分模式。在单端模式中,参考输入电压选取的是V cc 和GND ,由于内部的开关电阻压降影响转换结果带来误差,所以转换器内部的低阻开关对转换精度有一定影响;差分模式参考输入由未选中的输入通道Y + 、Y - 、 X + 、X - 提供参考电源和地,不管内部开关电阻如何变化,其转换结果总与触摸屏的电阻成比例,克服了内部开关电阻的影响,但当转换频率很高时则增加了功耗,需要考虑低功耗设计。

    4.2.2 PENIRQ作用

    由于触摸屏A/D采样时功耗增加,所以软件设计中,只有在用户按下触摸屏时,才需要进行A/D转换。为了降低功耗,充分利用该芯片的能力,配合软件设计,硬件电路设计成按下触摸屏时,通过PENIRQ 向MCU发出中断。同时软件配置ADS7843采用笔中断功能降低功耗,当按下触摸屏时,则PENIRQ引脚电位变低,MCU收到中断请求后可以发出启动转换命令,并查询BUSY引脚直到转换完成取出坐标。启动转换分两次进行,分别获得x和y方向的坐标。

    4.2.3 触摸屏程序设计流程

    充分权衡单端模式和差分模式的优缺点,本系统选择参考电压的输入模式为差分模式,控制程序使用的状态字[7]设置为:X通道0x90,Y通道0xD0。触摸屏程序流程如图5所示。程序中S3C44B0X的GPG7在下降沿触发的情况下检测PENIRQ是否为低电平,若为低电平则认为有按下触摸屏;否则认为没有按下触摸屏。利用I/O口模拟DIN,DOUT和DCLK上的3线串行传输时将读取的x或y轴坐标数值的控制字送入ADS7843,后再串行读出坐标值。坐标值送给S3C44B0X,CPU经过处理后在LCD上显示相应的信息并执行相应的参数指令,整个系统都是可以按照LCD上的提示,通过触摸屏来控制,从而完成人机交互的功能。

 
图5  触摸屏程序流程图

5 结束语

    在嵌入式系统中,LCD作为人机交互的主要设备之一,具有重要的作用。本文完成了S3C44B0X控制LCD及触摸屏的软硬件设计,实践证明该系统稳定可靠, 能够达到预期效果。本文为人机界面中的LCD的硬件设计与控制驱动提供了一种实用解决方案,本方案可应用于其它嵌入式系统中。

 

 

关键字:ARM处理器  S3C44B0X  LCD  ADS7843  触摸屏 引用地址:基于ARM处理器的LCD控制及触摸屏接口设计

上一篇:兼容RS-232的点对点无线接口设计
下一篇:各种通讯总线介绍

推荐阅读最新更新时间:2024-05-02 21:31

LCD1602芯片的使用——简单易懂
题目: 想在LCD1602上显示两行如下字样 ++++++++++++++++++++ + huaianxinxi + + wantin + ++++++++++++++++++++ 想完成上面的显示必须掌握LCD1602芯片的基本知识,将在程序下面附上LCD1602芯片的基本知识,供大家参考,我实现的比较简单,没有什么花哨的显示,大家首先要学会操作该硬件,其他的功能完全可以根据其功能说明进行逐项实现。 代码如下: /* 想在LCD1602上显示两行如下字样 ++++++++++++++++++++ + huaianxinxi + + wantin + +++++++++++++++
[单片机]
<font color='red'>LCD</font>1602芯片的使用——简单易懂
51单片机对LCD1602液晶显示的驱动控制设计
利用串行A/D转换器TLC549对输入信号电压源进行采集转换成数字信号给51单片机,经单片机进行数据处理后给1602液晶显示。 误差小于1%. #include #include #define uint unsigned int #define uchar unsigned char uchar LCD[6]; //电压数据转换成LCD1602液晶字符显示 uint Volt; sbit DO= P1^0; //时钟 sbit CS= P1^1; //片选 sbit CLK = P1^2; //数据输出 sbit RS = P2^0; //1602液晶数据/命令选择端 sbit RW = P2^1; //1602液晶读写端
[单片机]
51单片机对<font color='red'>LCD</font>1602液晶显示的驱动控制设计
STM32F429 如何使用LCD(2)
刚开始是在安富莱V6的开发板上焊接的调试了好久。需要注意的坑有一下: (1)该屏幕使用LCD驱动为ILI9806 ,使用的触摸芯片是ft6206。 第一步选择:LCD使用RGB8888 IM0-2 = 1 1 0 (电阻配置) 第二步:配置LTDC接口参照上一章,同时需要留出来SPI接口对LCD进行配置。 第三步:配置IIC接口的ft6206芯片。 引脚分配: CS:PB9 SDI :PB5 SCL :PB6 INT: H7 SDA:PB3 SCL :PB6(复用) /* GPIOs Configuration / / ±-----------------------±----------------------±------
[单片机]
STM32F429 如何使用<font color='red'>LCD</font>(2)
基于LPC2210的触摸屏触摸点数据采集系统设计
引言 嵌入式系统实际上是“嵌入式计算机系统”的简称,是相对于通用计算机系统而言的,根据应用的要求,将操作系统和功能软件集成于计算机硬件系统中,以应用为中心,计算机技术为基础,实现软件与硬件的一体化。其适用于对功能、可靠性、成本、体积和功耗等有严格要求的专用计算机系统。 触摸屏又称为“触控屏”、“触控面板”,是一种附加在显示器表面的透明介质。触摸屏作为一种新的输入设备,是目前最简单、方便、自然的一种人机交互方式。通过使用者的手指触摸,该介质实现对计算机的操作定位,大大简化了计算机的输入方式,实现零距离操作。而在触摸屏的使用中,对触摸点的精确定位至关重要,本文提出了一种触摸屏的坐标算法,该算法具有良好的可移植性和扩展性。 1
[单片机]
基于LPC2210的<font color='red'>触摸屏</font>触摸点数据采集系统设计
基于嵌入式Linux的LCD背光调节及驱动实现
  在手持式设备中,液晶显示屏的使用越来越广泛。 由于LCD自身是不能发光的,它需要一个强劲的光源来给它提供背光,以便清晰地显示信息。这样的光源是非常耗电的,通常液晶显示屏的功耗常常占到系统总功耗的60%以上。以群创的7寸屏为例,通常背光灯的功耗为2.5W,而LCD的功耗只有0.825W。由此可见,背光光源的功耗在整个电源中的比重是相当高的。如果系统在不用显示屏时,也全功率的运行,系统的电池能量将很快被耗光。所以,调节LCD的背光源,降低系统在不用显示屏时的能耗是十分必要的工作。   另外,由于手持式设备工作环境的变化,也需要根据外界光线强度的变化,对背光的亮度做出相应的调节,以适合人眼观看的舒适度。   基于上述2种原因
[电源管理]
基于嵌入式Linux的<font color='red'>LCD</font>背光调节及驱动实现
触摸屏技术发展简介
触摸屏的应用随着信息社会的发展越来越普遍,目前触摸屏产品在中国已开始形成了产业,本文专题介绍有关触摸屏的相关基础技术知识,供广大用户和业者参考。   随着多媒体信息查询的与日俱增,人们越来越多地谈到触摸屏,因为触摸屏作为一种最新的电脑输入设备,它是目前最简单、方便、自然的而且又适用于中国多媒体信息查询国情的输入设备,触摸屏具有坚固耐用、反应速度快、节省空间、易于交流等许多优点。利用这种技术,我们用户只要用手指轻轻地指碰计算机显示屏上的图符或文字就能实现对主机操作,从而使人机交互更为直截了当,这种技术极大方便了那些不懂电脑操作的用户。这种人机交互方式。它赋予了多媒体以崭新的面貌,是极富吸引力的全新多媒体交互设备。触摸屏在我国的应
[工业控制]
倍易创新LCD 型红外线遥控器开发板
ESK-IRRC-T01 是 LCD 型的红外线遥控器开发板。 开发板内置 Holtek 8-bit 单片机 HT67F2432,并具有 15-key 的按钮及一个 IR LED。适合用来开发具有 LCD 显示的遥控器,例如:冷气遥控器等。 ESK-IRRC-T01 需搭配 Holtek 红外线遥控开发平台使用,使用者可选择自定义开发,也可选择学码 / 查看波形模式,搭配 ESK-IRRC-R00 解码器一起使用,让开发过程变得更简单。
[嵌入式]
倍易创新<font color='red'>LCD</font> 型红外线遥控器开发板
ARM处理器的SWI异常中断响应过程
通过SWI异常中断指令,在用户模式下应用程序可以调用系统模式下的代码,在操作系统中表现为系统调用, 那这个过程又是如何实现的呢?带着疑问让我们来学习吧! 在SWI指令中包括一个24位的立即数(中断调用号),该立即数指示了用户要请求的特定的调用功能,所以在SWI的异常中断中要读取这个中断调用号,然后根据中断号,来调用相应的处理程序。这个过程可以分两个步骤: 1.SWI异常中断处理程序 由于是在底层操作所以这个异常中断处理程序得用汇编语言编写,描述如下: area top_swi code readonly export swi_headler swi_headler stmfd sp!, {r0-r12, lr}
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved