触摸屏驱动实现

发布时间:2011-05-20 阅读量:667 来源: 发布人:

中心议题:
      *  WinCE触摸屏驱动的设计和实现

嵌入式设备触摸屏按其技术原理可分为五类:矢量压力传感式、电阻式、电容式、红外线式和表面声波式。其中电阻式触摸屏在嵌入式系统中用的较多,电阻式触摸屏可分为四线、五线、七线等几种。一般来说,WinCE触摸屏驱动的设计和实现有以下几个步骤:

(1)配置和初始化触摸屏

 触摸屏驱动在初始化过程会调用TouchPanelEnable函数,该函数调用的DDSI函数为DdsiTouchPanelEnable和 DdsiTouchPanelDisable。这两个DDSI接口函数是驱动实现的关键所在,分别用于打开和关闭触摸屏硬件。但是为了降低功耗,这两个函数其实可以不真正操作硬件,而只是实现软件上的控制。 同时,在初始化时还需要进行这几个配置和初始化:一是创建事件hTouchPanelEvent和 hCalibrationSampleAvailable,前者是在正常状态下当有触摸笔按下或者按下后需要定时采集数据时被触发;而后者是在校准状态下当有校准数据输入时被触发。二是检查初始化所需的中断gIntrTouch(触摸屏中断)和gIntrTouchChanged(定时器中断),并将这两个中断关联到事件hTouchPanelEvent。三是创建一个ISR线程TouchPanelpISR,用于等待和处理触摸屏事件 hTouchPanelEvent,它也是整个驱动程序中唯一的事件源。

(2)校准触摸屏基准参数

完成前面繁琐的工作后,驱动程序的各种功能就都已经准备就绪了,现在就可以实际操作触摸屏幕了。但一般来说,电阻式触摸屏需要校准,也就是说在驱动启动过程中MDD层要调用相应的DDSI函数来读取注册表中的校正数据校正触摸屏。理想情况下,校准程序只要在嵌入式设备初次加电测试过程中运行一次就可以了,参考值会被存储在非易失性存储器中,以免让用户在以后的加电启动期间再做校准。不过,高质量的触摸屏驱动程序是应该要向用户提供一种进入校准例程的途径,从而在由于温度漂移或其它因素造成校准不准确时进行重新校准。 在理想情况下,校正触摸屏基准只需两组原始数据,即在屏幕对角读取的最小和最大值。但在实际应用中,因为许多电阻式触摸屏存在明显的非线性,如果只在最小和最大值之间简单的插入位置数值会导致驱动程序非常的不精确。因此,在WinCE中需要获取多个校准点,常用的校准点数量为5个。

 方法是:①首先驱动程序在函数DdsiTouchPanelGetDeviceCaps 中设置校准点的个数;②是系统在 TouchDriverCalibrationPointGet中获取每个校准点的屏幕坐标;③是在屏幕界面的校准点坐标处显示一个位置符号,用户需要精确地在位置符号按下触摸屏;④驱动程序通过TouchPanelReadCalibrationPoint函数读取相应的触摸屏坐标值;⑤然后再开始下一个校准点,直到循环设定的次数后将采集到的触摸屏坐标值和校准点屏幕坐标送到TouchPanelSetCalibration函数中进行处理,该函数将产生校准基准参数。校准完成之后,触摸屏便可以开始正常的操作了。

 (3)判断屏幕是否被触摸

一旦完成了触摸屏硬件设置、初始化和基准参数校准后,接下来就需要用一种可靠的方法来判断屏幕是否被触摸了。WinCE提供了屏幕是否被触摸的检测机制,而且当触摸事件发生时还可选择是否中断主处理器。判断屏幕是否被触摸的驱动程序的函数名叫WaitForTouchState()。当屏幕被初次触摸时唤醒主机的中断,称为PEN_DOWN中断。这样做可以让驱动程序在屏幕没有被触摸时中断自己的执行,而不消耗任何CPU资源,而一旦用户触摸屏幕,驱动程序就被唤醒并进入转换模式。

 当被唤醒后就有一组模数数据等待转换并产生中断信号。中断是硬件与软件打交道的重要方法,所以大多数驱动程序都涉及到中断处理。就中断处理而言, WinCE采用了一种独特的方法。它将中断处理分为两步:中断服务例程(ISR)和中断服务线程(IST)。具体来讲就是把每个硬件的设备中断请求 (IRQ) 和一个ISR 联系起来,当一个中断发生并未被屏蔽时,内核调用该中断注册的ISR。因为ISR 运行于内核模式,所以应该被设计得尽可能的短,ISR 的基本职责是引导内核调度和启动合适的IST。IST 在设备驱动程序软件模块中编写,它从硬件获取或向硬件发送数据和控制代码,并进一步处理设备中断。

  WinCE触摸屏驱动程序是采用中断方式对触摸笔的按下状态进行检测,当检测到触摸笔按下时产生的中断,就会触发一个事件通知一个工作线程开始采集数据。同时,驱动将打开一个硬件定时器,只要检测到触摸笔仍然在按下状态,将定时触发同一个事件通知这个工作线程继续采集数据,直到触摸笔抬起后关闭该定时器。简单的说,就是驱动程序会同时采用触摸屏中断和定时器中断这两个中断源。目的在于不仅可以监控触摸笔按下和抬起状态,而且可以检测触摸笔按下时的拖动轨迹。触摸屏中断的两个逻辑中断分别是:SYSINTR_TOUCH是用于触摸笔点击触摸屏时产生相应的中断;SYSINTR_TOUCH_CHANGE 则用于触摸笔离开时产生相应的中断。

在理想情况下,校正触摸屏基准只需两组原始数据,即在屏幕对角读取的最小和最大值。但在实际应用中,因为许多电阻式触摸屏存在明显的非线性,如果只在最小和最大值之间简单的插入位置数值会导致驱动程序非常的不精确。因此,在WinCE中需要获取多个校准点,常用的校准点数量为5个。

方法是:①首先驱动程序在函数DdsiTouchPanelGetDeviceCaps 中设置校准点的个数;②是系统在 TouchDriverCalibrationPointGet中获取每个校准点的屏幕坐标;③是在屏幕界面的校准点坐标处显示一个位置符号,用户需要精确地在位置符号按下触摸屏;④驱动程序通过TouchPanelReadCalibrationPoint函数读取相应的触摸屏坐标值;⑤然后再开始下一个校准点,直到循环设定的次数后将采集到的触摸屏坐标值和校准点屏幕坐标送到TouchPanelSetCalibration函数中进行处理,该函数将产生校准基准参数。校准完成之后,触摸屏便可以开始正常的操作了。
 
相关资讯
全球芯链共融:新质生产力驱动工业数字化转型新格局

2025年5月14日,全球半导体分销巨头大联大控股在深圳成功举办以「新质工业·引领未来」为主题的峰会,汇聚英飞凌、意法半导体、瑞芯微等16家顶尖原厂及逾500名行业精英。面对全球制造业智能化、低碳化转型浪潮,此次峰会聚焦人工智能、边缘计算、电力电子等新质生产力的技术融合,通过主论坛、分论坛及技术展区三大板块,全方位展示从芯片设计到系统集成的全产业链创新方案。中国工业增加值连续三年稳步增长(2023年4.6%、2024年5.7%、2025年一季度6.5%),印证了“新质工业时代”的全面开启。大联大中国区总裁沈维中在开幕致辞中强调,中国制造业正以技术韧性重构全球供应链,而半导体技术的全链路赋能将成为驱动产业升级的核心引擎。

体积缩小37.7%!看LM-R2S系列如何重塑工业电源格局

根据金升阳官方技术白皮书数据显示,其最新发布的LM-R2S系列机壳开关电源通过8项核心技术创新,实现了工业供电设备在功率密度、环境耐受性及能效表现的三维突破。作为LM-R2系列的迭代产品,该系列解决了传统工业电源在设备小型化与复杂工况适配性之间的矛盾,为智能制造升级提供了高可靠性的供电保障。

存储器市场回暖驱动威刚科技2025年第一季业绩显著增长

2025年第一季度,全球存储器市场迎来关键转折点。DRAM与NAND Flash现货价自2月止跌回升,带动行业库存去化加速,需求端逐步回温。威刚科技董事长陈立白指出,存储器原厂自2024年末起减产调控供给,叠加AI服务器、智能终端等新兴应用需求增长,推动市场价格走出低谷。根据TrendForce数据,尽管此前预测Q1合约价可能下跌,但实际现货市场受备货动能及库存策略影响,价格反弹超预期,成为威刚业绩增长的直接推力。

全大核架构革新旗舰体验 天玑9400e芯片深度解析

MediaTek于5月14日正式推出天玑9400e旗舰移动平台。作为天玑系列的全新力作,该芯片凭借全大核架构设计、第三代4nm制程工艺及多项创新技术,在计算性能、能效管理和AI应用领域实现突破性进展,为智能手机用户提供更卓越的游戏、影像与通信体验。

韩国半导体出口突破116亿美元:存储芯片涨价与HBM需求推高增长

根据韩国产业通商资源部5月14日发布的《2025年4月ICT进出口趋势》报告,韩国4月信息通信技术(ICT)出口额达189.2亿美元,同比增长10.8%,创下有记录以来4月份的最高值。同期贸易顺差为76.1亿美元,主要得益于半导体等高附加值产品的强劲表现。然而,对华、对美两大核心市场的出口增速显著放缓,反映出全球贸易政策不确定性的深远影响。