ARM7202触摸屏接口设计方案

最新更新时间:2011-10-03来源: chinaaet关键字:外部中断  触摸屏控制器  中断检测 手机看文章 扫描二维码
随时随地手机看文章

  1 引言

  不同的应用领域触摸屏的设计方式也各不相同,一般有以下三种:⑴应用触摸屏模块。触摸屏模块提供标准的硬件接口与应用系统(一般为PC或X86架构的工控机)相连,安装驱动程序后即可工作,基本无需开发;⑵扩展触摸屏控制器。这是嵌入式系统中设计触摸屏普遍使用的方法,常用的触摸屏控制芯片有ADS7843、ADS7846等,这些芯片内部集成了A/D转换器和触摸屏的驱动电路,同时要设计一定的软件;⑶与前面方式⑵相仿,有些处理器集成了A/D转换器,通过IO口模拟触摸屏的驱动信号也可实现触摸屏的控制。 

  ARM7202集成了ARM7TDMI CPU核、存储器管理单元(MMU)、8KB高速缓冲存储器(Cache),主频达70MHz。是一高性能嵌入式处理器。除触摸屏控制器外,其片内还包含了其他丰富的资源,如LCD控制器、SDRAM控制器、中断控制器、DMA 控制器等[1]。ARM7202与触摸屏的接口在软/硬件设计上有些与前面三种不同的方面。

  2 硬件设计

  2.1 电阻触摸屏原理

  电阻触摸屏是一多层的复合膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透明的导电层,上面再盖有一层塑料层,它的内表面也涂有一层透明的导电层,在两层导电层之间有许多细小的透明隔离点把它们隔开绝缘,如图1。当手指触摸屏幕时,平常绝缘的两层导电层在触摸点位置就有了一个接触,控制器检测到这个接触后,其中一面导电层接通Y轴方向的5V均匀电压场,另一导电层将接触点的电压引至控制器进行A/D转换,得到电压值后与5V相比即可得触摸点的Y轴坐标,如图2。同理得出X轴的坐标。这是所有电阻触摸屏共同的基本原理。

 

  2.2 ARM7202与触摸屏的接口

  ARM7202片上资源包含触摸屏控制器,用于控制4线电阻式触摸屏。在5路A/D转换通道中A0和A1是用于触摸屏坐标采集的,同时芯片提供ATSXP、ATSXN、ATSYP和ATSYN四根扫描线分别对X方向和Y方向进行扫描。ATSXP和ATSXN在X方向施加正向电压时,在Y方向检测到X坐标的对应值;同理ATSYP和ATSYN在Y方向施加正向电压时,在X方向检测到Y坐标的对应值,分别由A0和A1采集。为了减少系统功耗和触摸屏所占CPU资源,只在有落笔时触摸屏控制器才启动扫描,通过A/D转换得到坐标的对应值,因此需在外部设计落笔检测电路,如图3所示。图中IRLML6302和IRLML2402分别为PMOSFET和NMOSFET,作为开关管控制X方向和Y方向的扫描输出。PB7接上拉电阻,检测落笔中断,当有落笔时,PB7检测到低电平,触发中断。PB6为中断检测电路的使能信号,当PB6为高电平时,中断有效,触摸屏扫描无效;反之中断无效,触摸屏扫描有效。

 

 

  3 触摸屏控制程序机制

  不同的操作系统下对触摸屏的应用各有不同,但都包括了设备的初始化、设备读写及中断响应等基本模块。触摸屏的驱动程序涉及到两个中断:落笔中断和触摸屏A/D转换中断。所包含的程序模块有:触摸屏初始化、落笔中断服务程序、A/D中断服务程序、滤波程序和坐标转换程序。这里重点说明触摸屏的两个中断。

  触摸屏初始化程序完成外部电路的中断设置和采样率的设置,并将触摸屏的A/D中断和A/D转换器电源关闭,使外部电路中断有效。

  有落笔时,外部中断被触发,进入落笔中断服务程序。在落笔中断服务程序中清中断源,关外部中断,使外部中断电路无效,打开触摸屏中断和AD转换器电源。此时触摸屏电路开始扫描触摸屏。触摸屏A/D转换结束后,产生A/D中断,进入A/D中断服务程序。在触摸屏A/D中断服务程序中,清A/D中断,关触摸屏A/D中断,读A/D转换值。此时还要判断落笔是否继续,若无落笔,开外部电路中断,使外部中断电路有效,关A/D中断和A/D转换器电源,进入节能模式,如图4(a);若还有落笔,要继续开触摸屏A/D中断,使外部中断电路无效,触摸屏的A/D转换继续进行,如图4(b)所示。

 

图4 触摸屏程序流图

  由A/D转换得到的值是触摸屏上触摸点的X坐标和Y坐标的值,要通过一定的方法转换为显示屏上的坐标。限于篇幅这里省略,其原理和实现方法见参考文献[2]。在A/D转换时,每次由A/D转换寄存器得到4组转换值,可以设计一个滤波程序以提高检测精度。

  4 程序设计

  触摸屏的应用程序模块有:触摸屏初始化、落笔中断服务程序、A/D中断服务程序、滤波程序和坐标转换程序。初始化程序、滤波程序和坐标转换程序是一般常规通用程序。触摸屏驱动程序其核心是落笔中断和A/D转换这两个中断服务程序,以下是在uc/OS操作系统下触摸屏驱动程序的两个中断服务程序,其详细说明见注释。

  static void TouchPenDownISR(int level) //落笔中断服务程序

  {

  unsigned int status;

  status=*(volatile int *)PioCIS&0xfff;

  if (status & 0x80 )

  {

  *(volatile int *)PioCIC|=0x80; //清落笔中断

  *(volatile int *)PioCIM&=~0x80; //关落笔中断

  *(volatile int *)PioCDR&=~0x100; //使落笔中断检测无效,触摸屏扫描电路有效

  *(volatile int*)ADCCR&=~0x80; //开A/D电源

  *(volatile int*)ADCTPCR|=0x80|0x40; //触摸屏读有效,A/D中断有效

  }

  }

  static void TouchINIISR(int level) //触摸屏A/D转换中断服务程序

  {

  int x[4];

  int y[4];

  *adcisr |= 0x80; //清触摸屏A/D中断

  TouchSample(x,y); //得到X/Y方向数值

  *(volatile int*)ADCTPCR&=~(0x80|0x40); //触摸屏读无效,触摸屏A/D中断无效

  *(volatile int *)PioCDR|=0x100; //使落笔中断检测有效,触摸屏扫描电路无效

  if(*(volatile int *)PioCDR&0x80) //检测到起笔

  {

  *(volatile int *)PioCIC|=0x80; //清落笔中断

  *(volatile int *)PioCIM|=0x80; //开落笔中断

  *(volatile int *)ADCCR|=0x80; //关A/D电源

  *(volatile int*)ADCTPCR&=~(0x80|0x40); //触摸屏读无效,触摸屏A/D中断无效

  }

  else //如仍有落笔

  {

  *(volatile int *)PioCDR&=~0x100; //使落笔中断检测无效,触摸屏扫描电路有效

  *(volatile int *)ADCTPCR|=0x80|0x40; //触摸屏读有效,触摸屏A/D中断有效

  }

  }

  5 结束语

  根据上述对触摸屏工作机制的分析,笔者在实时嵌入式操作系统uc/OS下编写的触摸屏驱动程序应用于基于ARM7202的智能控制器,实践证明系统稳定可靠,满足了在复杂的实时多任务环境中触摸屏快速响应的要求。

关键字:外部中断  触摸屏控制器  中断检测 编辑:探路者 引用地址:ARM7202触摸屏接口设计方案

上一篇:基于场所人数检测的照明节能控制系统设计
下一篇:基于玻璃基材的PDLC讨论

推荐阅读最新更新时间:2023-10-18 15:50

STM32F107VCT6的外部中断配置
存在的问题:如果将GPIO15管脚用于外部中断功能,但中断处理函数中默认找不到对应的中断处理函数。 main.c文件中 int main(void) { SystemInit(); __disable_irq(); RCC_Configuration(); EXTI_Configuration(); __enable_irq(); IWWDG_Configuration(); while (1) { WDG_Func(); //每250ms喂狗一次 } } hw_config硬件配置文件中 void EX
[单片机]
STM32外部中断学习笔记
中断 分类 STM32的EXTI控制器支持19 个外部中断/ 事件请求。每个中断设有状态位,每个中断/ 事件都有独立的触发和屏蔽设置。 STM32的19个外部中断对应着19路中断线,分别是EXTI_Line0-EXTI_Line18: 线0~15:对应外部 IO口的输入中断。 线16:连接到 PVD 输出。 线17:连接到 RTC 闹钟事件。 线18:连接到 USB 唤醒事件。 触发方式:STM32 的外部中断是通过边沿来触发的,不支持电平触发。 外部中断分组:STM32 的每一个GPIO都能配置成一个外部中断触发源,STM32 通过根据引脚的序号不同将众多中断触发
[单片机]
STM32<font color='red'>外部中断</font>学习笔记
51单片机系列——外部中断怎么写(讲解+实例:改变流水方
在学习51单片机中断的时候常常被外部中断、定时/计数器和串行口弄的稀里糊涂的,本来就是个小小学渣,怎么能经得起折磨!!! 闲来无事,今天写一遍这个来介绍说明一下外部中断INT0、INT1。其他的小编以后再整理给大家。 先上一个实例: 题目: 实例仿真图: 程序 #include reg52.h #include intrins.h #define uint unsigned int void delay1s(void) //延时1s { unsigned char a,b,c; for(c=167;c 0;c--) for(b=171;b 0;b--) for(a=16;
[单片机]
51单片机系列——<font color='red'>外部中断</font>怎么写(讲解+实例:改变流水方
MSP430G2553(一)IO外部中断说明与实例
这一篇文章将说明MSP430G2553的IO中断配置,整个P1的IO都可以配置IO中断,但中断处理函数只有一个,MSP430和大多数MCU一样提供上升沿、下降沿选择。 在Launchpad上有按键S2,接在P1.3口,当按下后P1.3将接入高电平,从而触发中断。 所有寄存器的具体名称和地址,可以查看M430G2553 datasheet 第 21页中对于P1的寄存器定义 在实例代码中,配置了P1.3和P1.6的LED灯,当按下P1.3的按键产生中断,LED灯将切换点亮 1.按键的中断配置 要配置按键中断,需要先设置P1.3口为输入,并且设置上拉电阻以保障稳定性, P1DIR &= ~BIT3;//设置P1.3为输入 P1REN
[单片机]
STM32系统学习——EXTI外部中断
一、 EXTI 简介 EXTI(External interrupt/event controller)—外部中断/事件控制器,管理了控制器的 20个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。EXTI 可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。 二、 EXTI 功能框图 EXTI 的功能框图包含了 EXTI 最核心内容,掌握了功能框图,对 EXTI 就有一个整体的把握,在编程时思路就非常清晰。EXTI功能框图见图。 在图可以看到很多在信号线上打一个斜杠并标注“20”字样,这个表示在控制器内部类似的信号线路有 20 个,这
[单片机]
STM32系统学习——<font color='red'>EXTI</font>(<font color='red'>外部中断</font>)
stm32学习笔记——外部中断的使用
基本概念 stm32中,每一个GPIO都可以触发一个外部中断,但是,GPIO的中断是以组为一个单位的,同组间的外部中断同一时间只能使用一个。比如说,PA0,PB0,PC0,PD0,PE0,PF0,PG0这些为1组,如果我们使用PA0作为外部中断源,那么别的就不能再使用了。在此情况下,我们只能使用类似于PB1,PC2这种末端序号不同的外部中断源。每一组使用一个中断标志EXTIx。EXTI0-EXTI4这5个外部中断有着自己单独的中断响应函数,EXIT5-EXIT9共用一个中断响应函数,EXIT10-EXIT15共用一个中断响应函数。 对于中断的控制,stm32有一个专用的管理机构:NVIC。对于NVIC的详细解释,可以参考《AR
[单片机]
MSP430外部中断源程序
#include msp430x41x.h unsigned int L7=~((0X01) 6); unsigned int L8=~((0X01) 7); void main(void) { WDTCTL = WDTPW + WDTHOLD; // 禁止看门狗定时器 //P1DIR |= 0x01; // 设置P1.0为输出方向 P2DIR = 0xff; //设置P2口方向为输出 P2OUT = 0xff; P2OUT |= BIT0; P1IE |= 0x10; // P1.4中断使能 P1IES |= 0x10; // P1.4设置为高低边沿中断 P1IFG &= ~
[单片机]
首款单层多点触摸电容式触摸屏控制器【IDT】
    IDT® 公司(Integrated Device Technology)推出业界首款触摸屏控制器 IC,为 IDT  专有的单层多点触摸投射电容式触摸屏技术而优化。这一新的触摸屏技术和控制器解决方案提供了真正的单层解决方案,而无需其他解决方案要求的交叉隔离点,却保持了全面的多点触摸功能,这是市场的一次革命。其结果是实现了更低成本的整体解决方案,而不影响产品的功能和性能。典型应用包括移动手机、个人导航设备,以及5 英寸屏幕尺寸的手持游戏平台。         IDT LDS7000 和 LDS7001 是高性能、多点触摸、全分辨率的触摸屏控制 IC,分别有多达 30 到 35 个传感器通道。这两款控制器都以 8m
[电源管理]
首款单层多点触摸电容式<font color='red'>触摸屏控制器</font>【IDT】
小广播
最新电源管理文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved