• 首页
  • 中国
  • 基于嵌入式微处理器S3C44BOX的触摸屏接口设计

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

2023-11-01 48浏览
百检网是一家专业的第三方检测平台,汇聚众多拥有权威资质的第三方检测机构为你提供一站式的检测服务,做检测就上百检网。百检网让检测从此检测,一份报告全国通用,专业值得信赖。

  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 触摸屏的触摸示意图

图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 触摸屏的接口电路

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

图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 触摸屏的状态转换

  系统软件中,初始化程序、滤波程序和坐标转换程序是一般常规通用程序。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 为基础,完成了触摸屏的软硬件设计,实践证明系统稳定可靠,满足了在复杂的多任务环境中触摸屏快速响应的要求。


百检网秉承“客户至上,服务为先,精诚合作,以人为本”的经营理念,始终站在用户的角度解决问题,为客户提供“一站购物式”的新奇检测体验,打开网站,像挑选商品一样简单,方便。打破行业信息壁垒,建构消费和检测机构之间高效的沟通平台