基于MinuGUI的嵌入式智能仪器触摸屏设计

发布者:浊酒最新更新时间:2013-05-10 来源: 21ic关键字:MinuGUI  触摸屏  PXA255 手机看文章 扫描二维码
随时随地手机看文章

0 引言

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

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

1 硬件结构和工作原理

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

 

基于MinuGUI的嵌入式智能仪器触摸屏设计

图1 电阻式触摸屏结构

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

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

 

基于MinuGUI的嵌入式智能仪器触摸屏设计

图2 ADS7843与PXA255的接口电路

2 触摸屏接口驱动程序

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

 

基于MinuGUI的嵌入式智能仪器触摸屏设计

图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 ) 点触摸屏的采样值后, 利用上述公式编制校准函数,在触摸屏工作的过程中, 计算出实际触摸点对应的显示坐标,完成触摸屏的校准。

基于MinuGUI的嵌入式智能仪器触摸屏设计

图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 所示。

 

基于MinuGUI的嵌入式智能仪器触摸屏设计

图5 MiniGUI 中的触摸屏输入

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

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

4 结论

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

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

上一篇:基于dsPIC30F6010三相异步电动机控制系统的设计与实现
下一篇:单片机的历史与发展现状

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

最新投影触控系统,让墙壁分分钟变触摸屏
日本电机大厂富士通(Fujitsu)旗下的研究所于2015年7月底公布新的投影技术,可以把投影银幕或墙壁当成触控面板操作,而且可接收多台智能型手机的画面同时呈现,比大型触控式白板更便宜便利虽然还需要特定的电子笔才能操作,但在简报、会议与上课时使用,比徒手操作更具实用性。    这个以智能型手机及投影机为核心的投影触控系统,富士通定义为全会议室人机界面化IT系统,将在2015年8月~2016年3月间,利用富士通旗下位于东京的HAB-Y Uplatform展示,预定于2016年由富士通子公司之一,Fujitsu Social Science Laboratory销售。    由于智能型手机与平板电脑的普及,2010年代的会议与简
[嵌入式]
基于ARM+FPGA的真空冻干控制系统设计
   0 引言   冷冻干燥技术自1980年代在我国兴起以来已取得长足发展,并已广泛应用于食品、低温和真空等科学领域,基于一些食品和药品加工行业的工艺需要,真空冷冻干燥技术需要迅速应用与推广。控制系统对物料的加工过程和质量影响比较大,还决定了真空冷冻干燥装置运行的自动化程度。近年来国内外一些有实力的厂家对冻干机控制系统的研究有了较大的进展,采用了PLC、触摸屏等装置,能够绘制冻干过程的工艺曲线,较大地改善了冻干机的性能。   随着科技的发展,由于触摸屏和PLC控制系统不易实现功能扩展、升级困难、操作界面不够丰富等原因,已经不能完全满足企业的需要,市场需要开发出更加先进的冻干设备控制系统。2007年1月上海远东制药机械总厂开发完
[单片机]
触控面板的分类以及技术原理分析
触控面板也叫触摸屏(Touch Panel, or Touch Screen, or Touch Pad, etc),凡是电子设备都要用到屏幕,如果你不想让你的屏幕被无聊的键盘占据一半面积,就必须要使用触摸屏作为人机对话的媒介,触摸屏作为一种最新的电脑输入设备,它是目前最简单、方便、自然的一种人机交互方式。它赋予了多媒体以崭新的面貌,是极富吸引力的全新多媒体交互设备。 触控面板最早结缘于1965年E.A. Johnson一篇简短的描述电容触摸屏的文章,继而1967年深度发表有图有真相的文章。再到1970年由两位CERN(European Council for Nuclear Research)的两位工程师在1970年代初期发
[嵌入式]
触控面板的分类以及技术原理分析
STM32之触摸屏
一、触摸屏控制器简介 1、TSC2046概貌 2、TSC2046引脚描述 3、TSC2046应用电路 4、常见接线方法 YU=Y- YD=Y+ XL=X- XR=X+ 二、TSC2046编程注意事项 TSC2046的PENIRQ脚在触摸屏被按下的时候输出低电平,没有按下的时候输出高电平。需要格外注意的是在MCU给TSC2046发送命令的时候,次引脚也会产生错误的低电压脉冲,0 us t 100 us。 It is recommended that the processor mask the interruptPENIRQ is associated with whenever the proce
[单片机]
STM32之<font color='red'>触摸屏</font>
触摸屏与PLC在闭环控制的变频节能系统中的应用
1、 引言   触摸屏是一种新型可编程控制终端,是新一代高科技人机界面产品,适用于现场控制,可靠性高,编程简单,使用维护方便。在工艺参数较多又需要人机交互时使用触摸屏,可使整个生产的自动化控制的功能得到大大的加强。 PLC有着运算速度高、指令丰富、功能强大、可靠性高、使用方便、编程灵活、抗干扰能力强等特点。近几年,随着科学技术的不断进步,各行业对其生产设备和系统的自动化程度要求越来越高,采用现代自动化控制技术对减轻劳动强度、优化生产工艺、提高劳动生产率和降低生产成本起着很重要的作用。触摸屏结合PLC在闭环控制的变频节能系统中的应用是一种自动控制的趋势。 触摸屏和PLC在闭环控制的变频节能系统中的使用,可以让操作者在触
[工业控制]
基于PXA255的自动聚焦及图像采集模块设计
摘 要:本文介绍了一种基于Intel公司 PXA255嵌入式处理器的自动聚焦图像采集系统。其中详细介绍了自动聚焦在FPGA中的实现以及图像采集在嵌入式linux系统中的实现,并给出了该系统的硬件结构图。 关键词:自动聚焦;图像采集;V4L视频接口;嵌入式QT;离散余弦变换 引言 目前市场上流行的摄像手机一般都不具备自动聚焦功能,这对于传感器分辨率在30万像素以下的摄像手机来说影响不大,但随着百万像素手机的面世,以及手机录像功能的采用,人们对摄像头的自动聚焦功能越来越关注。本文在Xhyper255开发板的基础上,结合项目开发的需要,在开发板上移植QT/embedded作为嵌入式GUI,并设计了自动聚焦和图像采集子模块,其中
[应用]
谷歌Home触摸屏版曝光:可观看视频
据外媒AndroidPolice报道,Google正在打造一款新的Google Home智能扬声器,其跟现款最大的区别是带有显示屏,用户能够观看YouTube视频,从Google地图获取路线,浏览网页等。   据悉,该产品代号为“Quartz”,在谷歌最新版的应用中发现了它的身影。目前,亚马逊销售的Echo Show拥有7英寸屏幕,上个月,Google在该设备上禁用了YouTube,原因是亚马逊拒绝允许用户选择自动播放功能。此外,Echo Show用户不能订阅YouTube频道。亚马逊上个月推出了另一个带有屏幕的Echo Spot,该设备采用2.5英寸圆形显示屏,并将于12月19日上市。   Google Home允许用户控制家
[手机便携]
STM32入门开发:编写XPT2046电阻触摸屏驱动(模拟SPI)
一、环境介绍 单片机采用: STM32F103ZET6 编程软件: keil5 编程语言: C语言 编程风格: 寄存器开发. 目标芯片: XPT2046---标准SPI接口时序 二、XPT2046芯片介绍 2.1 功能 XPT2046是一颗12位的ADC芯片,可以当做普通的ADC芯片使用,但是一般都是用在电阻触摸屏上,方便定位触摸屏坐标。 图1: XPT2046内部原理图 图2:电阻触摸屏---引出的4条线就接在XPT2046的YNXNYPXP上 (XPT2046支持笔中断输出--低电平有效,这个引脚可以配置到单片机的中断脚上,或者轮询判断这个引脚状态,判断触摸屏是否已经按下) 可以单独买一个触
[单片机]
STM32入门开发:编写XPT2046电阻<font color='red'>触摸屏</font>驱动(模拟SPI)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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