0章节 随着计算机相关技术的发展,ARM嵌入式系统受到更加普遍的应用于,与人们生活的融合也更加密切。触摸屏设备因其友好的嵌入式性,操作者便利灵活性,输入速度慢,被普遍的应用于这种嵌入式领域中。
嵌入式Linux系统具备研发源代码、内核平稳、可削减性等特点,更有着众多商业公司和自由软件开发者的目光,沦为嵌入式系统领域不可或缺的操作系统之一。触摸屏是一种输出设备,操作者非常简单易学,可靠性低,不占到额外的空间,是最常用的便携式系统的输出设备。
尤其是电阻式触摸屏,它结构非常简单,成本低,透明效果好,工作环境和外界几乎隔绝,不怕灰尘和水气,同时具备低解析度、高速传输反应、一次校正、稳定性低、不飘移等特点,因而被普遍用作工业掌控领域。 1电阻式触摸屏的工作原理 触摸屏加装在显示屏的前端,主要由触摸屏检测部件和触摸屏控制器两部分构成。按照工作原理和传输信息的介质有所不同,触摸屏可分成电阻式、电容感应式、红外线式以及表面声波式。
其中的电阻式触摸屏是在表面保护层和基层之间覆着2层半透明导电层氧化铟,而这2个导电层分别对应x、y轴,它们之间有微小半透明绝缘颗粒绝缘。当物品按在触摸屏上时,不会产生压力,从而使触摸屏两导电层接上,一旦触摸屏检测部件监测到用户的触碰方位,就将取得的方位信息送到触摸屏控制器TSC2007,并对该写出信号展开处置,将电压信号转换成数字信号,同时以中断的方式送往S3C2440处理器,计算出来出有触点座标。 2硬件结构 TSC2007是美国德州仪器(TI)公司发售的新一代4线制触摸屏控制器,它在与触摸屏因应用于时,一旦检测到笔或手指点触碰在屏上,可很快获得该点的方位信号,从而超过在触摸屏表面上传输速率的目的。 TSC2007是典型的逐步迫近式A/D变换器,其结构以电容再行产于为基础,包括了采样/维持功能。
TSC2007的插槽与TPSC2003的插槽几乎相容,具备片内温度测量、触碰压力测量和预处理三个功能。TSC2007的I2C模块,以标准模式、高速模式和超高速模式展开数据传输与通讯。
为了与其他ARM芯片相容,设计中没用于S3C2440内置的A/D地下通道,而是使用了外阔控制器TSC2007的方法,通过I2C总线方式与S3C2440通信。由于在嵌入式系统I2C总线中,S3C2440是总线上的主机,TSC2007就是指机,而I2C系统有2个插槽,分别是串行数据线SDA和串行时钟线SCL。因此,设计中S3C2440的GPE14和GPE15分别作为I2C总线的SCL和SDA线,其触摸屏控制器模块电路如图1右图,图中的SDA和SCL线都是双向的。
3触摸屏的驱动 在Linux系统中,设备驱动程序是一组涉及函数的子集,它还包括设备服务子程序和中断处理程序。其中的设备服务子程序包括了所有与设备涉及的代码,每个设备服务子程序只处置一种设备或者密切涉及的设备,从设备牵涉到的软件中拒绝接受抽象化的命令并继续执行它。当继续执行一条催促时,具体操作是根据控制器对驱动程序获取的模块,并利用中断机制去调用中断服务子程序因应设备来已完成这个催促。
设备驱动程序利用结构file_operations与文件系统联系一起,设备的各种操作者的入口函数放到结构file_operations中,其中还包括open()、release()、read()和write()等模块,从而修改了驱动程序的撰写工作。这样,应用程序显然不用考虑到操作者的是设备还是普通文件,可不准视作文件来处置,具备十分明晰统一的I/O模块。其触摸屏的file_operations结构定义如下: 本结构的主要起到是为有所不同的设备获取完全一致的模块。
如在应用程序中,对有所不同设备展开读书操作者都用于read函数,写出操作者则都用于write函数。因此,撰写触摸屏驱动的实际工作并不简单。 3.1驱动工作流程 首先初始化触摸屏控制器,然后初始化脉宽调制计时器(PWMTIMER),可以自由选择计时器4为时钟,定义10ms中断1次,以获取触摸屏取样时间基准,即10ms触摸屏取样1次。而后同构触摸屏中断向量和定时器中断向量到号召程序,触摸屏中断处理程序是辨别触摸屏否被按下了,若触摸屏被按下,则给全局变量Flag_Trouch赋值为Touch_Down,否则赋值为Touch_Up。
若计时器中断处理程序辨别Flag_Touch被赋值为Touch_Down,则给全局变量StartSample置位,以掌控触摸屏取样。然后系统通过S3C2440_get_xy()取得取样值,对获得的触摸屏的数据展开处置。
接下来是对触摸屏的校准,最后是中断的获释和登记模块的修理。其明确的触摸屏驱动工作流程图如图2右图。
3.2设备初始化模块 设备初始化模块的主要功能是:初始化设备、向内核登记设备等。明确构建函数如下: 初始化模块利用内核获取的request_irq函数,将触碰笔的按下与摇动的中断号展开注册,从而将中断号与中断服务函数联系一起;利用devfs_register_chrdev函数,向系统登记一个字符型设备;最后登记定时器中断,用来掌控触摸屏的数据取样。 3.3取样值的取得 首先启动TSC2007的A/D切换。
等候一段时间后,调用S3C2440_get_xy()函数,这个函数的功能是取得触摸屏的方位,首先从TSC2007的一个地下通道取得x的坐标值,然后在从另一个地下通道取得y的坐标值,辨别回到触碰点坐标值否在有效地范围内,如果在有效地范围内则取样标志ts_pressure=1,如果不出有效地范围之内,其取样标志ts_pressure=0。read函数中通过调用copy_to_user(buffer,dbuf,length),可将内核空间数据拷贝到用户空间。 3.4取样值的处置 函数Touch_CoordinateConversion已完成触摸屏取样值转换成表明座标,其中TOUCH_MAX_Y和TOUCH_MIN_Y是触摸屏X座标取样值的仅次于和最小值;X座标同理。
若用于的是320240的TFT屏,则Y座标的切换程序如下: 3.5触摸屏的校准 在实际的应用于中,一般来说触摸屏是作为与显示屏因应用于的输出设备,必须从触摸屏取样获得的座标与屏幕的表明座标做到一个同构。文中触摸屏设计使用的是三点校准的方法,与两点校准比起,三点校准的模型考虑到变相和转动,更加相似实际情况。
应用于中首先挑选3个距离很远且不出一条线上的3个作为校准输人的独立国家取样点,它们适当的触摸屏取样座标是P0(x0,y0)、P1(x1,y1)、P2(x2,y2),表明座标是PD0(xD0,yD0)、PD1(xDl,yD1)、PD2(xD2,yD2)。直角坐标平面的两个点P和PD,定义P为触摸屏空间的座标点,PD为显示屏空间的座标点,P可以经过转动、比例和旋转获得PD座标。
PD和P点之间不存在一次线性关系符合:xD=Ax+By+C,yD=Dx+Ey+F。对于同一个设备,其中的A、B、C、D、E、F为常数,称作校准常数,故只需在触摸屏校准时,求解这6个常数,就可以构建触摸屏空间到表明空间的切换。 3.6中断获释和登记模块的修理 设计中通过调用s3c2440_ts_cleanup_module0来构建中断的获释和设备的修理,分别将它们获释在初始化过程中,其申请人的IRQ_TIMER4、IRQ_ADC_DONE、IRQ_TC的中断和字符设备的接口函数devfs_register_chrdev()明确如下: 4结束语 文中基于S3C2440的触摸屏驱动研发,考虑到与其他的ARM芯片兼容性,并没用于ARM自带的A/D地下通道,而是外扩了触摸屏控制器TSC2007。对TSC2007的初始化,主要是初始化TSC2007与S3C2440的I2C模块相连,在驱动流程中,如果触碰笔按下就入人中断处理程序,加载x,y座标,在取样函数中设置了一个copy_to_user(buffer,dbuf,length)函数,将从触摸屏倒数测量的数据,送到存储区。
结合实际的硬件平台,这个基于嵌入式Linux操作系统下I2C总线模块触摸屏设计,使用的是处置取样数据的方法,同时运用了改良的校准方法,从而使该触摸屏驱动更加能符合实际的拒绝。
本文关键词:JN江南体育,jn江南·体育登录入口,JN江南·体育网页版,江南app体育官网登录,JNTY江南官方体育app
本文来源:JN江南体育-www.282823.com