欢迎光临94开元官方网站登录有限公司官网!
94开元官方网站登录10年专注高精度恒温恒湿设备定制生产厂家
全国咨询热线:0130-50861602
解决方案
联系我们
94开元官方网站登录有限公司
全国免费服务热线:0130-50861602
手机:18971564412
邮箱:admin@mosaicaservices.com
地址 :湖北省襄阳市芗城区都德大楼358号
联系人:陈先生
您的位置: 主页 > 解决方案 >
解决方案

基于ARM处理器S3C2440及Linux的I2C触摸屏设计

时间:2024-05-01 06:21:01 来源:94开元官方网站登录 点击:

本文摘要:0章节 随着计算机相关技术的发展,ARM嵌入式系统受到更加普遍的应用于,与人们生活的融合也更加密切。触摸屏设备因其友好的嵌入式性,操作者便利灵活性,输入速度慢,被普遍的应用于这种嵌入式领域中。嵌入式Linux系统具备研发源代码、内核平稳、可削减性等特点,更有着众多商业公司和自由软件开发者的目光,沦为嵌入式系统领域不可或缺的操作系统之一。 触摸屏是一种输出设备,操作者非常简单易学,可靠性低,不占到额外的空间,是最常用的便携式系统的输出设备。

94开元官方网站登录

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座标同理。若用于的是320×240的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总线模块触摸屏设计,使用的是处置取样数据的方法,同时运用了改良的校准方法,从而使该触摸屏驱动更加能符合实际的拒绝。


本文关键词:94开元官方网站登录,基于,ARM,处理器,S3C2440,及,Linux,的,I2C,触摸屏

本文来源:94开元官方网站登录-www.mosaicaservices.com

在线客服
联系方式

热线电话

18971564412

上班时间

周一到周五

公司电话

0130-50861602

二维码
线