微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 详解触摸屏的分类及特点,附电路设计

详解触摸屏的分类及特点,附电路设计

时间:09-16 来源:网站整理 点击:

积成正比,并且还与介质的的绝缘系数有关。因此,当较大面积的手掌或手持的导体物靠近电容屏而不是触摸时就能引起电容屏的误动作,在潮湿的天气,这种情况尤为严重,手扶住显示器、手掌靠近显示器7厘米以内或身体靠近显示器15厘米以内就能引起电容屏的误动作。 电容屏的另一个缺点用戴手套的手或手持不导电的物体触摸时没有反应,这是因为增加了更为绝缘的介质。 电容屏更主要的缺点是漂移:当环境温度、湿度改变时,环境电场发生改变时,都会引起电容屏的漂移,造成不准确。例如:开机后显示器温度上升会造成漂移:用户触摸屏幕的同时另一只手或身体一侧靠近显示器会漂移;电容触摸屏附近较大的物体搬移后回漂移,你触摸时如果有人围过来观看也会引起漂移;电容屏的漂移原因属于技术上的先天不足,环境电势面(包括用户的身体)虽然与电容触摸屏离得较远,却比手指头面积大的多,他们直接影响了触摸位置的测定。此外,理论上许多应该线性的关系实际上却是非线性,如:体重不同或者手指湿润程度不同的人吸走的总电流量是不同的,而总电流量的变化和四个分电流量的变化是非线性的关系,电容触摸屏采用的这种四个角的自定义极坐标系还没有坐标上的原点,漂移后控制器不能察觉和恢复,而且,4个A/D完成后,由四个分流量的值到触摸点在直角坐标系上的X、Y坐标值的计算过程复杂。由于没有原点,电容屏的漂移是累积的,在工作现场也经常需要校准。 电容触摸屏最外面的矽土保护玻璃防刮擦性很好,但是怕指甲或硬物的敲击,敲出一个小洞就会伤及夹层ITO,不管是伤及夹层ITO还是安装运输过程中伤及内表面ITO层,电容屏就不能正常工作了。
基于MeeGo电容式触摸屏设计#e#

  基于MeeGo的电容式触摸屏驱动设计

  1 Linux输入子系统

  Linux输入子系统(以下简称输入子系统)是基于内核对象kobject实现的,应用于Linux 2.6.35内核中。凭借该机制内核通过输入子系统向用户空间输出设备的各类消息,方便了对设备的管理。输入子系统由系统核心层、驱动层和事件处理层三部分组成。一个输入事件如鼠标移动、键盘按键按下等操作通过驱动层、系统核心层、事件处理层到达用户空间,传给应用程序。

  这样在设计驱动程序时只需要考虑驱动层的实现就可以了,减少了工作量,降低了设计难度。另外基于子系统的设计提高了驱动程序的可移植性和可适应性,因为基于子系统的驱动程序设计不用考虑向上层报告输入设备的接口没计,此工作由输入子系统来完成,而输入子系统对上层的接口具有通用性,可以使驱动程序的使用范围得到扩展。图2是Linux输入子系统的框架图。

  

  2 触摸屏驱动程序设计

  2.1 触摸屏驱动工作原理

  本设计重在提出触摸屏驱动的整体设计方案,该设计流程也适用于其他触摸屏驱动设计开发。此设计可以采用SPI总线作为触摸屏和处理器的接口,硬件连接示意图如图3所示。TOUCH SCREEN是电容式触摸屏,可采用FT5201电容式全屏触摸芯片,INT是中断引脚,当触摸屏被触摸时,通过INT引脚触发中断处理程序,CPU可采用Intel公司的Atom D510处理器。

  

  SPI总线是一种高速的、全双工、同步的通信总线,以主从方式工作,有4根线分别是SDI(数据输入)、SDO(数据输出)、CLK(时钟)、 CS(片选)。SPI总线为了与外设进行数据交换,其输出串行同步时钟相位和极性可以根据外设工作要求进行配置。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。时钟极性(CPOL)对传输协议没有重大的影响,如果CPOL=0,串行同步时钟的空闲状态为低电平;如果 CPOL=1,串行同步时钟的空闲状态为高电平。

  2.2 驱动程序软件设计

  依托Linux输入子系统架构,驱动程序的设计需要完成以下工作。

  (1)分配、注册、注销input设备

  各个接口函数如下:

  ◆分配函数为struct input_dev*input_allocate_device(void);

  ◆注册函数为int input_register_device(struct input_dev*devr);

  ◆注销函数为void input_unregister_device(struct input_dev*dev)。

  (2)设置input设备支持的事件类型

  通过set_bit()告诉所支持的事件类型,触摸屏的事件类型代码为EV_ABS(0x03)。

  (3)电容触摸屏参数设置

  由input_set_abs_params()函数完成,代码如下:

  input_set_abs_params(input,ABS_X,0,960,0,0);

//屏幕分辨率为960

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top