本文提出了基于ARM7系列LPC2210微控制器和嵌入式操作系统μC/OS—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微控制器作为主控芯片,其内部资源丰富,可以对系统功能进行扩充。在对触摸屏进行数据采集时,刷新频率高,保证了数据的准确和不丢失,并实现了微控制器与上位机之间通过半双工的方式进行通信,结构简单、传输可靠,大大降低了成本。整个系统可移植性强,具有一定的实用价值。
相关文章