模切红宝书系列教材(一)
模切技术论坛 模切网微信公众平台
欢迎 游客 , 注册 | 登录 | 会员 | 界面 | 简洁版本 | 在线 | 帮助  
模切论坛

发表新主题 回复该主题
本主题被查看14655次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第   上一主题   下一主题
标题: 触摸屏的应用与工作原理
模切技术团队成员
UID: 3651
来自: 湖南
精华: 12
积分: 889
帖子: 819
注册: 2008/6/17 22:42:00
状态: 离线
威望: 10.00
金钱: 118.45 元
只看楼主 2013-11-29 10:44
触摸屏的应用与工作原理
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 接口控制线
  DCLK BIT P1.3
  CS BIT P1.4
  DIN BIT P1.5
  BUSY BIT P1.6
  DOUT BIT P1.7
  ; A/D 通道选择命令字和工作寄存器
  CHX EQU 094H ;通道X+的选择控制字
  CHY EQU 0D4H;通道Y+的选择控制字
  CH3 EQU 0A4H
  CH4 EQU 0E4H
  AD_CH EQU 35H ;通道选择寄存器
  AD_RESULTH EQU 36H ;存放12 bit A/D值
  AD_RESULTL EQU 37H
  ; 存放通道CHX+的A/D值
  CHXAdResultH EQU 38H
  CHXAdResultL EQU 39H
  ; 存放通道CHY+的A/D值
  CHYAdResultH EQU 3AH
  CHYAdResultL EQU 3BH
  ; 采集通道CHX+的程序段(CHXAD)
  CHXAD: MOV AD_CH,#CHX
  LCALL AD_RUN
  MOV CHXAdResultH,AD_RESULTH
  MOV CHXAdResultL,AD_RESULTL
  RET
  ; 采集通道CHY+的程序段(CHYAD)
  CHYAD: MOV AD_CH,#CHY
  LCALL AD_RUN
  MOV CHYAdResultH,AD_RESULTH
  MOV CHYAdResultL,AD_RESULTL
  RET
  ; A/D转换子程序(AD_RUN)
  ; 输入: AD_CH-模式和通道选择命令字
  ; 输出: AD_RESULTH,L ;12 bit的A/D转换值
  ; 使用: R2 ;辅助工作寄存器
  AD_RUN:
  CLR CS ; 芯片允许
  CLR DCLK
  MOV R2,#8 ;先写8 bit命令字
  MOV A,AD_CH
  AD_LOOP:
  MOV C, ACC.7
  MOV DIN,C ;时钟上升沿锁存DIN
  SETB DCLK ;开始发送命令字
  CLR DCLK ;时钟脉冲,**共24个
  RL A
  DJNZ R2,AD_LOOP
  NOP
  NOP
  NOP
  NOP
  ADW0: JNB BUSY,AD_WAIT ;等待转换完成
  SJMP ADW1
  AD_WAIT:
  LCALL WATCHDOG
  NOP
  SJMP ADW0
  CLR DIN
  ADW1: MOV R2,#12 ;开始读取12bit结果
  SETB DCLK
  CLR DCLK
  AD_READ:
  SETB DCLK
  CLR DCLK ;用时钟的下降沿读取
  MOV A,AD_RESULTL
  MOV C,DOUT
  RLC A
  MOV AD_RESULTL,A
  MOV A,AD_RESULTH
  RLC A
  MOV AD_RESULTH,A
  DJNZ R2,AD_READ
  MOV R2,#4 ;*后是没用的4个时钟
  IGNORE:
  SETB DCLK
  CLR DCLK
  DJNZ R2,IGNORE
  SETB CS ;禁止芯片
  ANL AD_RESULTH,#0FH ;屏蔽高4 bit
  RET
  2.5 A/D转换结果的数据格式
  ADS7843转换结果为二进制格式。需要说明的是,在进行公式计算时,参考电压在两种输入模式中是不**样的。而且,如果选取8位的转换精度,1LSB=VREF/256,**次转换完成时间可以提前4个时钟周期,此时串口时钟速率也可以提高**倍。

思想决定行动,行动决定习惯,习惯决定一切。
#1  
发表新主题 回复该主题
本主题被查看14655次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第







现在的时间是 2024-05-06 02:41:34

© 模切网版权所有 不得转载 粤ICP备07017347号