嵌入式系统触摸屏的应用越来越广泛,诸如以PDA为标志的数码产品和工业领域中使用的大量仪器仪表都逐渐选用LCD触摸屏作为系统的输入设备。触摸屏分为电阻、电容、表面声波、红外线扫描和矢量压力传感等,其中用的最普遍的是四线或五线电阻触摸屏。四线电阻触摸屏是由两个透明电阻膜构成的,在它的水平和垂直电阻网上施加电压,就可通过A/D转换面板在触摸点测量出电压,从而对应出坐标值。本文除简单介绍ADS7843工作原理之外,主要讨论触摸屏控制器的两种控制方式,并给出了具体的应用连接图。
1 触摸屏控制器工作原理
ADS7843内部是一个由多个模拟开关组成的供电-测量电路网络和12位的ADC组成,如图1所示。其最高转换频率达125 kHz。X+、Y+、X-、Y-是转换器模拟输入端,实际上是一个四通道多路器。触摸屏工作时,上下导体层相当于电阻网络。当在X方向的电极对上施加一确定的电压,而Y方向电极对上不加电压时,在X平行电压场中,触点处的电压值可以在Y+(或Y-)电极上反映出来,通过测量Y+电极对地的电压大小,便可得知触点的X坐标值。同理,当在Y电极对上加电压,而X电极对上不加电压时,通过测量X+电极的电压,便可得知触点的y坐标。
2 硬件接口电路
触摸屏输入系统由微控制器、触摸屏、触摸屏控制器三部分组成。图2是一个实际的触摸屏输入系统。在该系统中,微控制器采用Philips公司ARM7内核的LPC2387;触摸屏采用Sharp公司的四线式电阻触摸屏;触摸屏控制器采用BB公司的ADS7843。LPC2387通过SSP接口和外部中断EINT0与ADS7843相连。当笔中断信号为低时,表示有触摸发生。SSP为同步串行接口控制器,可控制SPI、4线SSI或半导体Microwire总线操作,通过配置寄存器将其设定为Mi-crowire通信方式,由LPC2387启动两次Microwire传送来完成坐标采集。第1次输入采集X坐标的控制字输出未经变换的X坐标。第2次输入Y坐标控制字输出未经变换Y坐标。当然也可以不用SSP功能,采用通用I/O端口模拟ADS7843转换时序达到触摸控制的效果。ADS7843转换时序及控制字格式如图3所示。
3 系统软件设计
触摸屏软件设计包括I/O口初始化程序、笔中断服务程序和ADS7843测量子程序三部分。当有触摸时,ADS7843向LPC2387发出中断请求并响应,程序跳至启动通信代码处,读取ADS7843的转换结果,从而得到触摸点的坐标。在ADS7843测量子程序中,完成一次微处理器和ADS7843之间的通信。
触摸屏的软件设计可采用两种方式:一种是利用SSP接口的Microwire方式直接控制;另一种是I/O端口模拟ADS7843转换时序来实现坐标采集。
3.1 Microwire方式
Microwire格式采用半双工模式。每次串行发送8位控制字开始,在发送控制字过程中,SSP不接收数据,待发送完毕后,片外从器件ADS7843对其译码,并且最后一位发送结束的一个串行时钟后,才返回主机所需的数据。它的这种传输方式恰好与ADS7843转换时序吻合,只要对SSP寄存器配置准确便可方便地控制触摸屏完成坐标的采集。
部分程序代码如下:
ADS7843_Get()为测量取值子程序,通过控制SSPODR寄存器实现控制字的发送和逻辑坐标值的接收。
3.2 I/O口模拟时序方式
鉴于许多微控制器没有SSP接口,可以采取I/O模拟ADS7843转换时序来实现坐标采集。此方式较为繁琐,与SSP接口的触摸屏控制方式比较最为显著的缺点是:响应速度较慢,灵敏度较低,微处理器与触摸屏控制器间的通信时间较长,降低了系统的效率。然而此种方式却具有一般性,任何处理器都可采以用此方式来实现触摸控制。
I/O模拟时序坐标采集程序如下:
4 坐标转换
从触摸屏控制器获得的X与Y值仅是对当前触摸点电压值的A/D转换值,它不具有实用价值。这个值的大小不但与触摸屏的分辨率有关,而且也与触摸屏和LCD的贴合状况有关。LCD与触摸屏的分辨率和坐标一般来说是不一样的,因此,如果想得到体现LCD坐标的触摸屏位置,还需要在程序中进行转换。转换公式如下:
其中,Tch_Xmax、Tch_Xmin、Tch_Yma x和Tch_Ym-in是触摸屏返回电压值X、Y轴的范围;LCDWidth、LCD-Height是液晶屏的宽度与高度。
结 语
本设计实现了触摸屏的基本功能,其中包括硬件电路的设计与调试,SSP或I/O模拟时序控制触摸屏软件实现。经过调试后,触摸屏工作正常,能够实现系统所要求的功能。使用Philips公司的LPC2387微处理器来设计的四线电阻式触摸屏产品在实际应用中得到较好的效果,屏幕显示无闪烁,画面切换速度快,触摸屏响应迅速。