Linux驱动之触摸屏(1)

1.     硬件原理

1.1overview

   我们常用的触摸屏类型有两种:阻性触摸屏和容性触摸屏。它们在硬件上相差比较大,在驱动实现上相对来说差别比较小。容性触摸屏支持多点触摸屏,用户体验上比较好。下面将简单介绍一下触摸屏用到的硬件原理。

 

1.2ADC转换

         AD转换的作用是将时间连续、幅值也连续的模拟量转换为时间离散、幅值也离散的数字信号。

 

1.3 阻性触摸屏

l  简单来说,阻性触摸屏是一种传感器,它将矩形区域中触摸点(X, Y)的物理位置转换为代表X坐标和Y坐标的电压。

Linux驱动之触摸屏(1)_第1张图片

l  触摸屏包含上下叠合的两个透明层阻性材料,中间由一种弹性材料隔开。当触摸屏表面受到压力时,顶层和底层之间会产生触碰。所用的电阻式触摸屏都采用分压器原理来产生代表X坐标和Y坐标的电压。如下图所示,分压器是通过将两个电阻进行串联来实现的。上面的电阻R1连接正参考电压Vref,下面的电阻R2接地。连个电阻连接点处的电压测量值与下面那个电阻的阻值成正比。

Linux驱动之触摸屏(1)_第2张图片

 

l  四线触摸屏

Linux驱动之触摸屏(1)_第3张图片

四线触摸屏包含两个阻性层。其中一层在屏幕的左右边各有一条垂直总线,另一层在屏幕的底部和顶部各有一条水平总线,见上图。为了X轴方向进行测量,将左侧总线偏置为0V,右侧总线偏置为Vref。将顶部或底部总线连接到ADC,当顶层和底层相接触时即可做一次测量。

为了在Y轴方向进行测量,将顶部总线偏置为Vref,底部总线偏置为0V。将ADC输入端接左侧总线或右侧总线,当顶层与底层相接触时即可对电压进行测量。下图显示了四线触摸屏在两层相接触时的简化模型

Linux驱动之触摸屏(1)_第4张图片

五线、七线和八线的原理大概相同,不一一介绍。

 

1.4 容性触摸屏

Linux驱动之触摸屏(1)_第5张图片

l  一般自容式电容触摸屏主要包括一层表面玻璃层,中间两层行列交叉的ITO层(行列层之间没有短接),以及GND底层。每一行和列分别与MCU的采集输入通道直接相连,当手指触摸到电容屏的表面玻璃层时,会引起某一行或列的ITO 块的对地电容值变大,从而通过电容采样以及特定的算法确定电容值发生一定变化的点(触摸点)的位置(X,Y),最后将触摸点的位置上传给主处理器实现系统操作功能

 

1.5   触摸屏工作流程

l  S3c2440触摸屏功能模块


l  工作流程

1、  选择XY坐标转换模式(独立转换/连续转换)

2、  设置触摸屏到等待状态

3、  如果中断发生,启动ADC转换(转换获得的坐标值会存入相应的寄存器中)

4、  获得XY坐标,返回到步骤2

值得注意的是两个中断产生的时间,INT_TC在点击触摸屏时发生,INT_ADC在数模转换完成时发生

 

参考资料:

容性触摸屏:http://hi.baidu.com/qingliu8885/blog/item/f2d5156055fbff4ceaf8f8a6.html

                        http://www.dpj365.com/article/mcu/20110426-488.html

阻性触摸屏:http://blog.21ic.com/user1/349/archives/2007/36713.html

转换模式:http://blog.csdn.net/gzliu_hit/article/details/6680935

s3c2440 datasheet

你可能感兴趣的:(c,linux,工作,算法)