一种数字式触摸屏驱动设计方案

时间:2011-07-29

  引言

  触摸屏具有坚固耐用、反应迅速、节省空间等优点,目前正逐渐取代传统的鼠标、键盘等人机交互设备,并已广泛应用于工业控制系统、消费电子产品、医疗设备等领域。触摸屏分为模拟式和数字式触摸屏2种。目前基于WinCE5.0的嵌入式系统大多采用模拟式触摸屏,虽然其高、支持手写输入,但由于存在坐标漂移的情况,因此,需要经常进行校准。这不符合工业环境下长期稳定运行的要求。数字式触摸屏价格低廉、性能稳定、装配简易、不需外接控制器、无坐标漂移、不需要重新定位。这些特性都使数字式触摸屏成为恶劣工业环境下触摸输入的设备。因此,采用数字式触摸屏开发嵌入式产品,有着重要的现实意义。

  1 数字式触摸屏工作原理

  数字式触摸屏由上下2层高透明的导电层组成。

  上下层之间用细微绝缘点隔开,从玻璃或薄膜片引出引线,一般将引线设计成行列式。当触摸板表面无压力时,上下层是互相绝缘的2层导体;一旦有压力施加到触摸板,上下层就会互相接触,从而形成回路。触摸屏硬件电路结构如图1所示。

  图1中:CPLD(complexprogramablelogicdevice)充当了触摸屏控制器的角色,数字式触摸屏的引线全部连接到CPLD上,由CPLD对数字式触摸屏的输入输出进行控制。根据数字式触摸屏的结构,把数字式触摸屏的行列引线分成KeyIn和KeyOut这2组。行引线对应KeyOut组、列引线对应KeyIn组。KeyIn组每根引出线上都有上拉电阻。当没有点接触时,KeyIn组上的信号是高电平,CPU通过对CPLD的片选和读写,把行信号通过数据总线和CPLD传给触摸屏的KeyOut组。初始化时,KeyOut组上的信号为低电平;当有点接触时,Key2In组上某根或几根引线上的信号变成低电平,经CPLD后,转变成中断信号输入到CPU,从而触发CPU中断。

  2 触摸屏WinCE5.0驱动模型

  WinCE5.0设备驱动程序分为单片驱动程序(mono2lithicdevicedriver)和分层驱动程序(layereddevicedriv2er)2种类型。在触摸屏驱动开发过程中使用分层驱动开发模式,这样可以降低开发难度、缩短开发周期。

  分层驱动程序的代码分为上层模型设备驱动MDD(modeldevicedriver)和下层平台相关驱动PDD(platformdependencedriver)。MDD层包含某一类型的驱动程序所通用的代码;PDD层包含特定的硬件或平台专用的代码。当操作系统访问硬件时,MDD层调用特定的PDD函数来访问相应硬件。在驱动开发过程中,一般无需更改MDD的代码,而只需修改PDD层的代码。分层驱动程序中存在2类接口函数:

  ①在操作系统与MDD之间的DDI(devicedriverinterface)函数;

  ②在MDD和PDD之间的DDSI(devicedriverserviceproviderinterface)函数。

  当操作系统访问硬件时,首先通过使用DDI函数与驱动程序交互;然后在驱动程序内部,MDD通过DDSI函数与PDD进行交互;由PDD完成真正的硬件访问操作。触摸屏驱动程序分层结构模型如图2所示。

  3 触摸屏驱动程序的实现

  触摸屏设备驱动程序在编译时,被静态链接到GWES程序,系统运行时由GWES.exe加载。MDD可以用微软的代码tchmdd.lib来开发触摸屏驱动,而关键在于根据触摸屏设备,编写特定硬件的PDD。触摸屏的驱动程序主要由TouchPanelEnable、TouchPanelD2isable、TouchPanelpISR和TouchPanelGetDeviceCaps等功能函数组成。触摸屏驱动读取硬件数据并转换为特定触摸屏事件传送给GWES。

  触摸屏驱动程序中需要实现的PDD层的DDSI函数如下所示。

  其中,DdsiTouchPanelGetPoint为触摸点采样函数。

  触摸点采样函数采用中断服务的形式来完成,它是触摸屏中断的主要处理部分。触摸屏中断处理流程如图3所示。

  在中断处理程序中,主要的是触摸点坐标位置的采样,数字式触摸屏的触摸点位置采样流程如图4所示。

  4 触摸屏驱动程序的编译与调试

  SOURCES文件具体的编写步骤是先通过PlatformBuilder5.0编译生成触摸屏驱动程序文件SAM9261_tou2ch.dll,并把它复制到$(_FLATRELEASEDIR)中,同时修改配置文件Platform.bib和Platform.reg。

  然后编译工程,就可以把SAM9261_touch.dll加入到操作系统镜像文件NK.bin中。

  重新构建系统,将生成的WinCE5.0操作系统映像至触摸屏控制器的SDRAM中运行。通过WindowsCERemoteProcessViewer调试工具可知,SAM9261_touch.dll已经被GWES.exe正确加载;同时,触摸屏也可以正常地进行坐标和状态的采样。

  5 结语

  触摸屏已经成为嵌入式设备人机交互的输入控制设备,编写触摸屏控制器的驱动程序是实现嵌入式系统的必须环节。

  本文实现了基于WinCE5.0的数字式触摸屏驱动程序的开发,并取得了很好的控制效果,这对于其他设备驱动程序开发也具有一定的指导意义。因此,该开发程序可以应用于类似触摸屏控制器。

上一篇:基于嵌入式操作系统的网络摄像机
下一篇:Maxim MAX98304的单声道3.2W D类音频放大的解决方案

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料