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

发布者:轻松自在最新更新时间:2014-11-19 来源: 21ic关键字:智能仪器  触摸屏  Xscale  PXA255 手机看文章 扫描二维码
随时随地手机看文章

0 引言

在现代化生产中,为了确保机械设备安全可靠地运行,通常要采用适宜的仪器仪表,利用故障诊断技术及时发现故障,并采取合理的维修或保护措施来排除故障,预防和避免事故的发生。基于对仪器尺寸、便携性和操作方便性的考虑,在工业领域如煤炭、钢铁、冶金、电力、化工等行业中大量的仪器仪表和设备,都逐渐选用触摸屏作为系统的输入设备。

针对这一情况,作者在开发面向机械故障诊断的智能仪表过程中,对触摸屏输入接口进行了研究。设计了四线电阻式触摸屏与PXA255 处理器的接口电路,分析了Linux框架下的字符设备驱动程序设计原理,完成了触摸屏的接口驱动程序开发,并设计了用触摸屏作为输入设备的MiniGUI用户程序。触摸屏作为仪器的输入设备,人机交互直截了当,大大方便了现场操作人员的使用。

1 硬件结构和工作原理

依据工作原理和传输介质的不同,触摸屏主要分电阻式、电容式、红外线式以及表面声波式等多种类型。电阻式触摸屏是一块4层透明的复合薄膜屏,如图1所示。下面是玻璃或有机玻璃构成的基层;上面是一层外表面经过硬化处理从而光滑防刮的塑料层;中间是两层金属导电层,在导电层之间有许多细小的透明隔离点把两层隔开。两个金属导电层是触摸屏的工作面,其两端各涂有一条银胶,称为触摸屏工作面的一对电极。四线式触摸屏的X工作面和Y工作面分别加在两个导电层上,共有4根引出线,分别连到触摸屏的X 电极对和Y 电极对上。在触笔触摸屏幕时,两导电层在接触点处接触。电阻式触摸屏作为输入设备与显示屏配合使用时,其工作的实质就是通过测量X、Y两个方向电阻的分压, 确定触摸屏的触点坐标, 并将该坐标映射到显示屏坐标上,从而实现人机交互。由于电阻式触摸屏工作面与外界完全隔离, 受环境影响小, 所以具有不怕灰尘和水汽、稳定性高、不漂移等优点, 特别适合工业现场使用。

图1 电阻式触摸屏结构

图1 电阻式触摸屏结构

在设计过程中, 选用ADS7843 作为触摸屏接口的AD转换芯片,它具有12 位的转换精度, 最大支持4 096 ×4 096点阵的LCD, 满足仪器设计要求。

仪器系统处理器选用Intel Xscale架构的PXA255处理器,用其GPIO口模拟SPI接口与ads7843进行通信。其接口原理如图2所示。ADS7843完成采集通道的切换和接触点处电压的采集, 其操作时序主要由控制字输入、电压采集和模数转换组成, 详见参考文献。只要在驱动程序中根据时序要求向D IN口发送控制字, 即可从DOUT处得到相应通道的采集结果。

图2 ADS7843与PXA255的接口电路

图2 ADS7843与PXA255的接口电路

2 触摸屏接口驱动程序

Linux驱动程序是系统内核的一部分, 它把软件和硬件分离开来, 并向上提供应用程序访问硬件的通信接口, 向下管理保护系统硬件。触摸屏在Linux下被定义为字符设备, 其驱动主要完成触点电压的采集, 并向用户空间传递X 坐标、Y坐标和笔动作(按下、抬起或拖拽) 数据。当触笔按下时, ADS7843的11脚输出低电平, 触发PXA255通用IO口的12脚产生外部中断, 开启定时器, 实现触摸屏的动作。触摸屏的驱动流程如图3所示。

图3 触摸屏驱动程序结构流程

图3 触摸屏驱动程序结构流程[page]

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 位坐标值。

static void ads7843_ ts_ interrup t ( int IRq, void 3 dev_ id,

struct p t_regs3 regs)

{

sp in_lock_irq (&tsdevlock) ;

if ( in_timehandle 》 0)

{

sp in_unlock_irq (&tsdevlock) ;

return;

}

disable_irq ( IRQ_GPIO_ADS7843) ;

ads7843_ts_starttimer ( ) ;

sp in_unlock_irq (&tsdevlock) ;

}

应用程序调用read ( ) 函数时, 进入驱动的ads7843_ts_read ( )接口函数。在该接口函数中获取采样结果, 判断是否要对坐标进行校准, 将最终结果写入到缓冲区中,并通过copy_to_user ( )函数将其从内核空间复制到用户空间, 以使应用程序能够使用。在ads7843_ts_read ( )函数中采用了非阻塞型操作, 使得在没有数据到达的时候立即返回, 然后用异步触发fasync ( )来通知数据的到来。ads7843 _ ts_poll ()函数用于驱动程序的非阻塞操作, ads7843_ts_fasync ( )函数用于驱动异步触发。ads7843_ts_ioctl ( )函数中, 提供了可从用户态控制的参数, 如触摸屏是否在驱动中校准、屏幕的最大最小坐标值等。ads7843_ts_release( )函数用来关闭触摸屏设备。

2.2 触摸屏的校准

在仪器开发过程中,触摸屏作为输入设备与LCD配合使用。为了能使从触摸屏采样得到坐标与屏幕的显示坐标对应,还需要做一个映射, 也就是要对触摸屏进行校准。如图4所示, 所用的触摸屏和液晶屏都是标准的矩形, 只要安装合理,可以认为触摸屏的X 方向坐标只与显示屏X 方向相关, Y方向坐标只与显示屏的Y方向相关。假设显示屏的分辨率是W ×H, 显示区域的左上角对应的触摸屏采样坐标是( x1 , y1 ) ,右下角对应的坐标是( x2 , y2 ) , 那么触摸屏上任意一点采样坐标( x, y) 与显示屏坐标( xd , yd )的对应关系可以按照如下公式计算:

这样, 在测得( x1 , y1 )和( x2 , y2 ) 点触摸屏的采样值后, 利用上述公式编制校准函数,在触摸屏工作的过程中, 计算出实际触摸点对应的显示坐标,完成触摸屏的校准。

图4

图4 触摸屏的校准

 3 触摸屏用户应用程序

创建的Linux设备文件系统触摸屏节点为/dev/ts.在应用程序中,可以像打开文件一样用open函数打开设备文件, 然后用read ()函数读取由驱动传递到用户空间的数据。仪器应用程序的开发采用MiniGU I进行, MiniGU I是由北京飞漫公司开发, 可应用于实时嵌入式系统中的轻量级图形用户界面支持系统。其函数接口与Windows SDK类似, 开发方便。

MiniGU I的输入抽象层( IAL: Input Abstract Layer)提供了对触摸屏、鼠标等输入设备的丰富支持, 并支持PXA255处理器平台。只要经过简单的设置就可以在应用程序中使用触摸屏。配置安装MiniGU I时, 使用22enable2px255bial项, 由于在安装MiniGU I时采用了内嵌资源的静态编译方式, 所以在编译之前, 需在MiniGU I的src / sysres/目录下建立mgetc2pxa1c 文件,并在其中用下面语句设置系统参数, 将触摸屏设为输入设备。

static char * SYSTEM_VALUES[ ] = { “ fbcon” ,“ PX255B” , “ /dev/ ts” , “ none” };

MiniGU I对触摸屏输入的处理方式如图5 所示。

图5 MiniGU I中的触摸屏输入

图5 MiniGUI 中的触摸屏输入

MiniGUI 通过触摸屏设备驱动程序接收原始的输入数据, 把它转换为MiniGUI 抽象的触摸屏事件和数据。

相关的底层事件处理例程把这些触摸事件转换为上层的触摸消息, 放到相应的消息队列中。应用程序通过消息循环获取这些消息, 交由窗口过程处理。编制针对触摸屏的应用程序时,需要做的只是在窗口接收到诸如MSG _LBUTTONDOWN 等触屏消息时, 调用相应的语句, 完成预期操作。

4 结论

嵌入式智能仪器触摸屏接口增强了仪器系统的人机交互功能,方便了操作人员的使用; 接口电路和驱动程序的模块化方便了仪器的后续改进和新产品的开发,并可根据需要移植应用到各种不同场合。设计的触摸屏接口已经成功应用在故障诊断巡检仪器中,其工作稳定,运行可靠,具有很好的实用价值。

关键字:智能仪器  触摸屏  Xscale  PXA255 引用地址:基于嵌入式技术的智能仪器触摸屏接口设计

上一篇:嵌入式网络智能视频监控系统设计与实现
下一篇:采用Jupiter双以太网处理器的嵌入式网关平台

推荐阅读最新更新时间:2024-03-16 13:46

住友电工集团发布新一代TYPE-81C 触摸屏光纤熔接机
日本东京--(美国商业资讯)--住友电工集团(TOKYO:5802) (ISIN:JP3407400005)发布消息称:新一代纤芯直视型TYPE-81C 光纤熔接机即将投放市场。该机器是秉承 “任何环境下超速熔接”的概念开发研制的,同时兼具小型,轻量,坚固的特点,TYPE-81C 实现最迅捷的熔接过程。触摸屏操作和通过英特网实现的远程技术支持为用户提供了极大的方便,操作更加简单,服务更多样灵活。 住友电工集团在中国的子公司-住亚贸易(深圳)有限公司总经理增池克弥这样评价: “TYPE-81C是由具有30年光纤熔接机制造历史的日本住友电工集团开发的新一代产品。它包含许多创新改革,相比目前市场上的熔接机,更加简化了用户和操作者的使用
[半导体设计/制造]
触摸屏升温 液晶面板厂商尝试内嵌式研发
触摸屏技术是一门新兴的技术,目前关注并投入此技术研发的上游厂商越来越多,随着触摸屏技术应用越来越广,终端企业的关注度日益升温。 iPhone引发触摸式面板商机爆发,据国际调研机构Displaybank预测,2008年全球触摸面板市场将以43.2%的年成长率,达到18亿美元的规模。目前在触摸面板市场上,较常见的触摸技术有电阻式、表面电容式(SurfaceCapac-itiveType)、表面音波式、红外线式与电磁式等5种触摸技术,而过去全球触摸面板市场上,约有90%比重是以电阻式触摸面板技术。 厂商增加投入开发 触摸面板厂商应产业多元化的应用需求与使用上的方便,不断地发展及改善其触摸面板技术与产品,
[手机便携]
基于MeeGo的电容式触摸屏驱动设计
引言 随着人们对操控要求的不断提高,市场上出现了越来越多的高端手机、平板电脑,这些产品共同的特点就是给人们提供了非常便利的操控方式,尤其是电容触摸屏的使用,它能很好地实现多点触控功能。多点触控技术是当今炙手可热的技术,它让人们的生活方式得到了前所未有的改变。电容触摸屏已经成为高端手机的标配,如苹果的iPhone以及HTC Motorola的一些高端手机,虽然目前电容屏的价格较贵,但随着工艺的提高,其价格必定会下降,再加上其给用户带来的丰富体验,电容触摸屏的使用必将越来越广泛。MeeGo是Intel和Nokia公司合作开发的开源操作系统,基于Linux内核,其良好的开源性为驱动程序的开发提供了很好的基础条件。本设计在MeeGo1
[嵌入式]
51单片机驱动触摸屏综合实验源程序
第1步:根据开发板单片机型号选择“实验28:开发板资源数据下载 - 1、开发板资源数据下载”程序下载到STC8A开发板中运行,下载程序时ISP软件设置:用户程序运行时的IRC频率22.1184MHZ 第2步:光盘资料 - 上位机数据下载源程序- 运行串口文件下载V1.0 - 下载 (“开发板资源数据:开发板触摸屏综合实验资源数据.bin(地址:实验30-准备工作)”)资源数据到开发板,起始扇区设置为0,波特率设置57600; 第3步:根据开发板单片机型号选择“实验28:开发板资源数据下载 - 2、触摸屏资源数据下载”程序下载到STC8A开发板中运行,下载程序时ISP软件设置:用户程序运行时的IRC频率22.1184MHZ
[单片机]
三星GalaxyZ Fold2 5G即将首销:采用Super AMOLED 触摸屏
9月1日,三星正式推出了全新的Galaxy Z Fold2 5G折叠屏手机,随后该机的国行版在也正式与国内用户见面,得益于前卫的设计、精湛的工艺以及便捷的功能,该机一经推出便受到了广泛的热议。现在有最新消息,近日三星官方发布最新预告信息,全新的三星GalaxyZ Fold 2 5G新机将于9月25日正式开启首销,售价16999元。 外观方面,全新的三星Galaxy Z Fold2 5G折叠屏手机基本延续了前作的外观设计,但也有一些明显的区别。其机身外部采用的是一块6.2英寸的Super AMOLED 触摸屏,展开后则是一块7.6英寸的显示屏,能为用户提供犹如平板电脑的体验。同时采用超窄边框设计,面积比前代提升了13.5%
[手机便携]
三星GalaxyZ Fold2 5G即将首销:采用Super AMOLED <font color='red'>触摸屏</font>
面板厂商合纵连横 中小尺寸面板产业动荡
  由于中小尺寸面板一直较为稳定,特别是去年大尺寸面板一路下滑,而中小尺寸面板的需求量却不减反增,另全球面板厂商积极调转生产线,抢夺中小尺寸面板蛋糕,出现了面板厂商之间的相互布局。   据光电协进会(PIDA)统计,由于全球面板厂商,特别是台系面板厂商近年来积极朝中小尺寸面板市场挺进,使得全球中小尺寸面板市场版图在2010年进行大洗牌。2010年全球中小尺寸面板出货量估达25亿片,台湾厂商出货量达14亿片、市占率达56%。韩国中小尺寸面板出货量市占率18%。大陆和日本中小面板出货量巨大。   2010年在中小尺寸面板领域,不论是出货量或产值都由奇美电子都是最大的赢家,若仅以手机应用面板来看,2010年华映以市占率达到16.
[手机便携]
还会旺多久?触控技术发展分析
前景看好的触摸屏市场让大陆厂商跑马圈规划新格局,要么扩产产能,要么兼并收购、要么投资新建厂房,引进新的生产线,不遗余力地抢占市场份额。但是也有在发展势头正盛的时候转卖厂房、倒闭的厂商。两种截然不同的现象不禁让人疑惑,触控行业还会旺多久? 近几年,在苹果等厂商高端电子产品带动下,触摸屏行业的发展越来越深入,扩展的领域越来越广,从量的积累进入了质变的爆发期。据相关市场研究机构预测,到2015年底全球平板电脑销量将达到2.486亿台。智能手机方面,预计到2015年时全球智能手机销量将达到10.5亿部,其中亚洲市场销量将占到39.5%。前景看好的触摸屏市场让大陆厂商跑马圈规划新格局,要么扩产产能,要么兼并收购、要么投资新建厂房,引进新
[嵌入式]
AMX推出基于Wind River Linux的标准化Modero系列触摸屏面板
全球领先的设备软件优化(DSO)厂商风河系统公司(Wind River)日前宣布,AMX推出采用Wind River Linux平台的标准化Modero系列触摸屏面板。Wind River Linux是风河公司提供的业界领先的商用级Linux平台。AMX在与风河公司达成此次合作关系前,进行了一项全面的投资回报率(RIO)分析,结果显示采用Wind River Linux替代自行开发Linux平台,预计可节省近200万美元的成本。此外,采用Wind River Linux平台进行标准化产品开发,通过风河Workbench On-Chip Debugging工具集和全球顶尖的技术支持服务,AMX的工程师们可获得更高的开发和生产效率。 A
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved