触摸屏具有坚固耐用、反应速度快、节省空间、易于交流等许多优点,相比键盘输入,触摸屏技术更简单、直观、快捷,且具有丰富多彩的表现能力。设计触摸屏时,最重要的问题是准确定位触摸点的坐标位置。
1 硬件设计
1.1 硬件选择
LPC2478芯片内部集成了LCD接口,它的工作范围为-40~+80℃,其宽温的特点特别适合工业领域。ADS7843芯片是一款专为触摸采样设计的芯片,12位可编程精度。外部参考电压范围从1 V~Vcc均可,Vcc最高电压为5 V,高速低功耗使得ADS7843非常适用于电阻触摸屏的手持设备。
1.2 硬件电路
笔者设计了ADS7843的硬件接口电路(如图1所示)。该电路中采取了利用LPC2478的GPIO管脚模拟SPI时序的方式,将DCLK,CS,DIN,BUS-Y,DOUT接到LPC2478的5个GPIO引脚上。将ADS7843的引脚接到LPC2478的中断1上的方式。采用的四线电阻触摸屏,分别接到ADS7843的X+,Y+,X-,Y-引脚上。
1.3 采集方式
ADS7843有2种参考电压模式:单端模式和差分模式。在单端模式中,参考输入电压选取的是Vcc和GND。由于内部的开关电阻压降影响转换结果带来误差,所以转换器内部的低阻开关对转换精度有一定影响。差分模式参考输入由未选中的输入通道Y+,Y-,X+,X-提供参考电源和地。不管内部开关电阻如何变化,其转换结果总与触摸屏的电阻成比例,克服了内部开关电阻的影响,但当转换频率很高时则增加了功耗,需要考虑低功耗设计。笔者基于采样精度的原因在程序中采用了差分方式。
ADS7843的引脚是一个PIN中断引脚,在触摸显示屏时可产生一个低电平,触发LPC2478的中断,采用下降沿触发的方式。一次点击触摸屏的过程捕获图2的电平变化过程。对于采用中断方式采集电平变化不是很适合,同时无法捕获触摸屏上的滑动过程,所以笔者使用了循环采集方式。
循环采集方式:主要是通过LPC2478定时采集ADS7843的方式,在笔者的程序中定时器的时间间隔设置为50 ms。该方式由于加大了CPU的负荷,所以不太适合速度较慢的MCS51单片机,但比较适合LPC2478的处理器。每次采集的数据要与上次数据进行对比,以判断是否为新的数据。
研究中主要利用LPC2478与ADS7843进行显示和外部输入,无其他大量计算,也不对设备进行实时控制。所以比较中断方式与循环方式的优缺点,主要为了对一些屏幕上滑动动作可以较好进行响应,最后采用了循环采集方式。
1.4 ADS7843采集流程
采用12位差分模式的采集方式,程序中的控制字分别为0xg0(x坐标)和0xD0(y坐标)。根据ADS7843的时序图,笔者采集程序的工作流程:经过8个时钟周期发送完毕控制字后,在DCLK的下降沿连续读取12次,从而读取触摸屏上的AD采样数值。由于笔者采用的循环采集方式,采集进来的数据不一定是经过人对屏的触摸产生的数据。在笔者使用系统中,LPC2478液晶屏采用的是夏普LQ043T3DX02 LCD屏,采集到数据如果x轴数据为4 095(y轴数据采集到数据多数为O,但有的时间可能不为0)。说明采集到数据时并没有人触摸屏幕,该数据可以直接丢弃。
在实际中不仅仅关心ADS7843对当前触摸点电压值A/D转换值,更关心触摸点与LCD坐标的关系。可通过下列转换公式进行转换:
式中:x,y为LCD坐标中的坐标;xAD,yAD为ADS7843采集到AD值;Tchscr_XMax,Tchscr_XMin,Tchscr_YMax,TchScr_YMin为触摸屏返回x,y坐标的范围。
2 结语
本文介绍的利用芯片LPC2478与ADS7843设计四线电阻触摸屏的实际方案实现了具体功能。实际应用表明,采用LPC2478设计的触摸屏具有较强的可靠性以及环境适应性。