- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第16章 触摸屏设备驱动程序解析
第16章 触摸屏设备驱动程序 由于触摸屏设备使用简单、价格相对低廉,它的应用随处可见。在消费电子产品、工业控制系统、甚至航空领域都所有应用。随着触摸屏设备技术的成熟和价格的日益下降,在我们的日常生活中也经常使用带触摸屏的设备。例如银行的ATM机、机场的查询等级系统、手机、MP3、掌上电脑等。正因为触摸屏设备应用如此广泛,所以掌握触摸屏设备驱动程序的编写对驱动开发者来说非常重要。本章将对触摸屏设备驱动程序进行详细的介绍。 16.1 触摸屏设备工作原理 本节对触摸屏设备的工作原理进行了简要的介绍,并介绍了触摸屏设备的主要类型。其中重点介绍了电阻式触摸屏设备。这些都是写触摸屏设备驱动程序的基础,下面对这些主要内容分别进行介绍。 16.1.1 触摸屏设备概述 触摸屏作为一种最新的电脑输入设备,它是目前最简单、方便、自然的一种人机交互方式。它具有坚固耐用、反应速度快、节省空间、易于交流等许多优点。利用这种技术,用户只要用手指轻轻地碰计算机显示屏上的图符或文字就能实现对主机操作,从而使人机交互更为直截了当,这种技术大大方便了那些不懂电脑操作的用户。事实上,触摸屏是一个使多媒体信息系统改头换面的设备。它赋予多媒体系统以崭新的面貌,是极富吸引力的全新多媒体交互设备。 16.1.2 触摸屏设备的类型 从技术原理来区别触摸屏,可分将触摸屏分为五个种类:矢量压力传感技术触摸屏、电阻技术触摸屏、电容技术触摸屏、红外线技术触摸屏、表面声波技术触摸屏。 16.1.3 电阻式触摸屏 电阻触摸屏的屏体部分是一块与显示器表面相匹配的多层复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透明的导电层,上面再盖有一层外表面硬化处理、光滑防刮的塑料层,它的内表面也涂有一层透明导电层,在两层导电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔开绝缘。 16.2 触摸屏设备硬件结构 要完全理解触摸屏设备驱动程序,必须对触摸屏接口有所了解。本节针对S3C2440处理器的触摸屏接口,对触摸屏接口的硬件原理进行详细的讲述。 16.2.1 S3C2440触摸屏接口概述 S3C2440芯片支持触摸屏接口。这个触摸屏接口包括一个外部晶体管控制逻辑和一个模数转换器ADC。S3C2440芯片具有一个8通道的10位CMOS模数转换器(ADC)。它将输入的模拟信号转换为10位的二进制数字数据。在2.5MHz的A/D转换器频率下,最大转化速率可达到500KSPS。A/D转换器支持片上采样和保持功能,并支持掉电模式。 16.2.2 S3C2440触摸屏接口的工作模式 S3C2440触摸屏接口有4种工作模式。在不同的工作模式下,触摸屏设备完成不同的功能。在某些情况下,几种工作模式需要互相配合,才能够完成一定的功能。这4种工作模式分别是: 1.正常转换模式 2.等待中断模式 3.独立的X/Y位置转换模式 4.自动X/Y位置转换模式 16.2.3 S3C2440触摸屏设备寄存器 寄存器是主机控制设备的最主要方式之一。下面对触摸屏设备的相关寄存器进行详细的介绍,这些寄存器包括ADC控制寄存器、ADC触摸屏控制寄存器、ADC延时寄存器、ADC转换数据寄存器。在具体的代码中,遇到对这些寄存器的操作时,读者应该会过来对照本节的知识,以完整的领会程序的功能。 16.3 触摸屏设备驱动程序分析 Linux 2.6内核中已经实现了S3C2440处理器的触摸屏驱动程序。由于S3C2440与S3C2410的触摸屏硬件变化不大,所以稍微对S3C2410的触摸屏驱动进行改写,就能够得到S3C2440处理器的触摸屏驱动程序。本节将对这个驱动程序进行详细的分析,通过这个驱动程序的学习,希望读者能举一反三,写出其他更好的驱动。 16.3.1 触摸屏设备驱动程序组成 触摸屏设备驱动程序的初始化函数,退出函数,中断处理函数的关系如图所示。 16.3.2 S3C2440触摸屏驱动模块的加载和卸载函数 首先分析触摸屏设备驱动程序的初始化和退出,了解触摸屏设备驱动程序的加载和卸载函数的实现。 1.加载和卸载函数 2.触摸屏设备驱动驱动结构体 16.3.3 S3C2440触摸屏驱动模块的探测函数 当调用driver_register()函数注册成功驱动之后,内核会以s3c2410ts_driver中的name成员为依据,在系统中查找已经注册的具有相同name的设备,如果找到相应的设备,就调用s3c2410ts_driver中定义的探测函数probe()。 这里的probe()函数就是s3c2410ts_probe()。这个函数在触摸屏设备的初始化过程中,检查设备是否准备就绪、映射物理地址到虚拟地址、配置GPIO引脚、注册相应的中断等。 16.3.4 触摸屏设备配置 触摸屏设备接口和处理器芯片的
文档评论(0)