红外触摸屏原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、 基本原理介绍
红外触摸屏的工作原理是在触摸屏的四周布满红外接收管和红外发射管,这些红外管在触摸屏表面呈一一对应的排列关系,形成一张由红外线布成的光网,当有物体(手指、带手套或任何触摸物体)进入红外光网阻挡住某处的红外线发射接收时,此点横竖两个方向的接收管收到的红外线的强弱就会发生变化,控制器通过了解红外线的接收情况的变化就能知道何处进行了触摸。如下图所示。
2、 构成及工作流程
1、 构 成: 红外触摸屏由三部分组成:控制器、发射电
路、接收电路。
2、 工作流程
工作时,控制器中的微处理器(ARM7或其它)控制驱动电路(移位锁存
器)依次接通红外发射管并 同 时 通过地址线和数据线来寻址相应的红外
接收管。 当有触摸时,手指或其它物就会挡住经过该位置的横竖红外线,
微处理器扫描检查时就会发现该受阻得红外线,判断可能有触摸,同时立
刻换到另一坐标再扫描,如果再发现另外一轴也有一条红外线受阻,表示
发现触摸,并将两个发现阻隔的红外对管位置报告给主机,经过计算判断
出触摸点在屏幕的位置。其控制原理如图1所示。
3、 发射电路
发射电路由移位锁存器(例如:TI公司的CD74AC164M)、3-TO-8多路输出
选择器(例如:TI的74HC238D)、恒流驱动IC(例如美芯的MAX6966 、TI
的ULN2803A等)、红外发射二极管等组成。现以TI公司的CD74AC164M为例
介绍发射电路工作流程。
CD74AC164M是一个8 Bit串行输入并行输出的位移锁存器。微处理器通过IO口控制移位锁存器的时钟以及数据输入端。扫描时微处理器通过IO端口将
CD74AC164M的MR脚置为高电平,则CD74AC164M会自动把输出脚:Q0置为高电平,然后送入时钟信号:CP ,则在时钟信号的上升期移位锁存器自动将Q0的数据写入到Q1并保存。在下一个时钟脉冲的上升沿到来时,把Q1的数据写入到Q2并Q1自动清
,其它依次进行。写入的脉冲会随移位时钟上升沿的到来不断的移位,直到从输出端移出。利用移位锁存器的这一特点,可在移位时钟的上升沿将脉冲移至发射管,并点亮发射管。将第一个移位锁存器的输出端与下一级的输入端相连,可将写入的脉冲移人下一级。因此,通过移位锁存器的级联可实现微处理器对更多的发射管的驱动。结合以上特点即可将发射管逐个点亮。以上只是对发射端原理性介绍,实际的电路在位移锁存器的后面还有一级电流、电压驱动IC,例如:美芯的恒流驱动IC:MAX6966 、TI的ULN2803A等,因为位移锁存器输出的扫描信号电流太小不足以驱动红外发射二极管,所以必须在后面加一级电流、电压驱动IC。驱动电路如下图所示:
4、 接收电路 接收电路由移位锁存器(例如:TI公司的
CD74AC164M)、多路器(例如:TI 公司的74HC4051D,与
74HC238D匹配)、红外接收二极管、放大电路、AD转换器(例
如:TI的ADS7830)等构成。
发射管被点亮的时刻,微处理器将同时通过地址线寻址与发射管位置上相对应的接收管,并将接收感应到的光通量通过放大器和AD转换器放大并转换成数字信号,再通过数据线传送给微处理器进行处理,由此判断是否有触摸发生。通过这样处理可使发射管与接收管一一对应,从而为确定触摸位置奠定基础。
接收电路必须与发射电路用相同型号的移位锁存器(例如:TI公司的
CD74AC164M),这样才能保证微处理器发出扫描信号后寻址相对应的接收管时,发射管和接收管在时序上一一对应。
光通量放大电路和AD转换电路示意图如下:
5、 软件工作流程
6、 高分辨率的实现
早期的红外触摸屏的分辨率直接由红外对管数决定,对于接收管来说,只有接收到和没有接收到信号两种情况,触摸分辨率就等于屏的物理分辨率。因此其触摸屏的分辨率比较低。但如果将接收的信号强度进行量化分级,那么,对于接收的信号,不仅要判断是否被阻挡,还要判断出被阻挡的程度,触摸物的不同位置将决定是否有接收信号且接收信号的强度也有所不同,因此触摸物的位置与接收的红外信号强度有直接的对应关系,即使触摸物移动非常小的距离也会导致信号强度发生改变,从而可以得到极高的分辨率。该情况下的触摸屏分辨率主要由红外对管数和模数转换精度决定,其触摸屏分辨率为红外对管数与单对红外管能实现的分辨率的乘积。触摸屏坐标由红外管的物理坐标和触摸点在相应管中的坐标共同决定。基于以上原理,可以将每次采集到的红外接收管的光通量进行256级量化,这样,得到的最小分辨率就是接收管的宽度/256,从而大大提高了红外触摸屏的分辨率,该方法可以达到2046×2046
的精度。
7、 触摸位置的计算
为了得到准确的触摸位置,在计算触摸位置时必须排除周围环境光的干扰。为此,通过确定每对管子的域值来作为判断是否有手指触摸的依据。该域值的确定可通过对每对管子的“0”态和“1”态时的数据采样来实现。 “0”态,即将所有的发射管进行一次清零,此时的发射管都为熄灭状态,这样,采样得到的就是接收管接收到的周围光的光通量;“1”态,即将所有的发射管逐个点亮,此时的发射管在某一时刻只有一只被点亮,采样得到的是接收管接收对应发射管及周围光的光通量。红外触摸屏的触摸位置的计算主要是通过遮挡时与未遮挡时的光强比来得到的。在判断触摸位置时,可以先确定被遮挡的管子,计算得到被遮挡的大致位置。若被遮挡的管子为第N个管子,这个被遮挡的大致位置为Ld,则有:
Ld=(N-1)×管子的宽度
由于手指遮挡时有一定的区域,所以遮挡时有两种可能:其一是在被确定
的管子的前面;其二是在被确定的管子处。图3所示为手指遮挡示意图。
为了精确计算,需要计算这两种情况下位置的偏移量△L1和△L2。
则有:
其中,L为第N个管子被遮挡时的位置。△L1为手指在被确定的管子
的前面时的偏移量。△L2为手指在被确定的管子处时的偏移量,XN为扫
描时采样第N个管子接收到的数据,XNmax为“1”态时采样第N个管子接收到的数据.XNmin为“0”态时采样第N个管子接收到的数据。
8、 鼠标驱动
控制器只能得到触摸位置的绝对坐标位置信息,而无法实现相应的鼠标动作。所以,必须通过主机端的驱动程序来实现鼠标动作。可以通过VC++编程来实现串口通信和鼠标动作,从而完成软件结合硬件对鼠标的驱动。
A、 串口通信
为了使主机能够接收控制器通过串口传送的触摸位置信息,可利用Microsoft公司提供的ActiveX控件Microsoft Communications Control,并通过VC++编程来实现串口通信。通过在该控件中的设置可
指定通信串口号,同时可设置波特率、校验位、停止位、数据位等通信