触摸屏驱动三部曲之硬件原理

零.触摸屏驱动三部曲概述

触摸屏已经在我们的生活中无处不在,所以说写好触摸屏的驱动是很重要的。接下来我会通过三篇文章详细讲解触摸屏的驱动。

1.触摸屏驱动三部曲之硬件原理

写好一个驱动,一定要对硬件有所了解,这节我会讲解触摸屏的基础知识和电阻触摸屏的原理。

2.触摸屏驱动三部曲之输入子系统

输入子系统在驱动中占着举足轻重的位置,按键,触摸屏,鼠标等输入型设备都可以利用input接口函数来实现设备驱动。想知道具体怎么实现的就来看这节吧。

3.触摸屏驱动三部曲之功能实现及优化

这节主要是分析框架,写出一个触摸屏的驱动。光写出来可不行,重点是实用。同样的一个设备,为什么有些运行起来就没问题,有的运行起来就很糟糕。答案就是优化做得不好。怎么优化呢?这节我会逐个分析。

一.触摸屏的分类

触摸屏(touch screen)又称为“触控屏”、“触控面板”,是一种可接收触头等输入讯号的感应式液晶显示装置,当接触了屏幕上的图形按钮时,屏幕上的触觉反馈系统可根据预先编程的程式驱动各种连结装置,可用以取代机械式的按钮面板,并借由液晶显示画面制造出生动的影音效果。触摸屏作为一种最新的电脑输入设备,它是目前最简单、方便、自然的一种人机交互方式。

触摸屏常用的两类

1.X线电阻屏

X越大,精度越高。本文主要介绍四线电阻屏的原理。

四线电阻模拟量技术的两层透明金属层工作时每层均增加5V恒定电压:一个竖直方向,一个水平方向。总共需四根电缆。特点:高解析度,高速传输反应。 表面硬度处理,减少擦伤、刮伤及防化学处理。具有光面及雾面处理。一次校正,稳定性高,永不漂移。(这个是亮点啊)

特点:电阻屏操作较为精确,屏幕材料韧性大,不足点是灵敏度不高、不支持多点触摸。(因为不支持,多点触控,现在的智能机将它抛弃了。现在的手机、平板都已经是电容屏的天下了)

2.电容屏

电容屏是利用人体的电流感应进行工作的。电容式触摸屏是一块四层复合玻璃屏,玻璃屏的内表面和夹层各涂有一层ITO,最外层是一薄层矽土玻璃保护层,夹层ITO涂层作为工作面,四个角上引出四个电极,内层ITO为屏蔽层以保证良好的工作环境。当手指触摸在金属层上时,由于人体电场,用户和触摸屏表面形成以一个耦合电容,对于高频电流来说,电容是直接导体,于是手指从接触点吸走一个很小的电流。这个电流分从触摸屏的四角上的电极中流出,并且流经这四个电极的电流与手指到四角的距离成正比,控制器通过对这四个电流比例的精确计算,得出触摸点的位置。

特点:电容式触摸屏具有灵敏度高,容易实现多点触控技术等优点。但电容屏缺点也很明显,电容屏的反光严重,而且电容技术的四层复合触摸屏对各波长光的透光率不均匀,存在色彩失真的问题,由于光线在各层间的反射,还造成图像字符的模糊。且对手机用户来说其技术特点决定了其只能使用手指进行操作(这个缺点竟然被当成优点来说……)。电容屏最大的缺点就是“飘移”。由于电容随温度、湿度或接地情况的不同而变化,所以当环境温度、湿度、环境电场发生改变时,都会引起电容屏的漂移,造成定位不准确。

二.电阻触摸屏的原理

电阻屏的原理归根结底就是个电阻嘛,你的手就相当于滑动电阻器你点到哪就测一下你的电压:

如果还不明白那我就再贴个图

现在明白我为啥说电阻屏就是电阻的了吧

三.S3C2440的触摸屏接口

ADC与触摸屏就是一对好基友,所以咱们谈触摸屏,自然要谈到ADC。

由图我们可以看到S3C2440提供四个引脚用于触摸屏(XP、XM、YP、YM)根据上面的原理,通过这四个引脚就能够得到模拟的输入,然后将他们转换成数字量进行输出。

图中的INT_ADC表示A/D转换已经完毕,INT_TC表示触摸屏已经按下了。

参考:韦东山视频第二期

时间: 2024-10-18 07:50:21

触摸屏驱动三部曲之硬件原理的相关文章

触摸屏驱动三部曲之功能实现及优化

小伙伴们准备好了吗?又到了看手册写代码的时候了.既懂硬件又懂软件的驱动工程师们.Come On..... 一.总体框图 二.驱动代码 #include <linux/errno.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/slab.h> #include <linux/input.h> #include <linux/init.h> #i

触摸屏驱动三部曲之输入子系统

一.触摸屏系统框架 1.框架代码(具体细节处理,见下节代码) #include <linux/errno.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/slab.h> #include <linux/input.h> #include <linux/init.h> #include <linux/serio.h> #includ

Linux Framebuffer 驱动框架之一概念介绍及LCD硬件原理【转】

本文转载自:http://blog.csdn.net/liuxd3000/article/details/17464779 一.基本概念 帧缓冲(Framebuffer)是Linux系统为显示设备提供的一个接口,它将显示缓冲区抽象,屏蔽图像硬件的底层差异,允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作.用户不必关心物理显示缓冲区的具体位置及存放方式,这些都是由帧缓冲设备驱动本身来完成.对于帧缓冲设备而言,只要在显示缓冲区与显示点对应的区域写入颜色值,对应的颜色会自动在屏幕上显示,下一小

【视频】嵌入式Linux/Android驱动开发揭秘(1)触摸屏驱动开发

嵌入式Linux/Android驱动开发揭秘(1)触摸屏驱动开发 专题简介:自1971年,美国人SamHurst发明了世界上第一个触摸传感器以来,触摸屏技术不断革新,给了程序设计师和UI工程师无限的想象空间,它极大改善了终端用户对各种设备的操作方便程度,现在我们的日常生活如手机.平板等,已经很大程度上依赖于和习惯于使用和操作触摸屏.做为工程师,我们很有必要掌握触摸屏的工作原理和软件驱动方法,如果您对一窥如何在嵌入式中操控和使用触摸屏这一司空见惯却又神奇的技术感兴趣,敬请关注! 1.LINUX驱动

cortex_m3_stm32嵌入式学习笔记(二十二):触摸屏实验(触摸屏驱动)

目前最常用的触摸屏有两种:电阻式触摸屏与电容式触摸屏. 电阻式触摸屏 在 Iphone 面世之前,几乎清一色的都是使用电阻式触摸屏, 电阻式触摸屏利用压力感应进行触点检测控制,需要直接应力接触, 通过检测电阻来定位触摸位置. 电阻触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,这是一种多层的复合薄膜,它以一层玻璃或硬塑料平板作为基层,表面涂有一层透明氧化金属(透明的导电电阻)导电层,上面再盖有一层外表面硬化处理.光滑防擦的塑料层.它的内表面也涂有一层涂层.在他们之间有许多细小的(小于 1

S3C2440触摸屏驱动实例开发讲解

出处:http://www.embeddedlinux.org.cn/html/yingjianqudong/ 一.开发环境 主  机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2 二.前提知识 1.Linux输入子系统(Input Subsystem): 在Linux中,输入子系统是由输入子系统设备驱动层.输入子系统核心层(Input Core)和输入子系统事件处理层(Even

NUC970平台触摸屏驱动移植

原理概述 1.首先要区分lcd和触摸屏,lcd是一个屏幕,触摸屏是贴在lcd上的两层膜. 2.四线电阻触摸屏的原理:触摸屏就是上下两层膜,比如上层代表x轴(XM:负端,XP:正端),下层代表y轴(YM:负端,YP:正端).当读取x轴坐标时,XP接3.3v,XM接地,从YM读取按下点的电压值作为模拟输入信号,再经过AD转换后就得到了x轴坐标.同理,当读取y轴坐标时,YP接3.3v,YM接地,从XM读取按下点的电压值作为模拟输入,再经过AD转换后就得到了y轴坐标. 触摸屏驱动程序采用中断方式对触摸笔

[智能硬件] 3、三分钟看懂智能硬件原理——简易智能手环制作教程(包括炫酷手机客户端开发)

首先恭喜大家挺过了测试二!为什么说“挺”呢?因为测试二的难度和测试一相比有一个比较大的跳跃:首先测试一仅仅利用现有硬件模块稍加改造而DIY一个蓝牙防丢器,而测试二则要求大家具有从脑袋里的一个想法到一个全新的小设备的实现的全部能力,显然该过程不是连几根线那么简单:其次测试一对蓝牙的使用仅限于信号搜索层面,而测试二一下子深入到可靠通信的层面了,其难度可想而知:最后在测试二中客户端的设计中复杂的状态转换过程,以及嵌入式编程时需要对所使用的硬件作细致的分析,都构成了对前期基础没打牢的同学一种挑战.不过好

基于Windows CE6.0和 AK4182触摸屏驱动实现

本驱动实现了FreescaleImx515平台下的AK4182A 触摸屏采样功能.通过在WINDOWS CE平台上按照WINDOWS CE TOUCH DDSI 接口标准完成了所有的12 bit精度的数据采样功能. 该驱动实现了一个标准的WINDOWS CE 触摸屏驱动,使用中断(Interrupt)实现PEN DOWN 检测,通过定时器(Timer)中断采集Pen Move数据,并同时判断是否PEN UP状态.在此过程中,会通过点过滤算法和压力检测算法去除杂点和平滑,最后有效的原始位置数据会发