例说FPGA连载58:LCD触摸屏驱动设计之功能概述
特权同学,版权所有
配套例程和更多资料下载链接:
http://pan.baidu.com/s/1c0nf6Qc
本实例的控制对象是触摸屏,这是一种非常普及的人机交互介质。甚至于说,今天的电子产品几乎离不开它了。我们每天接触的手机、PAD、电纸书,公共信息的查询设备、工控设备、多媒体教学等等。百度一下,前人已经归纳总结了触摸屏的三个主要特性,我们不妨科普一下。
触摸屏的第一个特性——透明,它直接影响到触摸屏的视觉效果。透明有透明的程度问题,红外线技术触摸屏和表面声波触摸屏只隔了一层纯玻璃,透明可算佼佼者,其它触摸屏这点就要好好推敲一番,“透明”,在触摸屏行业里,只是个非常泛泛的概念,很多触摸屏是多层的复合薄膜,仅用透明一点来概括它的视觉效果是不够的,它应该至少包括四个特性:透明度、色彩失真度、反光性和清晰度,还能再分,比如反光程度包括镜面反光程度和衍射反光程度,只不过触摸屏表面衍射反光还没到达CD 盘的程度,对用户而言,这四个度量已经基本够了。
由于透光性与波长曲线图的存在,通过触摸屏看到的图象不可避免的与原图象产生了色彩失真,静态的图象感觉还只是色彩的失真,动态的多媒体图象感觉就不是很舒服了,色彩失真度也就是图中的最大色彩失真度自然是越小越好。平常所说的透明度也只能是图中的平均透明度,当然是越高越好。
反光性,主要是指由于镜面反射造成图像上重叠身后的光影,如人影、窗户、灯光等。反光是触摸屏带来的负面效果,越小越好,它影响用户的浏览速度,严重时甚至无法辨认图像字符,反光性强的触摸屏使用环境受到限制,现场的灯光布置也被迫需要调整。大多数存在反光问题的触摸屏都提供另外一种经过表面处理的型号:磨砂面触摸屏,也叫防眩型,价格略高一些,防眩型反光性明显下降,适用于采光非常充足的大厅或展览场所,不过,防眩型的透光性和清晰度也随之有较大幅度的下降。清晰度,有些触摸屏加装之后,字迹模糊,图像细节模糊,整个屏幕显得模模糊糊,看不太清楚,这就是清晰度太差。清晰度的问题主要是多层薄膜结构的触摸屏,由于薄膜层之间光反复反射折射而造成的,此外防眩型触摸屏由于表面磨砂也造成清晰度下降。清晰度不好,眼睛容易疲劳,对眼睛也有一定伤害,选购触摸屏时要注意判别。
触摸屏的第二个特性——触摸屏是绝对坐标系统,要选哪就直接点那,与鼠标这类相对定位系统的本质区别是一次到位的直观性。绝对坐标系的特点是每一次定位坐标与上一次定位坐标没有关系,触摸屏在物理上是一套独立的坐标定位系统,每次触摸的数据通过校准数据转为屏幕上的坐标,这样,就要求触摸屏这套坐标不管在什么情况下,同一点的输出数据是稳定的,如果不稳定,那么这触摸屏就不能保证绝对坐标定位,点不准,这就是触摸屏最怕的问题:漂移。技术原理上凡是不能保证同一点触摸每一次采样数据相同的触摸屏都免不了漂移这个问题,目前有漂移现象的只有电容触摸屏。
触摸屏的第三个特性——检测触摸并定位,各种触摸屏技术都是依靠各自的传感器来工作的,甚至有的触摸屏本身就是一套传感器。各自的定位原理和各自所用的传感器决定了触摸屏的反应速度、可靠性、稳定性和寿命。
本实例通过SF-L70子板上连接LCD触摸屏的专用AD芯片达到触摸屏的采集控制。如图9.1所示,我们创建3个PIO组件,分别作为外部触摸屏芯片的中断输入信号IRQ(PIO_IIC_IRQ)、IIC总线时钟输出信号(PIO_IIC_SCL)和IIC数据双向信号(PIO_IIC_SDA)。在NIOS II的软件层,我们通过模拟IIC时序进行通信。
图9.1工程实例7系统框图
触摸屏芯片实际上就是一颗2路输入的ADC芯片,我们使用的是电阻式触摸屏,当用户手按触摸屏时,相应的在X轴和Y轴方向上会产生一个阻值,X轴和Y轴各有两条信号线连接到触摸屏专用AD芯片上。如图9.2所示,这是Y轴坐标测量的等效电路示意图,在Y轴的正负极之间加参考电压,一旦Y轴方向的某个位置被触按,则在这个位置和Y轴的正负极之间的电阻会通过电压的形式反馈的ADC的输入端,这样我们便采集到一个12位的AD量化值。X轴的测量与此类似,基本上,电阻式触摸屏通过ADC芯片采集到数据和实际的坐标值成正比,而且是线性关系。本实例暂时不对触摸屏采集数据和实际坐标的映射进行处理,而只是简单的采集数据,从数据的趋势上大家也可以有一个直观的认识。
图9.2 触摸屏控制器工作原理示意图
触摸屏专用芯片AW2083的内部功能框图如图9.3所示。和FPGA接口的是图示的中断信号PENIRQN、IIC的数据信号SDA和时钟信号SCL、CAD0则是IIC器件地址末位,我们直接连GND或VCC都可以。而X+/X-连接触摸屏的X轴方向两端,Y+/Y-连接触摸屏的Y轴方向两端。
图9.3 触摸屏控制器内部功能框图
软件程序的流程图如图9.4所示。外设初始化完成后,主循环中等待触摸屏中断信号触发。若检测到触摸屏被按下,则进行触摸屏数据采集和滤波处理,通过JTAG UART将此坐标信息打印出来。
图9.4 工程实例7软件流程图