基于嵌入式微处理器S3C44BOX的触摸屏接口设计

时间:2012-03-20

  摘 要: 介绍了触摸屏工作的基本原理,设计了基于S3C44BOX嵌入式微处理器的触摸屏硬件接口电路,研究了触摸屏程序的工作机制,在此基础上给出了其部分程序。

  1  引言

  触摸屏越来越广泛地应用于嵌入式系统中。

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

  随着芯片技术的发展,处理器内部的资源越来越丰富。如韩国三星半导体公司的32 位ARM处理器S3C44B0X 芯片,其内部集成了外部存储器控制器、LCD 控制器、4 个DMA 通道、2 通道异步UART 单元、1 个同步串行口(SIO) , 1 个多主I2C总线控制器、1 个I2S 总线控制器, 5 通道PWM 定时器及1 个内部定时器、71 个通用I/ O口、8 个外部中断源、实时时钟、8 通道10 位ADC等。由于其内部集成了10 位的A/ D 转换器,可以通过S3C44BOX 的I/ O 口模拟触摸屏的驱动信号实现触摸屏的控制。

  2  触摸屏工作原理

  电阻式触摸屏是一块4 层的透明的复合薄膜屏,如图1 所示,下面是玻璃或有机玻璃构成的基层,上面是一层外表面经过硬化处理从而光滑防刮的塑料层,中间是两层金属导电层,分别在基层之上和塑料层内表面,在两导电层之间有许多细小的透明隔离点把它们隔开。当手指触摸屏幕时,平常绝缘的两层导电层在触摸点位置就有了一个接触,触摸屏的两个金属导电层是触摸屏的两个工作面,在每个工作面的两端各涂有一条银胶,成为该工作面的一对电极,若在一个工作面的电极对上施加电压,则在该工作面上就会形成均匀连续的平行电压分布。如图2 所示,每个工作面有两个电极对,当在X 方向的电极对上施加一确定的电压,而Y 方向电极对上不加电压时,在X 平行电压场中,触点处的电压值可以在Y +(或Y2) 电极上反映出来,通过测量Y + 电极对地的电压大小,便可得知触点的X 坐标值。同理,当在Y电极对上加电压,而X 电极对上不加电压时,通过测量X + 电极的电压,便可得知触点的Y坐标。

图1  触摸屏的触摸示意图

图1  触摸屏的触摸示意图

图2  测量关系

图2  测量关系

  3  S3C44BOX与触摸屏的接口电路

  在该系统中没有使用专用的控制器,简而代之的是用了四个三极管(两个NPN 和两个PNP) ,外加一些偏流电阻、上拉电阻和滤波电容组成,如图3 所示,其中:TS_A ,TS_B ,TS_C和TS_D 分别由S3C44B0X 的GPC0 , GPC1 , GPC2 和GPC3 控制。X+ 和Y+ 分别连接到S3C44B0X的A/ D 转换输入接口AIN0 和AIN1 上。TS_A 和TS_C在X方向施加正向电压时,在Y方向检测到X坐标的对应值,同理,TS_B 和TS_D 在Y方向施加正向电压时,在X方向检测到Y坐标的对应值,分别由AIN0 和AIN1 采集。

图3  触摸屏的接口电路

图3  触摸屏的接口电路

  为了减少系统功耗和触摸屏所占CPU 资源,只在有落笔时触摸屏控制器才启动扫描,通过A/D 转换得到坐标的对应值,因此需在外部设计落笔检测电路,如图4 所示。中断连在EXTINT2上,设置中断为上升沿触发,平时为低, 按下屏时变高产生中断。

图4  落笔检测电路

图4  落笔检测电路

  4  触摸屏的状态

  在编写软件前, 要先对触摸屏的状态有所了解,在触摸屏的整个工作过程中,总共有3 个状态:空闲态、X 通道态和Y通道态。

  在没有触摸的时候,触摸屏处于空闲态,此时,为了便于接收中断,应设置TS_A = 1 ,TS_B =1 ,TS_C = 0 和TS_D = 1.为了获得触点的X轴坐标,需要把触摸屏设置成X通道态,即TS_A= 0 ,TS_B = 1 ,TS_C = 1 和TS_D = 0.此时,通过测量Y + (AIN1) 获取X 通道上的坐标。

  同理,为了获得触点的Y轴坐标,需要把触摸屏设置成Y通道态,即TS_A = 1 ,TS_B = 0 ,TS_C= 0 和TS_D = 1.此时,通过测量X+ (AIN0) 获取Y通道上的坐标。

  5  系统的软件设计

  整个系统软件包括触摸屏初始化、落笔中断服务程序,AD 测量子程序、滤波程序和坐标转换程序。当有触摸时, EXTINT2 变为高电平,产生中断。由S3C44B0X 响应该中断请求,进入落笔中断服务程序,在该程序中,启动AD 测量子程序,读取AD 转换结果,从而得到触点的坐标。整个过程,触摸屏在空闲态,X 通道态和Y 通道态之间转换,如图5 所示。

图5  触摸屏的状态转换

图5  触摸屏的状态转换

  系统软件中,初始化程序、滤波程序和坐标转换程序是一般常规通用程序。AD 测量子程序是获得X 轴和Y轴坐标的关键部分,其程序如下:

  / / 获取当前的坐标

  void TouchADC(uint16 3 x , uint16 3 y)

  {

  int i ;

  rADCPSR = 10 ;

  / / 切换为X 通道态准备A/ D 转换

  Set TouchX() ;

  Delay(1000) ;

  {

  / / 启动AIN1 通道A/ D 转换

  rADCCON = 0x1 | (1 < < 2) ;

  while (rADCCON & 0x1) ;

  while ( ! (rADCCON & 0x40) ) ;

  for (i = 0 ; i < rADCPSR ; i + + ) ;

  3 x = rADCDAT ;

  }

  rADCPSR = 10 ;

  / / 切换为Y通道模式准备A/ D 转换

  Set TouchY() ;

  / / 在X/ Y通道切换时要延时以使触摸屏稳定下来

  Delay(1000) ;

  {

  / / 启动AIN0 通道A/ D 转换

  rADCCON = 0x1| (0 < < 2) ;

  while (rADCCON & 0x1) ;

  while ( ! (rADCCON & 0x40) ) ;

  for (i = 0 ; i < rADCPSR ; i + + ) ;

  3 y = rADCDAT ;

  }

  / / 切换为空闲态,等待中断发生

  Set TouchIdle() ;

  / / 输出显示X ,Y坐标数值

  Out Put (0 ,″(X ,Y) = ( %3d , %3d) \ n″, 3 x , 3 y) ;

  }

  6  结语

  触摸屏已成为现代嵌入式设备人机交互的输入设备。本文详细介绍了触摸屏的工作原理,以三星公司ARM7 内核芯片S3C44B0X 为基础,完成了触摸屏的软硬件设计,实践证明系统稳定可靠,满足了在复杂的多任务环境中触摸屏快速响应的要求。

参考文献:

[1]. PC  datasheet https://www.dzsc.com/datasheet/PC+_2043275.html.
[2]. S3C44B0X  datasheet https://www.dzsc.com/datasheet/S3C44B0X+_589522.html.
[3]. SIO datasheet https://www.dzsc.com/datasheet/SIO_2032367.html.

上一篇:低功耗有毒气体探测器设计
下一篇:应用非对称双核MCU增强系统性能

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料