基于LPC2210和μC/OS—II的触摸屏触摸点数据采集系统

2018-02-12 21:29:41编辑:什么鱼 关键字:LPC2210  μC  OS—II  触摸屏  数据采集系统

  本文提出了基于ARM7系列LPC2210微控制器和嵌入式操作系统μCOS—II来实现触摸屏触摸点数据采集系统的设计,并完成了微控制器与上位机之间的物理层电路转换,实现了基于LIN总线的数据通信,能够在上位机得到触摸点的精确坐标以及控制菜单信息,并且准确可靠、传输速率高。

  嵌入式系统实际上是“嵌入式计算机系统”的简称,是相对于通用计算机系统而言的,根据应用的要求,将操作系统和功能软件集成于计算机硬件系统中,以应用为中心,计算机技术为基础,实现软件与硬件的一体化。其适用于对功能、可靠性、成本、体积和功耗等有严格要求的专用计算机系统。


  触摸屏又称为“触控屏”、“触控面板”,是一种附加在显示器表面的透明介质。触摸屏作为一种新的输入设备,是目前最简单、方便、自然的一种人机交互方式。通过使用者的手指触摸,该介质实现对计算机的操作定位,大大简化了计算机的输入方式,实现零距离操作。而在触摸屏的使用中,对触摸点的精确定位至关重要,本文提出了一种触摸屏的坐标算法,该算法具有良好的可移植性和扩展性。

  1 研究背景

  触摸技术已经非常成熟,在欧美和日本已经有近20年的发展历史。而在技术发展上,欧美的触摸屏以电容式、表面声波式及5线电阻式为发展方向,产品以大尺寸居多。日本触摸技术以4线电阻式为主要发展方向,产品以中小尺寸为主,而中国台湾也以4线电阻式居多。

  目前,触摸技术大量应用于嵌入式系统中,结合了先进的计算机技术、半导体技术以及电子技术,形成嵌入式高端产品。其以体积小、功耗低、处理能力强等诸多优点,在通信、网络、工控、医疗、电子等领域发挥着越来越重要的作用。嵌入式系统经历了20多年的发展,已经从普通的低端应用进入到一个高、低端并行发展,且不断提升低端应用的时代,触摸技术在嵌入式系统既有很强的应用价值和市场前景,又有很重要的实际意义。

  2 设计方法

  2.1 系统总体设计

  系统采用Philipa公司的LPC2210作为CPU,由于其片内无程序存储器,所以需要外扩Flash,还可以扩展静态RAM。LPC2210最小系统需要2组电源、复位电路、晶振电路和程序存储器等,触摸屏接口芯片采用ADS7843作为设备控制器,整个系统可实现对触摸屏触摸点的数据采集,系统结构框图如图1所示。

  2.1.1 LPC2210芯片简介

  LPC2210是基于支持实时仿真和嵌入式跟踪的16/32位ARM7核的微控制器,对代码规模有严格控制的应用可使用16位Thumb模式,可将代码规模降低超过30%,而性能的损失却很小。

  LPC2210采用144引脚封装,通过配置总线,最多可提供76个GPIO。其拥有极低的功耗、多个32位定时器、8路10位ADC、PWM输出,以及多达9个外部中断。它们特别适用于工业控制、医疗系统、访问控制和POS机等,又由于内置了宽范围的串行通信接口,非常适合于通信网关协议转换器、嵌入式软Modem以及其他各种类型的应用。

  2.1.2 ADS7843芯片简介

  ADS7843是一种专门对触摸屏输入设备进行控制的芯片,其主要完成两件事:一是完成电极电压的切换,二是采集接触点处的电压值。

  ADS7843是一款连续近似记录(SAR)的A/D转换器,具有同步串行接口,内置12位模/数转换、低导通电阻模拟开关,根据微控制器发来的不同测量命令使相应的模拟开关导通,向触摸屏电极对提供电压,并把触摸点位置的电压引入A/D转换器,以其低功耗和高速率等特性被广泛应用。

  2.2 系统硬件设计

  触摸屏的数据采集系统主要由两个部分组成:触摸屏的控制和数据的传输。

  触摸屏的控制是通过微控制器进行异步数据传送,向ADS7843发送控制字来读取ADS7843的A/D转换结果,微控制器完成一次触摸屏数据采集,两者之间需要进行3次通信。微控制器读取到A/D转换结果后,对数据进行处理,得到触摸点的坐标。为了得到坐标值,可以通过串

  口传输到上位机进行显示。数据经过串口进行传输的方法很多,从成本的角度考虑,选择LIN总线来进行数据的传输,结构简单、且容易实现。硬件电路如图2所示。

  2.3 系统软件设计

  系统的软件平台核心为μC/OS—II,它是一个源码公开、可移植、可固化、可裁剪的占先式多任务管理的实时操作系统内核。它已在相当多的系统中得到应用,是一个经实践证明稳定可靠的内核,且其核心代码短小精悍、简单易学。在对系统进行软件设计之前,必须要先完成μC/OS—II的移植,与移植有关的代码包括一个汇编文件OS_CPU_A.ASM、一个C程序文件OS_CPU_C.C和一个头文件OS_CPU.H,根据处理器的不同,移植所要编写和修改的代码数不同,代码移植好以后,应编写一个简单的应用程序对其进行测试。

 

  2.3.1 触摸屏ADS7843软件设计

  系统上电以后,触摸屏上会显示相应的控制菜单,而每个控制菜单都具有相应的执行程序。设置触摸屏接口为等待中断模式,等待触摸屏被按下。如果中断发生,微控制器发送信号控制ADS7843操作,通过触摸屏X+极将触摸信号输入到A/D转换器,同时打开Y+和Y一驱动。ADS 7843转换结果为二进制格式,如果选取8位的转换精度,1LSB=VREF/256;如果选取12位的转换精度,1LSB=VREF/4 096,将转换结果与1LSB相乘就可以得到触摸点的电压VOY。

  由于触摸屏导电层分布均匀,则有VOY/Y—VCC/H,其中,VOY是从X+极采集到的电压值,VCC为ADS7843的电源电压,H为触摸屏导电介质的高度,从而得到当前Y方向的坐标,同理也可以得到X方向的坐标,ADS7843坐标值测量流程如图3所示。

   2.3.2 触摸屏坐标算法

  微控制器得到触摸点的坐标以后,要作相应的处理。而在动作之前,微控制器还必须要知道触摸屏中哪个控制菜单被按下,这样才能去执行相应菜单的程序。设控制菜单的右下角坐标为Xa、Ya,左上角坐标为Xb、Yb,只需要触摸点的坐标X在Xa和Xb之间,Y在Ya和Yb之间,则认为是该控制菜单被按下。在程序中定义一个数组S[],数组中每连续的5个值描述一个菜单信息,前两个代表控制菜单右下角坐标,第3、4个代表控制菜单左上角坐标,第5个代表控制菜单,触摸屏坐标算法流程图如图4所示。

     结语

  触摸屏是集信息显示、通信、处理和控制于一体的输入设备,它大量应用于各个领域,系统采用Philips公司的LPC2210微控制器作为主控芯片,其内部资源丰富,可以对系统功能进行扩充。在对触摸屏进行数据采集时,刷新频率高,保证了数据的准确和不丢失,并实现了微控制器与上位机之间通过半双工的方式进行通信,结构简单、传输可靠,大大降低了成本。整个系统可移植性强,具有一定的实用价值。


关键字:LPC2210  μC  OS—II  触摸屏  数据采集系统

来源: eefocus 引用地址:http://www.eeworld.com.cn/mcu/article_2018021237769.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:网络存储NAS系统的设计
下一篇:用SD卡方式进行嵌入式设备操作系统的自动升级的实现

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

LPC1788内部EEPROM使用的问题

最近使用LPC1788内部EEPROM存储数据时候发现问题:LPC1788的EEPROM扇区只有 0-62 63扇区不存在 uint32_t i, j; uint8_t count;    uint8_t error = 0;  debug_frmwrk_init(); _DBG(menu); EEPROM_Init();  count = sizeof(write_buffer);    count &= 0xFC;     _DBG_("Erase EEPROM");    for(i
发表于 2018-07-17 21:15:44

LPC17xx的MCPWM周期设置与计算

界限寄存器MCLIM0-2控制PWM的周期,假设MCLIM寄存器的值为 X,MCPWM的外甥时钟为PCLKy MHz,那么可以通过计算得到PWM的周期。计算如下 X/PCLKy = T周期例如,MCLIM为500时,f=50 kHz,周期T=20us,MCLIM为500*2时,f=20 kHz,周期T=40us,    计算过程:MCLIM/外设时钟PCLKy=500/25M (S)=500/25000000(s)=5/250000 * 1000 *1000 us= 20us用逻辑分析仪采集波形,看周期占空比,在此过程中,占空比控制寄存器MCMAT不能为0,逻辑分析仪参数设置1 M
发表于 2018-06-28 20:04:38

IAP一个实例---LPC2214的IAP实现方案

引  言IAP即在应用中编程,对于嵌入式产品,指在不影响产品正常运行的情况下实现应用程序的更新。许多ARM芯片都提供该操作接口,相对于ISP(在系统编程)方式,具有方便灵活且不需要借助专用boot装载程序或工具的特点,而且在不影响嵌入式产品正常运行的情况下即可完成应用程序的动态升级。在工业控制领域尤其是电力系统控制领域中,嵌入式产品必须保证连续、稳定、可靠地运行,由各种原因导致的应用程序的更新都必须在产品正常运行过程中完成,因此许多用户对相关产品的IAP功能都有明确的要求。LPC2214是Philips公司推出的一款32位ARM7TDMI-S工业用微控制器。内置256 KB高速Flash,128位宽度接口/加速器可以实现
发表于 2018-06-27 20:43:43
IAP一个实例---LPC2214的IAP实现方案

LPC1768以太网控制器

_EMAC->Command = EMAC_CR_REG_RES | EMAC_CR_TX_RES | EMAC_CR_RX_RES | EMAC_CR_PASS_RUNT_FRM;//(3)复位控制命令寄存器/* A short delay after reset. */for (tout = 100; tout; tout--);/* Initialize MAC control registers. */LPC_EMAC->MAC1 = EMAC_MAC1_PASS_ALL;//允许所有的帧信息传送,包括常规帧和控制帧,使能接收功能时生效LPC_EMAC->MAC2 = EMAC_MAC2
发表于 2018-06-27 20:42:47

LPC17XX之IAP升级

远程升级流程:协议升级。(1)IAP升级会使用芯片内部的RAM空间的顶部 32个字节(2)当前程序状态寄存器(CPSR):4个条件代码标志(负标志N,零标志N,进位标志C,溢出标志v),2个中断禁止位(IRQ和FIQ),5个当前处理器模式进行编码的位,一个用于指示当前执行指令的位(3)片内Flash系统分布:IAP代码位于BOOT扇区,所以IAP不允许对BOOT扇区进行写擦除操作(4)使用IAP将SRAM中的数据编程到FLASH时,只能使用片内部局部总线上的SRAM。(5)存储数据的对齐方式,如果一个数据是从偶地址开始存储,则是半字对齐,否则非半字对齐。如果一个数据是从被4整除的地址开始对齐,则是字对齐,否则是非半字对齐。(6)片内
发表于 2018-06-27 20:38:03
LPC17XX之IAP升级

LPC1768 IAP写入bin格式程序不能启动的解决办法

在为LPC1768做一个CAN总线在线升级功能的时候,使用IAP功能,将KEIL转换生成的bin文件写入lpc1768内部flash的起始地址,然后跳转到这个位置启动。自动跳转时能够正常启动,但是一复位或者断电重启就不能启动了,查找原因并求助论坛网友得到了问题原因和解决办法。程序写入内部flash时需要计算bin文件前28个字节的校验和(32位),然后将这个校验和替换bin文件第28到31字节的值,bin文件其他部分不变。计算方法:/******************************************************************* 名称    :Lpc
发表于 2018-06-27 20:34:07

小广播

何立民专栏

单片机及嵌入式宝典

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

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved