位置:51电子网 » 技术资料 » 其它综合

触摸屏系统应用中的问题及解决方法

发布时间:2008/6/5 0:00:00 访问次数:538

本文以ad7843在触摸屏系统中的一个实际应用为例,重点分析了在使用ad7843的过程中遇到系统资源占用、测量值偏差以及外部干扰等问题,并提出了相应的解决方法。

ad7843是adi公司生产的一种四线式触摸屏控制器,目前广泛应用于电阻式触摸屏输入系统中。尽管adi公司给出了相关的典型应用和应用注意,但是在实际使用过程中仍然会遇到一些问题,比如怎样用硬件实现ad7843的时序逻辑、如何提高测量精度、如何抗干扰,以及提高测量可靠性等。

ad7843数字转换器在一个12位逐次逼近式比较寄存器(sar)adc架构上集成了用于驱动触摸屏的低通阻抗开关。这些器件不使用内部基准电压,当以大于125ksaps的吞吐率运行时的最大功耗小于1.4mw。它们还带有10kev到12kev的模拟输入esd保护,增强了抗esd能力,以避免关键的内部系统元件损坏。使用单2.2v到5.25v的电源工作。ad7843串行接口的一次完整操作需要24个dclk.,前8个脉冲接收8位的命令,并在第6个脉冲的上升沿开始采样,从第9个脉冲开始进入转换阶段,输出12位采样值,转换结束进入空闲阶段。直到24个dclk结束,cs置高电平,一次测量结束。此外,ad7843还支持其它的工作方式,这里不予详述。

应用实例

图1的硬件接口示意图为一个驱动触摸屏应用,我们的触摸屏是四线电阻屏,它可以等效成水平方向和垂直方向的两个线性电阻。当有键按下时,通过控制ad7843可以测量到触摸位置对应的水平和垂直方向的电压值,进而通过计算得到触摸位置的坐标值。

ad7843的控制时序由386ex(属intelx86系列cpu)产生。测量命令的发送和测量数据的接收由386ex的同步串口完成。图1中dclk信号是由386ex同步串口的发送时钟txclk和接收时钟rxclk经过逻辑转换产生,ssiorx和ssiotx分别是386ex同步串口的数据接收端和数据发送端。其一次测量周期的流程如图2所示。

设计中的问题及解决方法

1.占用系统资源问题由上面的例子可知,ad7843的所有控制时序是由软件完成的。而且为了保证时序不被影响,一次测量周期内不应被中断打断,所以就必须屏蔽高级中断。这样在实际操作中就遇到了一个问题,在比较频繁地操作触摸屏时,会大量占用cpu的时间,从而影响系统其它任务的执行,例如串口数据因来不及处理而造成数据的丢失甚至通讯中断。为了解决这个问题,我们采用一个逻辑器件epm7032,由硬件来生成ad7843的控制时序,从而大大减轻了cpu的负担。下面介绍硬件逻辑如何实现。我们将这部分逻辑看作一个芯片,其引脚定义如下:
entityad_ctrl_delay_cmpis
port
(
clk:instd_logic;--时钟输入(1.8432mhz)
dout:outstd_logic;--ad7843的din
clkout:outstd_logic;--ad7843的dclk信号
clkssio:outstd_logic;--同步串口的接收时钟
cs:instd_logic;--ad7843的片选信号
rst:instd_logic-上电复位信号
);
endad_ctrl_delay_cmp;

其工作流程是:当有键按下时,cpu(386ex)会将cs置低,cpld逻辑首先发8个clkout脉冲,在dout脚输出测量x坐标的命令,然后再发16个脉冲,在clkssio脚输出与clkout同步的16个脉冲到386ex的同步串口的接收时钟引脚。386ex此时从同步串口接收到16位数据,取前12位作为实际采样值。然后产生测量y坐标的时序,与测量x坐标的方法相同。完成一次测量,再延时一段时间,完成第二次测量,与第一次测量方法相同。测量两次的目的是为了削除键抖动。386ex的同步串口接收到四次测量数据后将cs置低。

其内部逻辑的vhdl完整代码请参见《电子工程专辑》网www.eetchina.com。

2.ad7843的测量值有偏差

在实际的使用过程还遇到另外一个问题,在按触摸屏的过程中,有时测量出的按键位置有偏差,观察ad7843相关引脚波形发现输入电压有抖动。分析后发现抖动可能由两方面产生:
a.ad7843的模拟地与系统的数字地不是一点相连。数字地干扰由公共阻抗耦合到ad7843的模拟地,产生干扰造成抖动。解决办法是模拟地与数字地一点连接。
b.触摸屏在按下和释放过程中有抖动,所以要进行键削抖。采用两次键值比较是一个较好的方法,具体工作原理是连续测量x、y坐标值两次,然后进行比较,若相同或相差在允许的误差范围内就认为是有效键,否则为无效键。这里要十分注意的是为了有效地去除抖动,在第一次测量x、y坐标和第二次测量x、y坐标之间一定要有延时,延时应大于触摸屏的抖动时间,抖动的时间在触摸屏的性能指标中有说明。本文中的硬件cpld逻辑已经实现了两次键值比较的键削抖功能。

3.因外界干扰,触摸屏按键无响应触摸屏在现场应用中有时会出现“死机”现象(触摸屏按键无响应)。分析发现现场环境较恶劣,存在较强的电磁干扰,因此在触摸屏的引脚叠加了高频干扰脉冲,影响了ad7843的正常工作时序,造成ad芯片工作不正常。解决方法是在ad的关键引脚dclk、din、dout对地接0.001u的高频滤波电容。

本文以ad7843在触摸屏系统中的一个实际应用为例,重点分析了在使用ad7843的过程中遇到系统资源占用、测量值偏差以及外部干扰等问题,并提出了相应的解决方法。

ad7843是adi公司生产的一种四线式触摸屏控制器,目前广泛应用于电阻式触摸屏输入系统中。尽管adi公司给出了相关的典型应用和应用注意,但是在实际使用过程中仍然会遇到一些问题,比如怎样用硬件实现ad7843的时序逻辑、如何提高测量精度、如何抗干扰,以及提高测量可靠性等。

ad7843数字转换器在一个12位逐次逼近式比较寄存器(sar)adc架构上集成了用于驱动触摸屏的低通阻抗开关。这些器件不使用内部基准电压,当以大于125ksaps的吞吐率运行时的最大功耗小于1.4mw。它们还带有10kev到12kev的模拟输入esd保护,增强了抗esd能力,以避免关键的内部系统元件损坏。使用单2.2v到5.25v的电源工作。ad7843串行接口的一次完整操作需要24个dclk.,前8个脉冲接收8位的命令,并在第6个脉冲的上升沿开始采样,从第9个脉冲开始进入转换阶段,输出12位采样值,转换结束进入空闲阶段。直到24个dclk结束,cs置高电平,一次测量结束。此外,ad7843还支持其它的工作方式,这里不予详述。

应用实例

图1的硬件接口示意图为一个驱动触摸屏应用,我们的触摸屏是四线电阻屏,它可以等效成水平方向和垂直方向的两个线性电阻。当有键按下时,通过控制ad7843可以测量到触摸位置对应的水平和垂直方向的电压值,进而通过计算得到触摸位置的坐标值。

ad7843的控制时序由386ex(属intelx86系列cpu)产生。测量命令的发送和测量数据的接收由386ex的同步串口完成。图1中dclk信号是由386ex同步串口的发送时钟txclk和接收时钟rxclk经过逻辑转换产生,ssiorx和ssiotx分别是386ex同步串口的数据接收端和数据发送端。其一次测量周期的流程如图2所示。

设计中的问题及解决方法

1.占用系统资源问题由上面的例子可知,ad7843的所有控制时序是由软件完成的。而且为了保证时序不被影响,一次测量周期内不应被中断打断,所以就必须屏蔽高级中断。这样在实际操作中就遇到了一个问题,在比较频繁地操作触摸屏时,会大量占用cpu的时间,从而影响系统其它任务的执行,例如串口数据因来不及处理而造成数据的丢失甚至通讯中断。为了解决这个问题,我们采用一个逻辑器件epm7032,由硬件来生成ad7843的控制时序,从而大大减轻了cpu的负担。下面介绍硬件逻辑如何实现。我们将这部分逻辑看作一个芯片,其引脚定义如下:
entityad_ctrl_delay_cmpis
port
(
clk:instd_logic;--时钟输入(1.8432mhz)
dout:outstd_logic;--ad7843的din
clkout:outstd_logic;--ad7843的dclk信号
clkssio:outstd_logic;--同步串口的接收时钟
cs:instd_logic;--ad7843的片选信号
rst:instd_logic-上电复位信号
);
endad_ctrl_delay_cmp;

其工作流程是:当有键按下时,cpu(386ex)会将cs置低,cpld逻辑首先发8个clkout脉冲,在dout脚输出测量x坐标的命令,然后再发16个脉冲,在clkssio脚输出与clkout同步的16个脉冲到386ex的同步串口的接收时钟引脚。386ex此时从同步串口接收到16位数据,取前12位作为实际采样值。然后产生测量y坐标的时序,与测量x坐标的方法相同。完成一次测量,再延时一段时间,完成第二次测量,与第一次测量方法相同。测量两次的目的是为了削除键抖动。386ex的同步串口接收到四次测量数据后将cs置低。

其内部逻辑的vhdl完整代码请参见《电子工程专辑》网www.eetchina.com。

2.ad7843的测量值有偏差

在实际的使用过程还遇到另外一个问题,在按触摸屏的过程中,有时测量出的按键位置有偏差,观察ad7843相关引脚波形发现输入电压有抖动。分析后发现抖动可能由两方面产生:
a.ad7843的模拟地与系统的数字地不是一点相连。数字地干扰由公共阻抗耦合到ad7843的模拟地,产生干扰造成抖动。解决办法是模拟地与数字地一点连接。
b.触摸屏在按下和释放过程中有抖动,所以要进行键削抖。采用两次键值比较是一个较好的方法,具体工作原理是连续测量x、y坐标值两次,然后进行比较,若相同或相差在允许的误差范围内就认为是有效键,否则为无效键。这里要十分注意的是为了有效地去除抖动,在第一次测量x、y坐标和第二次测量x、y坐标之间一定要有延时,延时应大于触摸屏的抖动时间,抖动的时间在触摸屏的性能指标中有说明。本文中的硬件cpld逻辑已经实现了两次键值比较的键削抖功能。

3.因外界干扰,触摸屏按键无响应触摸屏在现场应用中有时会出现“死机”现象(触摸屏按键无响应)。分析发现现场环境较恶劣,存在较强的电磁干扰,因此在触摸屏的引脚叠加了高频干扰脉冲,影响了ad7843的正常工作时序,造成ad芯片工作不正常。解决方法是在ad的关键引脚dclk、din、dout对地接0.001u的高频滤波电容。

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!