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

随着信息技术的不断发展,嵌入式系统正在越来越广泛的应用到航空航天、消费类电子、通信设备等领域。而在嵌入式系统中,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
yd:扫描开始
8
vdd:logic供电(3.3v)
2
m:交变信号
9
vcon:对比调节电压
3
lp:输入锁存
10
vss:地
4
vss:地
11~14
d0~d3:数据线低四位
5
xck:时钟
15
vss:地
6
vss:地
16~19
d4~d7:数据线高四位
7
disp:显示开关
20
vss:地
表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、彩色液晶显示及触摸屏软件设计
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 结束语
在嵌入式系统中,lcd作为人机交互的主要设备之一,具有重要的作用。本文完成了s3c44b0x控制lcd及触摸屏的软硬件设计,实践证明该系统稳定可靠, 能够达到预期效果。本文为人机界面中的lcd的硬件设计与控制驱动提供了一种实用解决方案,本方案可应用于其它嵌入式系统中。

电池化学成分如何影响电池充电 IC 的选择
聊聊5G到底是个啥,是不是鸡肉味嘎嘣脆?
凌华科技推多功能数据采集卡,适用于混合信号测试等相关应用
车辆的行驶数据究竟属于谁?车联网服务商还是其他角色?
基于FAN7527B的LED驱动电源设计
基于ARM处理器的LCD控制及触摸屏接口设计
汽车零部件行业追溯系统的应用
气动调节阀型号怎么选择
传统寄存柜VS智能寄存柜,你Pick谁?
顺丰理赔服务不断升级,用户利益将获得充分保障
1+1&gt;2:这两个工具,治好验证开发者的精神内耗
摩托罗拉新手机重启了RAZR系列,采用柔性屏设计的上下折叠
使用事件相机来进行隐私保护的视觉定位新方式
自动驾驶汽车四种最具突破性的技术浅析
小米6怎么样?iphone6和小米6几乎同价,安卓与iOS抉择
因为这些黑科技,才是我们购买iPhone8的理由!
你那么美!OPPOR9s红色新年特别版粉墨登场
LED灯驱动器电路原理图
Vishay Vitramon隔直电容器
意法爱立信移动平台多核处理技术