基于嵌入式技术的智能仪器触摸屏接口设计.docVIP

基于嵌入式技术的智能仪器触摸屏接口设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于嵌入式技术的智能仪器触摸屏接口设计 0 引言 在现代化生产中,为了确保机械设备安全可靠地运行,通常要采用适宜的仪器仪表,利用故障诊断技术及时发现故障,并采取合理的维修或保护措施来排除故障,预防和避免事故的发生。基于对仪器尺寸、便携性和操作方便性的考虑,在工业领域如煤炭、钢铁、冶金、电力、化工等行业中大量的仪器仪表和设备,都逐渐选用触摸屏作为系统的输入设备。 针对这一情况,作者在开发面向机械故障诊断的智能仪表过程中,对触摸屏输入接口进行了研究。设计了四线电阻式触摸屏与PXA255 处理器的接口电路,分析了Linux框架下的字符设备驱动程序设计原理,完成了触摸屏的接口驱动程序开发,并设计了用触摸屏作为输入设备的MiniGUI用户程序。触摸屏作为仪器的输入设备,人机交互直截了当,大大方便了现场操作人员的使用。1 硬件结构和工作原理 依据工作原理和传输介质的不同,触摸屏主要分电阻式、电容式、红外线式以及表面声波式等多种类型。电阻式触摸屏是一块4层透明的复合薄膜屏,如图1所示。下面是玻璃或有机玻璃构成的基层;上面是一层外表面经过硬化处理从而光滑防刮的塑料层;中间是两层金属导电层,在导电层之间有许多细小的透明隔离点把两层隔开。两个金属导电层是触摸屏的工作面,其两端各涂有一条银胶,称为触摸屏工作面的一对电极。四线式触摸屏的X工作面和Y工作面分别加在两个导电层上,共有4根引出线,分别连到触摸屏的X 电极对和Y 电极对上。在触笔触摸屏幕时,两导电层在接触点处接触。电阻式触摸屏作为输入设备与显示屏配合使用时,其工作的实质就是通过测量X、Y两个方向电阻的分压, 确定触摸屏的触点坐标, 并将该坐标映射到显示屏坐标上,从而实现人机交互。由于电阻式触摸屏工作面与外界完全隔离, 受环境影响小, 所以具有不怕灰尘和水汽、稳定性高、不漂移等优点, 特别适合工业现场使用。 图1 电阻式触摸屏结构 在设计过程中, 选用ADS7843 作为触摸屏接口的AD转换芯片,它具有12 位的转换精度, 最大支持4 096 ×4 096点阵的LCD, 满足仪器设计要求。 仪器系统处理器选用Intel Xscale架构的PXA255处理器,用其GPIO口模拟SPI接口与ads7843进行通信。其接口原理如图2所示。ADS7843完成采集通道的切换和接触点处电压的采集, 其操作时序主要由控制字输入、电压采集和模数转换组成, 详见参考文献。只要在驱动程序中根据时序要求向D IN口发送控制字, 即可从DOUT处得到相应通道的采集结果。 图2 ADS7843与PXA255的接口电路 2 触摸屏接口驱动程序 Linux驱动程序是系统内核的一部分, 它把软件和硬件分离开来, 并向上提供应用程序访问硬件的通信接口, 向下管理保护系统硬件。触摸屏在Linux下被定义为字符设备, 其驱动主要完成触点电压的采集, 并向用户空间传递X 坐标、Y坐标和笔动作(按下、抬起或拖拽) 数据。当触笔按下时, ADS7843的11脚输出低电平, 触发PXA255通用IO口的12脚产生外部中断, 开启定时器, 实现触摸屏的动作。触摸屏的驱动流程如图3所示。 图3 触摸屏驱动程序结构流程 2.1 驱动的编写 触摸屏驱动在Linux框架下属于字符设备驱动。 驱动的入口函数为ads7843 _ ts_ init ( ) , 在该函数中,初始化I/O口, 注册笔中断和设备节点, 完成设备文件系统创建标准字符设备的初始化工作[ 8 - 10 ]。触摸屏设备操作的结构通过ads7843_ts_fop s定义。 STatic struct file_operatiONs ads7843_ts_fop s = { read: ads7843_ts_read, poll: ads7843_ts_poll, ioctl: ads7843_ts_ioctl, fasync: ads7843_ts_fasync, open: ads7843_ts_open, release: ads7843_ts_release, }; 这样, 只需根据实际需要正确定义该结构中的几个函数过程, 就可完成设备驱动的开发。当触摸屏设备被打开时, 首先执行到ads7843_ts_open ( )函数,并在该函数中, 初始化一个缓冲区, 用于存储坐标数据。在触摸屏被按下后, 系统首先触发中断, 在ads7843_ts_interrup t ( )中断程序中, 判断in_timehandle全局变量的状态, in_ timehandle在定时器函数中被改变, 也就是说进入中断后, 先经过定时器延时20ms, 完成触摸屏的软件去抖, 再判断触摸屏是否被按下。然后通过read_xy ()函数分别切换至X和Y 通道, 完成触点电压的AD转换, 并读取12 位坐标值。

文档评论(0)

qujim + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档