第16章触摸屏设备驱动程序_第1页
第16章触摸屏设备驱动程序_第2页
第16章触摸屏设备驱动程序_第3页
第16章触摸屏设备驱动程序_第4页
第16章触摸屏设备驱动程序_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第1616章章 触摸屏设备驱动程序触摸屏设备驱动程序由于触摸屏设备使用简单、价格相对低廉,它的应用随处由于触摸屏设备使用简单、价格相对低廉,它的应用随处可见。在消费电子产品、工业控制系统、甚至航空领域都所有应可见。在消费电子产品、工业控制系统、甚至航空领域都所有应用。随着触摸屏设备技术的成熟和价格的日益下降,在我们的日用。随着触摸屏设备技术的成熟和价格的日益下降,在我们的日常生活中也经常使用带触摸屏的设备。例如银行的常生活中也经常使用带触摸屏的设备。例如银行的ATM机、机机、机场的查询等级系统、手机、场的查询等级系统、手机、MP3、掌上电脑等。正因为触摸屏设、掌上电脑等。正因为触摸屏设备应用

2、如此广泛,所以掌握触摸屏设备驱动程序的编写对驱动开备应用如此广泛,所以掌握触摸屏设备驱动程序的编写对驱动开发者来说非常重要。本章将对触摸屏设备驱动程序进行详细的介发者来说非常重要。本章将对触摸屏设备驱动程序进行详细的介绍。绍。16.1 16.1 触摸屏设备工作原理触摸屏设备工作原理本节对触摸屏设备的工作原理进行了简要的介绍,并本节对触摸屏设备的工作原理进行了简要的介绍,并介绍了触摸屏设备的主要类型。其中重点介绍了电阻式触摸介绍了触摸屏设备的主要类型。其中重点介绍了电阻式触摸屏设备。这些都是写触摸屏设备驱动程序的基础,下面对这屏设备。这些都是写触摸屏设备驱动程序的基础,下面对这些主要内容分别进行

3、介绍。些主要内容分别进行介绍。16.1.1 16.1.1 触摸屏设备概述触摸屏设备概述触摸屏作为一种最新的电脑输入设备,它是目前最简单、触摸屏作为一种最新的电脑输入设备,它是目前最简单、方便、自然的一种人机交互方式。它具有坚固耐用、反应速度方便、自然的一种人机交互方式。它具有坚固耐用、反应速度快、节省空间、易于交流等许多优点。利用这种技术,用户只快、节省空间、易于交流等许多优点。利用这种技术,用户只要用手指轻轻地碰计算机显示屏上的图符或文字就能实现对主要用手指轻轻地碰计算机显示屏上的图符或文字就能实现对主机操作,从而使人机交互更为直截了当,机操作,从而使人机交互更为直截了当,这种技术大大方便了

4、这种技术大大方便了那些不懂电脑操作的用户。事实上,触摸屏是一个使多媒体信那些不懂电脑操作的用户。事实上,触摸屏是一个使多媒体信息系统改头换面的设备。它赋予多媒体系统以崭新的面貌,是息系统改头换面的设备。它赋予多媒体系统以崭新的面貌,是极富吸引力的全新多媒体交互设备。极富吸引力的全新多媒体交互设备。 16.1.2 16.1.2 触摸屏设备的类型触摸屏设备的类型从技术原理来区别触摸屏,可分将触摸屏分为五个种从技术原理来区别触摸屏,可分将触摸屏分为五个种类:矢量压力传感技术触摸屏、电阻技术触摸屏、电容技术类:矢量压力传感技术触摸屏、电阻技术触摸屏、电容技术触摸屏、红外线技术触摸屏、表面声波技术触摸屏

5、。触摸屏、红外线技术触摸屏、表面声波技术触摸屏。16.1.3 16.1.3 电阻式触摸屏电阻式触摸屏电阻触摸屏的屏体部分是一块与显示器表面相匹配的电阻触摸屏的屏体部分是一块与显示器表面相匹配的多层复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有多层复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透明的导电层,上面再盖有一层外表面硬化处理、光滑一层透明的导电层,上面再盖有一层外表面硬化处理、光滑防刮的塑料层,它的内表面也涂有一层透明导电层,在两层防刮的塑料层,它的内表面也涂有一层透明导电层,在两层导电层之间有许多细小(小于千分之一英寸)的透明隔离点导电层之间有许多细小(小于千分之一英寸)的透

6、明隔离点把它们隔开绝缘。把它们隔开绝缘。16.2 16.2 触摸屏设备硬件结构触摸屏设备硬件结构要完全理解触摸屏设备驱动程序,必须对触摸屏接口要完全理解触摸屏设备驱动程序,必须对触摸屏接口有所了解。本节针对有所了解。本节针对S3C2440处理器的触摸屏接口,对触摸处理器的触摸屏接口,对触摸屏接口的硬件原理进行详细的讲述。屏接口的硬件原理进行详细的讲述。16.2.1 S3C244016.2.1 S3C2440触摸屏接口概述触摸屏接口概述S3C2440芯片支持触摸屏接口。这个触摸屏接口包括一芯片支持触摸屏接口。这个触摸屏接口包括一个外部晶体管控制逻辑和一个模数转换器个外部晶体管控制逻辑和一个模数转

7、换器ADC。S3C2440芯芯片具有一个片具有一个8通道的通道的10位位CMOS模数转换器(模数转换器(ADC)。它将)。它将输入的模拟信号转换为输入的模拟信号转换为10位的二进制数字数据。在位的二进制数字数据。在2.5MHz的的A/D转换器频率下,最大转化速率可达到转换器频率下,最大转化速率可达到500KSPS。A/D转换器支持片上采样和保持功能,并支持掉电模式。转换器支持片上采样和保持功能,并支持掉电模式。16.2.2 S3C244016.2.2 S3C2440触摸屏接口的工作模式触摸屏接口的工作模式S3C2440触摸屏接口有触摸屏接口有4种工作模式。在不同的工作模种工作模式。在不同的工作

8、模式下,触摸屏设备完成不同的功能。在某些情况下,几种工式下,触摸屏设备完成不同的功能。在某些情况下,几种工作模式需要互相配合,才能够完成一定的功能。这作模式需要互相配合,才能够完成一定的功能。这4种工作种工作模式分别是:模式分别是:1正常转换模式正常转换模式2等待中断模式等待中断模式3独立的独立的X/Y位置转换模式位置转换模式4自动自动X/Y位置转换模式位置转换模式16.2.3 S3C244016.2.3 S3C2440触摸屏设备寄存器触摸屏设备寄存器寄存器是主机控制设备的最主要方式之一。下面对触寄存器是主机控制设备的最主要方式之一。下面对触摸屏设备的相关寄存器进行详细的介绍,这些寄存器包括摸

9、屏设备的相关寄存器进行详细的介绍,这些寄存器包括ADC控制寄存器、控制寄存器、ADC触摸屏控制寄存器、触摸屏控制寄存器、ADC延时寄存延时寄存器、器、ADC转换数据寄存器。在具体的代码中,遇到对这些转换数据寄存器。在具体的代码中,遇到对这些寄存器的操作时,读者应该会过来对照本节的知识,以完整寄存器的操作时,读者应该会过来对照本节的知识,以完整的领会程序的功能。的领会程序的功能。16.3 16.3 触摸屏设备驱动程序分析触摸屏设备驱动程序分析Linux 2.6内核中已经实现了内核中已经实现了S3C2440处理器的触摸屏驱处理器的触摸屏驱动程序。由于动程序。由于S3C2440与与S3C2410的触

10、摸屏硬件变化不大,的触摸屏硬件变化不大,所以稍微对所以稍微对S3C2410的触摸屏驱动进行改写,就能够得到的触摸屏驱动进行改写,就能够得到S3C2440处理器的触摸屏驱动程序。本节将对这个驱动程序处理器的触摸屏驱动程序。本节将对这个驱动程序进行详细的分析,通过这个驱动程序的学习,希望读者能举进行详细的分析,通过这个驱动程序的学习,希望读者能举一反三,写出其他更好的驱动。一反三,写出其他更好的驱动。16.3.1 16.3.1 触摸屏设备驱动程序组成触摸屏设备驱动程序组成触摸屏设备驱动程序的初始化函数,退出函数,中断触摸屏设备驱动程序的初始化函数,退出函数,中断处理函数的关系如图所示。处理函数的关

11、系如图所示。16.3.2 S3C244016.3.2 S3C2440触摸屏驱动模块的加载和卸触摸屏驱动模块的加载和卸载函数载函数首先分析触摸屏设备驱动程序的初始化和退出,了解首先分析触摸屏设备驱动程序的初始化和退出,了解触摸屏设备驱动程序的加载和卸载函数的实现。触摸屏设备驱动程序的加载和卸载函数的实现。1加载和卸载函数加载和卸载函数2触摸屏设备驱动驱动结构体触摸屏设备驱动驱动结构体16.3.3 S3C244016.3.3 S3C2440触摸屏驱动模块的探测函数触摸屏驱动模块的探测函数当调用当调用driver_register()函数注册成功驱动之后,内核会以函数注册成功驱动之后,内核会以s3c

12、2410ts_driver中的中的name成员为依据,在系统中查找已经注成员为依据,在系统中查找已经注册的具有相同册的具有相同name的设备,如果找到相应的设备,就调用的设备,如果找到相应的设备,就调用s3c2410ts_driver中定义的探测函数中定义的探测函数probe()。这里的这里的probe()函数就是函数就是s3c2410ts_probe()。这个函数在触。这个函数在触摸屏设备的初始化过程中,检查设备是否准备就绪、映射物理摸屏设备的初始化过程中,检查设备是否准备就绪、映射物理地址到虚拟地址、配置地址到虚拟地址、配置GPIO引脚、注册相应的中断等。引脚、注册相应的中断等。16.3.

13、4 16.3.4 触摸屏设备配置触摸屏设备配置触摸屏设备接口和处理器芯片的引脚连接如图所示,从图中触摸屏设备接口和处理器芯片的引脚连接如图所示,从图中可以看出触摸屏接口和处理器之间的关系。明白这些关系,是驱可以看出触摸屏接口和处理器之间的关系。明白这些关系,是驱动程序设计的基础,下面对这些关系进行详细的分析。动程序设计的基础,下面对这些关系进行详细的分析。16.3.5 16.3.5 触摸屏设备中断处理函数触摸屏设备中断处理函数当触摸屏设备驱动的探测函数当触摸屏设备驱动的探测函数s3c2410ts_probe()执行完执行完成之后,驱动程序处于等待状态。在等待状态中,驱动程序成之后,驱动程序处于

14、等待状态。在等待状态中,驱动程序可以接收两个中断信号,并触发中断处理函数。这两个中断可以接收两个中断信号,并触发中断处理函数。这两个中断是触摸屏中断(是触摸屏中断(IRQ_TC)和)和ADC中断(中断(IRQ_ADC)。在)。在s3c2410ts_probe()函数中,调用函数中,调用request_irq()函数注册了两函数注册了两个中断,现对这两个中断进行详细的讲解。个中断,现对这两个中断进行详细的讲解。1stylus_updown()函数函数2touch_timer_fire()函数函数3stylus_action()函数函数4touch_timer定时器定时器16.3.6 S3C244

15、016.3.6 S3C2440触摸屏驱动模块的触摸屏驱动模块的removeremove函函数数remove()函数是函数是Linux设备驱动程序中一个非常重要的设备驱动程序中一个非常重要的函数,这个函数实现了与函数,这个函数实现了与probe()函数相反的功能。体现了函数相反的功能。体现了Linux内核中,资源分配和释放的思想。资源应该在使用时内核中,资源分配和释放的思想。资源应该在使用时分配,在不使用时释放。触摸屏设备驱动程序的分配,在不使用时释放。触摸屏设备驱动程序的remove()函函数由数由s3c2410ts_remove()函数来实现。这个函数中释放了申函数来实现。这个函数中释放了申

16、请的中断、时钟、内存等。请的中断、时钟、内存等。16.4 16.4 测试触摸屏驱动程序测试触摸屏驱动程序测试触摸屏驱动程序是否工作正确,最简单的一种方测试触摸屏驱动程序是否工作正确,最简单的一种方法是在驱动程序中加入一些打印坐标的信息,从这些坐标中法是在驱动程序中加入一些打印坐标的信息,从这些坐标中分析触摸屏设备驱动程序是否工作正常。分析触摸屏设备驱动程序是否工作正常。touch_timer_fire()函数会不断的调用去读输入缓冲区中的数据,在函数会不断的调用去读输入缓冲区中的数据,在touch_timer_fire()函数中加入第函数中加入第14到到21行,就能够打印出调行,就能够打印出调试信息。试信息。16.5 16.5 小结小结本章讲解了触摸屏设备驱动程序的实例。首先对触摸本章讲解了触摸屏设备驱动程序的实例。首先对触摸屏设备的硬件原型

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论