大运天成赖搏击

进步最重要

导航

详细介绍四线电阻触摸屏的工作原理[zz]

转载地址:http://www.dzsc.com/data/html/2010-11-8/86953.html

摘要:简要介绍触摸屏的结构及工作原理,并以Burr-Brown公司的触摸屏控制芯片ADS7843为例,介绍触摸屏应用的典型电路和操作。由于ADS7843内置12位A/D,理论上触摸屏的输入坐标识别精度为有效长宽的1/4096。

  1 触摸屏的基本原理

  典型触摸屏的工作部分一般由三部分组成,如图1所示:

  两层透明的阻性导体层、两层导体之间的隔离层、电极。阻性导体层选用阻性材料,如铟锡氧化物(ITO)涂在衬底上构成,上层衬底用塑料,下层衬底用玻璃。隔离层为粘性绝缘液体材料,如聚脂薄膜。电极选用导电性能极好的材料(如银粉墨)构成,其导电性能大约为ITO的1000倍。

  触摸屏工作时,上下导体层相当于电阻网络,如图2所示。

  当某一层电极加上电压时,会在该网络上形成电压梯度。如有外力使得上下两层在某一点接触,则在电极未加电压的另一层可以测得接触点处 的电压,从而知道接触点处的坐标。比如,在顶层的电极(X+,X-)上加上电压,则在顶层导体层上形成电压梯度,当有外力使得上下两层在某一点接触,在底 层就可以测得接触点处的电压,再根据该电压与电极(X+)之间的距离关系,知道该处的X坐标。然后,将电压切换到底层电极(Y+,Y-)上,并在顶层测量 接触点处的电压,从而知道Y坐标。

  2 触摸屏的控制实现

  现在很多PDA应用中,将触摸屏作为一个输入设备,对触摸屏的控制也有专门的芯片。很显然,触摸屏的控制芯片要完成两件事情:其一,是完成电极电压的切换;其二,是采集接触点处的电压值(即A/D)。本文以BB(Burr-Brown)公司生产的芯片ADS7843为例,介绍触摸屏控制的实现。

  2.1 ADS7843的基本特性与典型应用

  ADS7843是一个内置12位模数转换、低导通电阻模拟开关的串行接口芯片。供电电压2.7~5 V,参考电压VREF为1 V~+VCC,转换电压的输入范围为0~ VREF,最高转换速率为125 kHz。ADS7843的引脚配置如图3所示。

  表1为引脚功能说明,图4为典型应用。


  2.2 ADS7843的内部结构及参考电压模式选择

  ADS7843之所以能实现对触摸屏的控制,是因为其内部结构很容易实现电极电压的切换,并能进行快速A/D转换。

  图5所示为其内部结构,A2~A0和SER/为控制寄存器中的控制位,用来进行开关切换和参考电压的选择。

  ADS7843支持两种参考电压输入模式:一种是参考电压固定为VREF,另一种采取差动模式,参考电压来自驱动电极。这两种模式分别如图6(a)、(b)所示。

  采用图6(b)的差动模式可以消除开关导通压降带来的影响。表2和表3为两种参考电压输入模式所对应的内部开关状况。

  2.3 ADS7843的控制字及数据传输格式

  ADS7843的控制字如表4所列,其中S为数据传输起始标志位,该位必为"1"。A2~A0进行信道选择(见表2和3)。MODE用来选择 A/D转换的精度,"1"选择8位,"0"选择12位。SER/选择参考电压的输入模式(见表2和3)。PD1、PD0选择省电模式:"00"省电模式允 许,在两次A/D转换之间掉电,且中断允许;"01"同"00",只是不允许中断;"10"保留;"11"禁止省电模式。

  为了完成一次电极电压切换和A/D转换,需要先通过串口往ADS7843发送控制字,转换完成后再通过串口读出电压转换值。标准的一次转换需要24个时钟周期,如图7所示。

  由于串口支持双向同时进行传送,并且在一次读数与下一次发控制字之间可以重叠,所以转换速率可以提高到每次16个时钟周期,如图8所示。

  如果条件允许,CPU可以产生15个CLK的话(比如FPGAs和ASICs),转换速率还可以提高到每次15个时钟周期,如图9所示。

  2.4 A/D转换时序的程序设计

  ADS7843的典型应用如图4所示。假设μP接口与51单片机的P1.3~P1.7相连,现以一次转换需24个时钟周期为例,介绍A/D转换时序的程序设计。

  ; A/D 接口控制线

  DCLKBITP1.3

  CSBITP1.4

  DINBITP1.5

  BUSYBITP1.6

  DOUTBITP1.7

  ; A/D 信道选择命令字和工作寄存器

  CHXEQU094H;信道X+的选择控制字

  CHYEQU0D4H;信道Y+的选择控制字

  CH3EQU0A4H

  CH4EQU0E4H

  AD_CHEQU35H;信道选择寄存器

  AD_DATAHEQU36H;存放12 bit A/D值

  AD_DATALEQU37H

  ; 存放信道CHX+的A/D值

  CHX_AdHEQU38H

  CHX_AdLEQU39H

  ; 存放信道CHY+的A/D值

  CHY_AdHEQU3AH

  CHY_AdLEQU3BH

  ;===============================

  ; 采集信道CHX+的程序段(CHXAD)

  CHXAD:

  MOVAD_CH,#CHX

  LCALLAD_RUN

  MOVCHX_AdH,AD_DATAH

  MOVCHX_AdL,AD_DATAL

  RET

  ; 采集信道CHY+的程序段(CHYAD)

  CHYAD:

  MOVAD_CH,#CHY

  LCALLAD_RUN

  MOVCHY_AdH,AD_DATAH

  MOVCHY_AdL,AD_DATAL

  RET

  ;=====================================

  ; A/D转换子程序(AD_RUN)

  ; 输入: AD_CH-模式和信道选择命令字

  ; 输出: AD_RESULTH,L ;12 bit的A/D转换值

  ; 使用: R2 ;辅助工作寄存器

  AD_RUN:

  CLRCS; 芯片允许

  CLRDCLK

  MOVR2,#8;先写8 bit命令字

  MOVA,AD_CH

  AD_LOOP:

  MOVC, ACC.7

  MOVDIN,C;时钟上升沿锁存DIN

  SETBDCLK;开始发送命令字

  CLRDCLK;时钟脉冲,一共24个

  RL A

  DJNZR2,AD_LOOP

  NOP

  NOP

  NOP

  NOP

  ADW0:

  JNBBUSY,AD_WAIT;等待转换完成

  SJMPADW1

  AD_WAIT:

  LCALLWATCHDOG

  NOP

  SJMPADW0

  CLRDIN

  ADW1:

  MOVR2,#12;开始读取12bit结果

  SETBDCLK

  CLRDCLK

  AD_READ:

  SETBDCLK

  CLRDCLK;用时钟的下降沿读取

  MOVA,AD_DATAL

  MOVC,DOUT

  RLCA

  MOVAD_DATAL,A

  MOVA,AD_DATAH

  RLCA

  MOVAD_DATAH,A

  DJNZR2,AD_READ

  MOVR2,#4;最后是没用的4个时钟

  IGNORE:

  SETBDCLK

  CLRDCLK

  DJNZR2,IGNORE

  SETBCS;禁止芯片

  ANLAD_DATAH,#0FH;屏蔽高4 bit

  RET

  2.5 A/D转换结果的资料格式

  ADS7843转换结果为二进制格式。需要说明的是,在进行公式计算时,参考电压在两种输入模式中是不一样的。而且,如果选取8位的转换精度,1LSB=VREF/256,一次转换完成时间可以提前4个时钟周期,此时串口时钟速率也可以提高一倍。

  结束语

  在许多嵌入式系统中,CPU提供专门的模块来支持液晶显示和触摸屏的输入,使得接口非常简单。比如,MOTOROLAMC68VZ328(称为DragON Ball)就提供专门的引脚来支持8位和4位的液晶显示,对触摸屏的支持通过SPI2借助ADS7843也很容易完成。

posted on 2012-07-13 18:41  linucos  阅读(1307)  评论(0编辑  收藏  举报