基于ARM处理器的TSC2046触摸屏控制器的应用
扫描二维码
随时随地手机看文章
摘要:触摸屏技术经过十几年的发展已经成为一种方便、经济的人机界面输入手段。TSC2046是四线电阻式触摸屏控制器,其核心是一个具有采样和保持功能的12位逐次逼近式A/D转换器。以飞利浦公司的ARM芯片为基础,通过TSC2046触摸屏控制器和四线电阻式触摸屏构成硬件基础,在此基础上,开发了触摸屏面板控制程序。该触摸屏已应用于实际项目中,触摸效果良好。
关键词:TSC2046;触模屏;LPC2132芯片;控制器
0 引言
随着信息技术的不断发展,嵌入式系统正在越来越广泛地应用到消费类电子、通信设备等便携式电子类产品中。触摸屏由于其轻便、占用空间少、灵活等优点,已经逐渐取代键盘,成为嵌入式系统中最简单、方便、自然的一种人机交互方式。触摸屏分为电阻、电容、表面声波、红外线扫描等类型,其中使用最多的是四线或五线电阻触摸屏。四线电阻触摸屏是由两个透明电阻膜构成的,在它的水平和垂直电阻网上施加电压,就可通过转换面板在触摸点测量出电压而对应出坐标值。
TSC2046是典型的逐次逼近寄存器型A/D变换器,其结构以电容再分布为基础,包含了取样/保持功能,支持低电压的I/O接口。本文介绍了利用飞利浦公司的LPC2100系列ARM芯片LPC2132、TSC2046和液晶屏实现人机互动。
1 触摸屏的工作原理
本文选用的触摸屏为四线电阻触摸屏,由一个4层的复合薄膜,附着在显示器表面与显示器配合使用。每一导电层为触摸屏的一个工作面,每个工作面的两端各涂一条银胶,称为该工作面的一对电极,分别称为X电极对和Y电极对。触摸屏工作时,上下导体层相当于电阻网络。当某一层电极加上电压时,会在该网络上形成电压梯度。如有外力使得上下两层在某一点接触,则在电极未加电压的另一层可以测得接触点处的电压,从而知道接触点处的坐标。比如,在顶层的电极(X+,X-)上加上电压,则在顶层导体层上形成电压梯度,当有外力使得上下两层在某一点接触,在底层就可以测得接触点处的电压,再根据该电压与电极(X+)之间的距离关系,知道该处的X坐标。然后,将电压切换到底层电极(Y+,Y-)上,并在顶层测量接触点处的电压,便可得知触摸者的意图。测量触点坐标电原理图如图1所示。
2 TSC2046的工作方式和控制字
TSC2046的输入方式分差分输入和单端输入两种,可设置为8位或12位工作模式。本文以12位差分输入模式进行工作。TSC2046的控制字如表1所示。
表1中S为数据传输起止标志位,该位值恒为“1”。A2~A0用于对TSC2046输入通道的选择,确定触摸屏体输出模拟电压从哪个引脚输入。MODE用于确定A/D转换的精度,为0时选择12位,为1时选择8位。确定输入模式,为0时选择差分模式,为1时选择单端模式。差分模式是一种比率度量转换方式,转换的结果总是触摸屏上分布的电阻值百分比,差分模式能有效消除内部开关电阻带来的转换误差。相应的差分输入模式下的输入配置如表2所示。
[!--empirenews.page--]
3 典型应用
LPC2132是飞利浦公司的一款基于支持实时仿真的16/32位ARM7TDMI-S CPU的微控制器芯片,并带有16KB SRAM和64 kB嵌入的高速FLASH存储器,内置了宽范围的串行通信接口(范围从多个UART,SPI和SSP到两条I2C总线)、多个32位和16位定时器、1个改良的10位ADC、所有定时器上输出匹配的PWM特性、以及具有多达13个边沿或电平触发的外部中断管脚的32条高速GPIO线等硬件资源。
LPC2132的最小系统设计如图2所示。
[!--empirenews.page--]
LPC2132芯片操作电压为3.0~3.6V,本系统采用3.3V供电,便于供电电压统一。晶振采用常规直插晶振11.0592MHz。由于LPC2132芯片的高速度、低功耗、低工作电压导致其噪声容限低,对电源的纹波、瞬态响应性能、时钟源的稳定性、电源监控等诸多方面的要求较高。本系统的复位电路采用微处理器专用的电源监控芯片STM811,如图2所示。该芯片在初次上电和系统电压小于3 V时会输出复位信号,同时此芯片不需要任何外围电路,且带有手动复位功能。本系统外设只有一个就是TSC2046。LPC2132和触摸屏控制器连接如图3所示,SCK0引脚为SPI时钟,MOSI引脚为SPI主机输出从机输入,MISO引脚为SPI主机输入从机输出,这三根线为SPI总线。2046_CS为TSC2046的片选引脚,PENI RQ为笔中断信号,CZ6为触摸屏连接口。
4 程序设计
本文的驱动程序以上面所设计的硬件为基础。TSC2046的驱动程序通过标准SPI(Serial Peripheral Interface)协议和LPC2132通信。当触摸屏被按下(即有触摸事件发生)时,则TSC2046通过PENIRQ中断引脚向LPC2132发中断请求。LPC2132接到请求后,应延时一下再响应其请求,目的是为了消除抖动使得采样更准确。也可以尝试3次采样取最后一次结果为准,目的也是为了消除抖动。LPC2132驱动触摸屏工作的程序流程如图4所示。
[!--empirenews.page--]
采用中断方式处理来自TSC2046的PENIRQ中断引脚的中断申请,在主程序中要设置相应的中断源。在实际应用中,采用查询PENIRQ中断引脚电平的方式,比较节省系统资源。
根据TSC2046的Datasheet,TSC2046的控制字及数据传输格式见表1。选择控制字如下:0x94,即从触摸屏的“X+”引脚得到Y坐标的AD值;0xe4,从触摸屏的“Y+”引脚得到X坐标的AD值。
触摸屏的相关驱动程序如下:
5 结语
本文以ARM处理器的LPC2132芯片和TSC2046触摸屏控制器为硬件平台,设计了嵌入式系统触摸屏交互功能模块,此方法已经在实际项目中应用,触摸响应效果良好。