基于ARM的触摸屏控制

  • 格式:pdf
  • 大小:255.66 KB
  • 文档页数:2

基于ARM的触摸屏控制

发表时间:2009-08-11T15:12:44.187Z 来源:《赤子》2009年第10期供稿 作者: 高 岳 徐万明(洛阳师范学院,河南 洛阳 471022)

[导读] 介绍基于ARM的触摸屏控制的设计原理和实现方法。

摘 要:介绍基于ARM的触摸屏控制的设计原理和实现方法。硬件电路主要由PHILIPS公司的ARM7TDMI-S微控制器LPC2290,FM7843控

制器和SID13503控制器构成。利用C语言编写驱动和用户程序,通过触摸屏的FM7843控制器将触摸信号进行A/D转换,进而利用ARM芯片

和彩色液晶屏控制器SID13503,将触摸动作在液晶屏上进行显示,最终实现触摸屏和液晶屏的控制。该设计操作直观、简单、功耗小、提

高了人机交互的友好性。

关键词:触摸屏控制;液晶屏;ARM

引言

随着信息产业的迅猛发展,触摸屏依托其操作简单直观、功耗小、人机交互性好、方便快捷等优点,成为人们获取信息的一种便利工具,已广泛应用于机场、车站、银行等各种需要对公众提供信息服务的行业和电子设备及多媒体行业。而目前的触摸屏性价比较低,人机

交互的友好性体现不够,占用空间多,并且大部分来自国外且价格不菲。借助功能发展已越来越强的ARM处理器,利用PHILIPS公司的

LPC2290芯片,极好的解决了这些缺点,设计出了性价比高、屏幕显示无闪烁、画面切换速度快、占用空间少、人机交互性好、低功耗的触摸屏系统。

1 系统总体设计

彩色液晶屏作为人机交互的最直接画面,通过其内部的液晶屏控制器SID13503与控制芯片LPC2290芯片相连,采用并行接口进行数据传送,对当前的触摸信息进行显示。

触摸屏采用四线电阻式触摸屏,紧贴在液晶显示屏的外表面。作为一种人机交互设备,当用户在触摸屏上有触摸动作时,顶层与底层之间会产生接触,从而使电阻层发生接触。当在Y方向的电极对上施加一确定的电压,在Y平行电压场中,触点处的电压值可以在X+(或X

-)电极上反映出来,通过测量X+电极对地的电压大小,便可得知触点的Y坐标值。同理测量触点的X坐标值,通过A/D转换,将数字坐标

信息传递给LPC2290芯片,LPC2290芯片处理信息后,控制液晶显示器进行相应的画面更新动作,实现人机交互功能。

2 硬件部分设计

2.1彩色液晶屏驱动电路及SID13503控制器

用5.2英寸320×240彩色液晶屏,由于液晶屏内部没有集成液晶屏控制器,所以需外接一个彩色液晶屏控制器。液晶屏控制器采用

SID13503,5V电源供电。由于SID13503是可以硬件配置的,所以设计电路时可根据需要对SID13503的VD0-VD15引脚进行设置。由于电路采用8位总线方式连接SID13503,所以SID13503的VD0没有上拉电阻,而且SID13503的DB8-DB15引脚要接5V电源。

将LPC2290的地址总线与SID13503的A1-A16相连。这样LPC2290可以使用16位总线方式操作SID13503(高8位数据被忽略)。

SID13503有两个片选引脚,一个是I/O片选引脚(用于内部寄存器操作),另一个是存储器片选引脚(用于显示存储器操作),所以用了

IO_nCS3,IO_nCS2两个片选信号与其连接。当IO_nCS3为低电平时,信号nIOCS有效,内部寄存器的起始地址为0x83800000;当

IO_nCS2为低电平时,信号nMEMCS有效,显示存储器的起始地址为0x83400000。为了使用I/O接口呈现直接访问方式,故将SID13503的

VD1接了一个10kΩ的上拉电阻。

在接5V电源时,SID13503的VIH=2V,所以可以直接使用LPC2290的总线与它相连,不需要加电平转换电路。由于SID13503使用的电源是5V,而LPC2290的I/O电压为3.3V,所以在数据总线上串接470Ω的保护电阻。

2.2触摸屏驱动电路及FM7843控制器

触摸屏按其工作原理的不同可分为表面声波屏、电容屏、电阻屏和红外屏几种。其中最常见的是电阻式触摸屏,其屏体部分是一块与显示器表面非常配合的多层复合薄膜。触摸屏工作时,上下导体层相当于电阻网络。当某一层电极加上电压时,会在该网络上形成电压梯

度。如有外力使得上下两层在某一点接触,则在另一层未加电压的电极上可测得接触点处的电压,从而知道接触点处的坐标。彩色液晶屏

上带有触摸屏(四线电阻式触摸屏),用于检测屏幕触摸输入信号,有利于提高人际交互性的友好性。因此在使用触摸屏时,须要一个A/D

转换器将模拟信号转换成数字信号,这里使用触摸屏控制器FM7843来完成这一功能,其A/D转换精度有8位和12位,本设计利用8位精度。

在进行A/D转换后,通过SPI接口把转换结果输出到LPC2290。

3 软件部分设计

3.1触摸屏的驱动程序设计

创建库文件config.h实现对FM7843的最基本的定义,并对FM7843的控制I/O端口进行定义,同时调整DELYA_500NS的值。控制系统时钟的快慢。创建FM7843驱动程序FM7843.C,实现FM7843的驱动。其中,函数DelayNo()用来实现短软件延时;函数TestDelayNo

()用来测试短软件延时,以便于产生正确的时序。通过函数FM7843_IRQR()对FM7843的PENIRQ引脚进行测量,返回当前此引脚的

电平值,返回为0表示PENIRQ为低电平状态,否则为高电平。函数FM7843_IOInit()用来对FM7843的控制I/O进行初始化,初始化结果

CS=1,DCLK=0,DIN=0;函数FM7843_WriteRead()对FM7843进行读写操作。

3.2彩色液晶屏的驱动程序设计

首先在库文件config.h中完成对SID13503的最基本的定义。然后编写彩色液晶屏的驱动程序LCDDRIVE.C,通过操作彩色液晶屏控制器SID13503,控制256色RGB伪彩色液晶显示屏。SID13503的寄存器地址为0x838000xx,显示存储器的地址为0x834xxxxx。通过驱动程

序LCDDRIVE.C中的函数S1D13503_Init()对彩色液晶屏控制器SID13503、寄存器0-D进行初始化;用函数S1D13503_LutInit()初始化

彩色液晶屏控制器SID13503的调色板,其中调色板红、绿基色设置为0、3、5、7、9、11、13、15,蓝基色设置为0、6、10、15;用函

数LCD_Initialize()实现LCM的初始化,将LCM初始化为纯图形模式,显示起始地址为0X0000;用填充函数LCD_FillAll()实现LCD以

图形方式进行填充,填充起始地址为0X0000,dat为要填充的颜色数据。用画图函数LCD_UpdatePoint()实现在指定位置上画点,并刷新某一点。

3.3用户程序

本程序实现读取触摸屏的动作,并显示一个方点在对应的液晶屏幕上。程序运行时,首先进行必要的初始化,即初始化GPIO、初始化

LCM、将液晶屏片选信号CS置低、填充液晶屏幕背景色并校准屏幕,然后判断是否有触摸动作,如没有则继续等待,直到有触摸输入时,读取触摸动作并判断触摸是否有效,如无效则返回继续等待触摸,若有效,蜂鸣器响一声,获取当前触摸坐标并进行校准,最后将触摸结

果在液晶屏上显示。

总结

近年来,随着微处理器性能的不断提高,特别是ARM处理器系列的出现,嵌入式系统的功能也变得越来越强大。液晶显示器由于具有功耗低、外形尺寸小、价格低、驱动电压低等特点以及其优越的字符和图形的显示功能,已经成为嵌入式系统使用中的首选输出设备。本

设计从触摸屏和液晶显示屏的性能特性着手,设计实现了四线电阻式触摸屏的显示、控制技术,改善了传统嵌入式设备显示与控制的方

式,性价比较高,功耗低,提高了人机交互的友好性,使设备更加人性化,有较广阔的应用前景。

参考文献

[1]周立功.ARM与嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2005.

[2]吴明晖.基于ARM的嵌入式系统开发与应用[M].北京:人民邮电出版社,2004.

[3]欧庆于.基于S3C44B0X+uClinux的触摸屏设计[J].计算机与数字工程,2005(12).

[4]陈辰.ARM芯片S3C2410触摸屏驱动的研究与开发[J].科学技术与工程,2006(3).

[5]王洪.ARM HMS30C7202与触摸屏接口电路的设[J].计微计算机信息,2007(2).