触摸屏的应用与工作原理
摘 要:简要介绍触摸屏的结构及工作原理,并以burr-brown公司的触摸屏控制芯片ads7843为例,介绍触摸屏应用的典型电路和操作。由于ads7843内置12位a/d,理论上触摸屏的输入坐标识别精度为有效长宽的1/4096。
关键词:触摸屏 ito ads7843 嵌入式系统
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个时钟周期,此时串口时钟速率也可以提高一倍。
结束语
在许多嵌入式系统中,cpu提供专门的模块来支持液晶显示和触摸屏的输入,使得接口非常简单。比如,motorola的mc68vz328(称为 dragon ball)就提供专门的引脚来支持8位和4位的液晶显示,对触摸屏的支持通过spi2借助ads7843也很容易完成。
瑞萨电子推出适用于ADAS和自动驾驶的集成软件开发环境
AMD:高端处理器最高温度为90度是正常的
济南邮储银行采用B.E.G. KNX智能照明系统实现大楼照明系统智能控制
使用ESP8266驱动DHT11温湿度传感器
Linux系统用户与用户组管理(下)
触摸屏的应用与工作原理
电动汽车开久了电池还耐用吗
拜登政府被曝要求沙特撤资硅谷AI芯片企业,美监管机构坚称“维护国家安全”
AMD谋划崛起,服务器打先锋
智慧钢厂:轧机刚度数据采集远程监控系统
小米6黑科技三项:骁龙835、取消3.5mm耳机孔、IP67防水
如何使深度学习系统在超级计算机上测试运行?
剩余电流监测仪在施工场地的应用
大联大携手展讯打造新一代2.5G手机平台解决方案
集成数字下变频器功能的高速ADC的奇怪行为
采样保持输出噪声有两个关键分量!
人工智能指出有天体撞地球?
AWTK 串口屏开发(5) - MCU端 SDK 用法
天马支持真我10 Pro+全球首发 2160Hz超高频PWM调光联合定制
如何选择合适的PCB原理图设计软件