触摸屏控制实验设计报告docx.docx

上传人:b****3 文档编号:11215237 上传时间:2023-05-29 格式:DOCX 页数:27 大小:262.20KB
下载 相关 举报
触摸屏控制实验设计报告docx.docx_第1页
第1页 / 共27页
触摸屏控制实验设计报告docx.docx_第2页
第2页 / 共27页
触摸屏控制实验设计报告docx.docx_第3页
第3页 / 共27页
触摸屏控制实验设计报告docx.docx_第4页
第4页 / 共27页
触摸屏控制实验设计报告docx.docx_第5页
第5页 / 共27页
触摸屏控制实验设计报告docx.docx_第6页
第6页 / 共27页
触摸屏控制实验设计报告docx.docx_第7页
第7页 / 共27页
触摸屏控制实验设计报告docx.docx_第8页
第8页 / 共27页
触摸屏控制实验设计报告docx.docx_第9页
第9页 / 共27页
触摸屏控制实验设计报告docx.docx_第10页
第10页 / 共27页
触摸屏控制实验设计报告docx.docx_第11页
第11页 / 共27页
触摸屏控制实验设计报告docx.docx_第12页
第12页 / 共27页
触摸屏控制实验设计报告docx.docx_第13页
第13页 / 共27页
触摸屏控制实验设计报告docx.docx_第14页
第14页 / 共27页
触摸屏控制实验设计报告docx.docx_第15页
第15页 / 共27页
触摸屏控制实验设计报告docx.docx_第16页
第16页 / 共27页
触摸屏控制实验设计报告docx.docx_第17页
第17页 / 共27页
触摸屏控制实验设计报告docx.docx_第18页
第18页 / 共27页
触摸屏控制实验设计报告docx.docx_第19页
第19页 / 共27页
触摸屏控制实验设计报告docx.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

触摸屏控制实验设计报告docx.docx

《触摸屏控制实验设计报告docx.docx》由会员分享,可在线阅读,更多相关《触摸屏控制实验设计报告docx.docx(27页珍藏版)》请在冰点文库上搜索。

触摸屏控制实验设计报告docx.docx

触摸屏控制实验设计报告docx

、八、-

前言

随着我国工业化的高速发展,对工业自动控制的要求也在不断地增长和提高。

触摸屏,作为一种可视化的人机接口,以其小体积和高可靠性的特点逐步取代传统的按钮控制和仪表控制,成为工控界人机接口的主流。

本文分析了触摸屏设备的特点,国内外现状及发展趋势,设计了一种基于嵌入式实时操作系统WinCE5.0并以ARM9系列的AT91SAM926为核心处理器的大型触摸屏控制器。

综合考虑触摸屏设备的功能需求,提出了该课题的设计指标,制定了触摸屏控制器总体设计方案,并以控制器硬件设计和操作系统移植两个方面给出了具体的体现。

以模块化和结构化的思想设计和实现了硬件平台。

分析了触摸屏控制器中的主要硬件模块,包括处理器核心模块、存储模块、触摸板模块、键盘模块、以太网模块和USB主从模块,给出了硬件设计方法及电路实现。

建立了硬件测试环境,对哥哥硬件模块进行调试。

基于搭建好的硬件平台,重点研究了嵌入式操作系统WinCE5.0的移植和BSP的开发。

分析了WinCE5.0操作系统的体系结构和移植原理,在摄入了解三星公司S3C2410BSP的基础上,给出了基于AT91SAM926的WinCE5.0BSP勺开发流程。

详细分析了WinCE5.0Bootload的工作原理和架构,根据触摸屏系统的功能需要和硬件资源分配,设计了触摸屏设备的Bootloade并给出了具体的开发步骤。

深入研究了OAL的功能和原理,对OAL开发中的重要函数和主要模块,给出了具体的实现。

针对触摸屏控制器的主要硬件模块,在分析WinCE5.0的中断模型和中断机制的基础上,开发了触摸屏驱动程序、矩阵键盘驱动程序和USB主机驱动程序。

在开发的BSP基础上,利用WinCE5.0操作系统定制工具PlarformBuilde进行了操

作系统内核的定制和编译,同时对操作系统的性能进行测试。

测试结果表明:

WinCE5.0操作系统可成功移植到触摸屏控制器上,并能满足工业现场的实时性要求。

本课题对于基于ARM9和WinCE的触摸屏设备的开发具有很高的参考价值,对于

其它基于ARM和WinCE的开发也具有一定的参考价值。

关键词:

触摸屏;卩Clinux驱动程序;C/OS-II;S_CPU_A.ASM

绪论

1.1课题的研究背景

现阶段随着计算机技术的发展,人们对电子产品需求越来越高,不仅要求其性能良好、可靠,功能多样而且要求其设计美观,操作人性。

触摸屏和手写汉字输入就是在该需求下的产物,而且这些技术已经广泛的渗透到我们的生活中了。

比如银行的查询系统,ATM取款机,高档手机上的手写输入法以及各种手写板都是这方面的产品。

由于触摸屏技术的不断改进与革新,越来越多的电子产品采用触摸屏作为输入设备,对用户来说非常方便,直观。

而且省去了键盘和按钮,能够增大可携带的电子展品的屏幕尺寸,能带给用户非常舒适的视觉效果。

对于产品的设计者来说,设计产品更加灵活,更容易推出富有个性的产品。

触摸屏输入使得人机互交仅仅依靠手指触摸完成操作,操作简便直观,而且就爱你姑耐用,节省空间。

2077年六月苹果公司推出的iPhone手普及,就掀起触摸屏应用到电子设备的高潮,它的操作界面设计比较人性化,用手点击空触摸屏取代按钮和滚轮来完成手机的所有操作,还附加了很多按键操作无法实现的功能,显然是一个多媒体娱乐平台。

课件良好的触摸屏产品非常受用户青睐,是未来中高档电子产品的必不可少的输入设备。

现阶段我们把汉字输入到计算机,手机等电子产品的主要方式是通过饮马、形码。

但如果我们使用的电子产品输入设备是触摸屏,我们就会更倾向于采用手写输入。

其实,把汉字字符输入计算机等电子设备一直是中国使用、设计各种电子产品的一个难题。

对于计算机来说,饮马输入法有智能双拼、微软双频、清华紫光拼音输入法、搜狗输入法等等,但如果用户不知道该汉字的读音,就非常麻烦,而且这种重码率非常高,影响输入速率。

对于形码输入法,比较流行的有王码,郑码。

这两种输入法都是通过吧汉字分解为字根,这些字跟对应不同的字母按键,通过这种编码方式来获得对汉字的输入。

这种方式重码率低,输入速率比较快,缺点是需要用户区学习记忆字根位码。

然而如果采用触摸屏进行汉字的输入(即进行联机输入),符合通常汉字的书写习惯,用户更容易上手。

这种输入方法关键技术在于手写字符的识别,需要解决的事一种大类别数的模式识别问题。

由于模式识别,计算机等技术的发展,现在联机汉字输入系统已经比较成熟,不少产品已成功的应用到现实生活当当中,并得到良好的反响。

1.2触摸屏技术简介

触摸屏在20世纪70年代就开始问世了,它是由美国人SamHurt在1971年发明了这项技术。

由于各种技术员因,70年代后触摸屏技术发展比较缓慢。

当时其反应速度、可靠性、使用寿命、对恶劣环境的适应性等方面都不尽人意。

现在这种情况已经得到了很大的改善,也正是由于这种改进掀起了触摸屏应用的浪潮。

目前,触摸屏触摸的实现技术多种多样,主要有矢量压力传感器技术触摸屏、电阻感应式触摸屏、红外线是触摸屏、电容感应式重默平和表面声波式触摸屏。

其中矢量压力传感器触摸屏已经从历史舞台中消失了,现在应用广泛的主要是其他四种方式。

下面简单介绍一下这些技术。

1.2.1电阻式触摸屏

电阻式触摸屏又分为四线电阻触摸和五线电阻触摸,四线电阻触摸屏的两层透明导电层的都加上5V的恒定电压,这两层导电层分别引出分管数值和水平触摸点两根导线。

只需要4跟先就可以完成触摸点检测的功能。

其原理我们后面会详细介绍。

这种触摸屏解析度较高,具有高速的传感反应,需要在系统运行时进行一次校正,稳定度较高,没有触摸飘逸现象。

五线电阻触摸屏的基层是把竖直和水平方向的两个电压长通过精密的电阻网络加在玻璃的导电层上。

外层的镍金导电层仅仅用来做纯导电层。

内电层的导电吃呢更需要引出四条导线,外层的导电层会引出一条导线。

在图1.1我们给出了其示意图,内层导电层引出4根线,夕卜层导电层引出一根线。

有触摸后分时检测内层ITO(铟锡氧化物)接触点X轴和丫轴电压值的方法测得触摸点的位臵。

其特点是:

解析度较高,具有高速的传输反应,需要一次校正,稳定度较高,没有触摸飘逸现象,价位较高,对外导电层划伤具有良好的包容度,这是四线电阻触摸屏所不具有的。

 

图1」五线也粗式鮭摸邸的于意囹

1.2.2电容式触摸屏

电容式触摸屏是四层符合玻璃屏。

最外层是只有0.0015毫米厚的矽土玻璃保护层,再向内室ITO(ITO是一种透明的导电体——铟锡氧化物IndiumTinOxide)夹层和ITO内层,最里面的是玻璃基层。

玻璃瓶的内表面和夹层各涂有这两层IT0导电层的功能不同,内层IT0作为屏蔽层,以保证良好的工作环境,夹层IT0涂层作为检测定位的工作层,在四个角或四条边上引出四个电极。

这四个电极在导电体内形成一个低电压交流电场。

当我们触摸矽土玻璃保护层时,通过人得手指与工作面形成耦合电容吸走一个很小的电流,这个电流分别从四个角或者四个边上的电极流出,这个电流信息与手指到四角的距离成正比,通过这种方法可以准确计算出触摸点的位臵。

这种触摸屏能够很好的保护导体,防止外界环境对触摸屏的影响,比如触摸屏了污秽、油渍、尘埃等,仍然能够良好的进行工作。

但是采用耦合电容这种方式不稳定,会产生触点的“飘逸”。

现在解决的主要方法是采用剁掉校准法解决飘逸问题。

1.2.3红外线式触摸屏

该触摸屏在显示器外安装一个外框,里面装由红外发生装臵和接受感应装臵,这样就在屏幕的四边形成了横竖交叉的红外线矩阵,当手指或者其他物品阻挡经过该位臵的横竖红外线,相应位臵接收到的信号就急剧下降,这样就完成对触摸点坐标的探测。

TXTXndXTXTXTXDCTXTXTXTXTX'FXTX

图1.2红外线武触挾屏的示意图

图1.2是红夕卜线式触摸屏的示意图。

这种触摸屏价钱较高,不受电流、静电干扰,安装方便。

1.2.4表面声波触摸屏

表面声波是一种沿介质表面传播的机械波。

这种触摸屏包括声波发生、接受装臵。

触摸屏的左上角和右下角各固定了竖直和水平方向的超声波发射器,右上角则固定了两个相应的超声波接收器。

玻璃屏的四个周边刻有45度角由疏到密间隔非常精密的反射条纹。

当发射器发射一个窄脉冲后,声波能量历经不同途径到达接收器,走最右边的最早至必,走最左边的最晚到达。

接受信号集合了所有在X轴方向历经长短不同路径回归的声波信号。

这个波形信号的时间轴反映各原始波形叠加前的位臵,也就是X轴坐标。

发射信号与接受信号波形没有触摸的时候,接受信号的波形与参照波形完全一样。

当手指或其他能够吸收或阻挡声波能量的物体触摸屏幕时,X轴途径手指部位向上走的

声波能量被部分吸收,反应在接收波形上即某一时可谓之上必行有一个衰减缺口。

这样

就可以确定触摸位臵的X轴坐标,同理可以得到相应的Y轴坐标。

图1.3是表面声波触

电绷

图1・3蔻面声波触摸屏的禾意圄

摸屏的示意图。

这种触摸屏具有分辨率高、防刮擦、使用寿命长、透光率高、只需要安装时进行一次校对的优点,适用安装在公共场合。

1.3本文的主要内容和结构安排

本文主要讨论的问题是如何实现一个基于触摸屏控制器的联机手写汉字识别系统。

首先介绍触摸屏控制器的硬件结构,固件编程,获取触摸点的数据之后,进行对数据信息采用模式识别的方法进行处理,判断在触摸屏上所写的字符。

字符识别处理包括预处理、归一化、特征形成和特征的提取,生成字符库,最后检索字符库得出字符。

第二章触摸屏控制器的硬件设计

2.1硬件设计

本设计中硬件平台微处理器选用MOTOROLA公司的MC68VZ328它是一款

M68k体系的32位低功耗微处理器,采用SoC技术设计,具有典型的嵌入式微处理器的特征;触摸屏选用Tl(原为Burr-Brown公司的产品,由于该公司已被TI公司收购,所以

下文均用TI公司)公司的ADS7843在本设计中,CPU与触摸屏以主从方式工作,触摸屏工作于从设备(slave状态。

本设计中硬件电路不同于传统设计,而是充分利用了ADS784沖的BUSY信号线,如图1所示。

ADS7843是一款四线电阻式触摸屏控制芯片,它主要完成两件事情:

其一,是完成电极电压的切换;其二,是采集接触点处的电压值。

它由两层透明的阻性导体层组成,在导体层中间充满了用粘性绝缘液体材料做成的隔离层和由导电性能极好的材料构成的电极。

触摸屏工作时,上下导体层相当于电阻网络,如图2所示。

当某一层电极加上电压时,会在该网络上形成电压梯度。

若有外力使得上下两层在某一点接触,则在电极未加电压的另一层可以测得接触点处的电压,从而知道接触点处的坐标。

比如,若在顶层的电极(X+、X-)上力□上电压,则在顶层导体层上形成电压梯度;当有外力使得上下两层在某一点接触,在底层就可以测得接触点处的电压,再根据该电压与电极(X+)之间的距离关系,知道该处的X坐标。

然后,将电压切换到底层电极(丫+、Y-)上,并在顶层测量接触点处的电压,从而知道丫坐标。

对电压在横向和纵向导体层之间的切换以及A/D转

换,需要先通过串行外设接口(SPI)往ADS7843发送控制字,转换完成后再通过SPI读出电压转换值。

Autooo

±2仏艸呻巧导停取

2.2触摸屏硬件原理简介

我们在开始编写触摸屏驱动程序之前,必须对硬件的工作原理有个基本的了解。

许多不同的触摸技术会把屏幕某个位臵的压力或接触转换成有意义的数字坐标。

典型的触摸技术包括电阻触摸屏、声表面波触摸屏、红夕卜线触摸屏和电容触摸屏。

如果想详细了解这些技术,你可以登录www.elotouch.co或www.apollodisplays.c网站。

这里侧重介绍电阻触摸屏。

电阻触摸屏非常普及,你会发现许多评估板和开发套件中都集成了电阻触摸屏。

电阻触摸屏普及的主要原因是价格便宜,而且在电气上可以直接接入用户的系统中。

之所以叫电阻触摸屏,是因为它们本质上就是电阻分压器。

它们由两个电阻薄层组成,这两个薄层被非常薄的绝缘层隔开,绝缘层通常以塑料微粒子的形式存在。

当你触摸屏幕时,会使两个电阻薄层变形到足以使它们之间发生电气连接。

然后由软件通过检测分压器上产生的电压计算出两层的短接位臵,并最终确定触摸位臵。

电阻触摸屏分为几种类型,比如"四线","五线"和"八线"。

线越多,精度就越高,

温度漂移也越少,但基本的操作是一样的。

在最简单的四线设计中,有一层称为"X轴"的电阻层,上面加有一定的电压,另一个称为'丫轴"的电阻层作为接受层测量对应X轴位臵的电压值。

这一过程再反过来执行一遍,即Y轴层加电,X轴层用于电压检测。

图2是电阻触摸屏的简单等效电路。

注意必须获取二个完全独立的读数,即X轴位臵和Y轴位臵数据。

这些数据在四线或五线电阻触摸屏中是无法同时读取的。

软件必须先读一个轴,然后再读另外一个轴。

读取的顺序则无关紧要。

将电阻触摸屏产生的电压转换成数字需要用到模数转换器(ADC)。

直到不久前这个

ADC几乎一直是主CPU的外围器件。

BurrBrownNS784或NS7846就是这种ADC控

图2:

触摸屏电路简单等效电路。

制器。

该器件为12位的模数转换器,其内嵌的逻辑电路通过交替给一个薄层加电,再从另外一层转换来控制触摸屏。

虽然可以使用诸如GPIO之类的信号线来完成薄层加电的切换,但该器件能够分担许多任务,还能提供产生触摸或笔压中断的方式。

2.3基于两种CPU的参考板

第一块板是飞思卡尔的MX9823ADS评估板,采用了飞思卡尔的MC9328MX1处理器。

该评估板可以直接从飞思卡尔的分销商处定购。

评估套件包括QVGA(240x32彩色LCD和触摸屏。

第二块板采用了夏普LH79524ARM处理器。

这块夏普的参考板以及集成的显示和触摸套件都可以从LogicPD公司处定购。

有几种可更换的显示套件供选择,分辨率范围从QVGA到800x600像素不等。

本文中不提供每个驱动程序的详细代码,而是介绍驱动程序的设计和流程,并重点

介绍其中的重要部分。

读者可以从ftp:

//驱动程序的全部源代码。

总的来看,软件提供的功能完成以下这些步骤:

1.配臵控制器硬件

2.判断屏幕是否被触摸

3.获得稳定的、去抖动的位臵测量数据

4.校准触摸屏

5.将触摸状态和位臵变化信息发送给更高层的图形软件

2.4硬件配臵

触摸驱动程序要做的第一件事是配臵硬件。

对这些集成控制器来说,这意味着通过向映射到存储器的寄存器中写入数据将控制器配臵成某个确定状态。

这一过程是由每个驱动程序中的TouchConfigureHardwa函数完成的。

关于触摸驱动程序是否应该使用中断驱动,事实上在范例的驱动程序中用的就是中断驱动方式。

坦率地讲,我之所以这样做是因为使用中断很有趣。

千万不要由这个例子推断出采用中断永远是最好或最正确的设计方式,也不要听信别人说不采用中断驱动方式的触摸驱动程序就是"错误的"。

之所以这样说只是因为"轮询"对嵌入式系统程序员来说似乎变成了贬义词。

我曾经问过一位客户,他的输入设备采用的是轮询还是中断服务方式。

回答是"这是嵌入式系统,我们不做任何轮询"。

我当时感觉问这个问题时我就像一个傻瓜,但进一步探讨后发现查询其实也是一种合理且值得考虑的方式。

如果使用的是RTOS并且所有任务经常为了等待某类外部事件而被中断,处理器经常处于空闲的循环状态,没有什么有意义的事做。

这种情况下使用空闲任务查询触摸屏上的输入也许是更好的设计方式。

根据你的总体系统需求,查询也可能是一个值得考虑的合理的设计方式。

配臵中断的方法因具体操作系统而异。

读者会发现对于每一个支持的RTOS都有被倂ifdef限定的代码段。

在所有情况下驱动程序实际会使用二种不同的中断:

1、当屏幕被初次触摸时唤醒主机的中断,称为PEN_DOWN中断

2、当完成一组模数数据转换时的第二种中断信号

接下来的问题是我们希望以多快的速度从ADC接收采样输入读数。

采样速度会影响我们需要如何配臵时钟来驱动触摸屏和ADC。

我们希望时钟有足够快的速度来提供可响应的输入和实现精确的跟踪,但也不要太快,以至于影响转换精度,或让系统消耗超过所需的功率。

根据我的经验,触摸屏至少需要以20Hz或50ms间隔的速度向更高层软件提供位臵更新数据,只要高层软件跟得上,速度越快越好,我们不太担心功耗问题。

如果触摸输入响应比这慢得多,那么在用户的触摸输入和显示屏上可观察到的响应之间会出现明显和烦人的迟滞现象。

20Hz的更新速度听起来并不是太有挑战性,但提供20Hz的更新速度实际上要求采样速度接近200Hz具体数值取决于我们在确定输入稳定之前准备采用多少读数。

为了去抖动和对触摸输入位臵值进行平均,我们需要进行过采样。

电阻触摸屏,特别是便宜的那种,一般会有很大的噪声和抖动。

在向更高层软件发送位臵更新数据之前,驱动程序需要多次采样每个轴上的输入。

我们提供的驱动程序默认情况下将以最少200Hz(5m的采样速率配臵各自处理器上的ADC时钟。

这样就能让驱动程序对输入原始数据进行充分的去抖动和过滤,并仍能向高层用户接口软件提供20Hz的实际位臵更以使这项工作简单很多。

本文提供的驱动程序完全符合该应用指南对如何配臵夏普ADC序列控制器提出的建议。

LH79524ADC本身是一个令人称奇的电路系统,能够实现完全可编程的状态机和序

列器。

该ADC无需核心CPU的任何干预就可以通过编程完成:

驱动一个触摸层;延时;进行测量;驱动另一层;延时;进行测量等操作。

理解如何对LH79524ADC序列器控制单元编程可能是一个挑战,不过利用夏普(www.sharpsma.c(公司提供的应用指南可一旦完成了基本的硬件设臵,接下来就需要一种可靠的方法判断屏幕是否被触摸了。

如果用户没有触摸屏幕,那么运行ADC获得转换后的读数毫无意义。

上述两个控制器都提供了屏幕是否被触摸的检测机制,并且当触摸事件发生时还可选择是否中断主处理器。

判断屏幕是否被触摸的驱动程序的函数名叫WaitForTouchState()

当控制器处于触摸检测模式时,Y轴触摸层通过一个上拉电阻上拉到高电平,X轴触摸层则连接到地。

当用户触摸屏幕的任何地方时,这两层就发生短接,Y轴层被拉到低电平。

该事件可以在驱动程序内部连接至恪为PEN_OWNIRQ的中断发生机制。

在正常工作期间,当触摸事件发生时驱动程序利用PEN_DOWNIRQ唤醒触摸驱动任务。

这样做可以让驱动程序在屏幕没有被触摸时中断自己的执行,而不消耗任何CPU资源,而一旦用户触摸屏幕,驱动程序就被唤醒并进入转换模式。

我们也可以在转换模式没被激活时停止(disable)AD(时钟来节省功耗。

2.4.1读取触摸数据

在校准和正常操作期间,我们需要读取X和丫轴的原始数据并去抖动,然后确定屏幕被触摸时是否有稳定的读数。

该过程在两个驱动程序中都叫TouchScan()该过程的要点是:

1、检查屏幕是否被触摸;

2、采集每个轴上的多个原始读数用于以后的过滤;

3、检查屏幕是否仍在被触摸。

在执行模数转换时,两个控制器都提供了由编程产生延迟的方法,以在给触摸层加电和开始实际的模数转换之间插入一段时延。

飞思卡尔把这段时延称作数据建立计数(DSCNT)在两层切换后会有很多个ASP输入时钟长度的延时。

夏普把这段时延称为预充时延。

两种CPU都需要这种时延,因为电阻触摸面板是二块由薄绝缘层隔离的大面积导体,正好形成一个电容。

当从将要执行模数转换的层切换到正在加电的层时,需要一定的延时才能保证电容达到稳定状态。

我们可以通过编程让处理器在FIFO存有任何有效数据时就产生中断,或在输入

FIFO装满时产生中断。

由于我们通常会做多次读取,因此驱动程序一般会在FIFO装满时产生中断。

当该中断产生时,会有12个原始的模数转换数据等待处理,分别对应于X轴的6次读数和Y轴的6次读数。

一旦序列器控制字在LH79524上被编好程,驱动程序获取原始读数所需要做的就是命令序列器执行。

当EOS(序列结束)中断产生时,我们获得的结果就可以用于采集和检查了。

序列器可以被配臵为当屏幕被触摸时自动触发、根据软件命令触发或连续触发三种模式。

这里不可避免要进行折衷考虑。

如果我们要求较窄的稳定窗口,那么驱动程序将无法跟踪快速的"拖曳"操作。

对于在签名输入期间发生的滑动或笔划跟踪事件来说快速拖曳是非常重要的。

如果我们加宽稳定窗口,我们就可能面临着风险,这些风险包括接收到不精确的触摸数据和上文描述过的处于临界状态的层连接结果。

因此需要通过实验来确定适合自己系统的最佳值。

智能化的触摸控制器同样允许你通过软件命令调整这些参数。

每个样值所需的读取次数、连续读取间允许的偏差以及采样速率是每个驱动程序的全部可编程参数。

可以通过#defines调整这些参数以便在你的系统上产生最佳结果。

智能化的外部触摸控制器一般会以很快的速度读取数十或数百个数据用以改善精度。

由于我们是用核心CPU完成这种过滤,因此我们需要确定有多少时间可以合理地分配给触摸采样任务。

嵌入式系统包含折衷,你的任务就是想出最佳的折衷办法,以产生能使用户满意的系统。

2.4.2触摸屏的校准

电阻触摸屏需要校准,我们需要一些参考值,以便我们能够将接收到的原始模数转换值转换成高层软件所需的屏幕像素坐标。

理想情况下校准程序只要在产品初次加电测试过程中运行一次就可以了,参考值被存储在非易失性存储器中。

我已经安排好让触摸驱动程序在一启动时就运行校准程序,但要记住,你要把参考值保存起来,以免让用户在以后的加电启动期间再做校准。

不过无论如何你仍然需要向用户提供一种进入校准例程的途径,从而在由于温度漂移或其它因素造成校准不准确时进行重新校准。

校准例程的名称是CalibrateTouchScreen它是一个简单的逐步操作过程,会在屏幕上向用户提供图形目标,并要求用户触摸目标,然后记录下原始的ADC读数,该读数将用于后面的原始数据转换到像素位臵的调整例程。

图形目标和用户提示通过使用便携式图形用户界面(PEG图形软件API显示在屏幕上,不过这也可以通过类似的图形软件实现。

在理想情况下你只需两组(X和丫)原始数据,即在屏幕对角读取的最小和最大值。

而在实际应用中,因为许多电阻触摸屏存在显著的非线性,因此如果在最小和最大值之间简单的插入位臵数值会导致驱动程序非常的不精确。

非线性意味着在屏幕上的等距物理移动会导致原始数据的增量不等。

更糟的情况下,即使我们只改变X轴的触摸位臵,但从丫轴读取的数据也会发生很大的变化。

得出的结论是采用的校准点越多越好,尽量减小内插窗口的间距,才能产生可能的最佳精度。

如果你能在工厂做一次校准,那么得到大量采样点并不是件难事。

如果无法在工厂完成校准,那你必须确定用户需要输入多少个点才能产生足够精确的校准。

本文提供的校准例程用了四个数据点,即屏幕的每个角一个。

对于参考板上的VGA分辨率(640x48显示屏幕来说,这样做的精度可达到一个或二个像素之内。

对于更高的屏幕分辨率或其它触摸屏,要产生一个精确的驱动程序这些点也许过多,也许不够。

做出准确判定的唯一途径只能是对具体的硬件进行大量反复测试。

2.4.3正常操作

一旦校准过程完成,我们就可以开始正常的操作,并开始向更高层软件发送触摸事件。

我把提供的每个触摸驱动程序在每种支持的RTOS环境中都作为低优先级任务加以执行。

任务的入口名叫

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 解决方案

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2