微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 国产嵌入式操作系统下触摸屏的实现

国产嵌入式操作系统下触摸屏的实现

时间:05-03 来源:互联网 点击:

  国产龙芯1A手持式计算机和ReWorks嵌入式操作系统,通过移植触摸中间件tslib为上层应用提供了统一的接口,实现了触摸屏的校准和测试。

  1 、综述

  龙芯系列处理器是中国自主研发的通用CPU,其中龙芯1系列处理器面向工业控制、消费电子(手机/MP4/掌上电脑等)等嵌入式应用。龙芯1A芯片片内集成了32位处理器核、2D GPU、VGA和LCD显示接口、以及南桥芯片组功能,可满足超低价位云终端、工业控制/数据采集、网络设备、消费类电子等领域需求。

  ReWorks嵌入式操作系统是中国电子科技集团某所基于"九五"、"十五"的技术成果自行研制、拥有全部源代码的嵌入式实时操作系统,适用于多种目标硬件环境(x86、mips)。

  在嵌入式尤其是手持式电子设备中,触摸屏因其友善的人机交互、操作方便灵活、输入速度快、占用空间少等优点,已逐渐取代物理键盘成为嵌入式计算机系统的主流输入设备。

  目前Windows或Linux等通用操作系统下触摸屏的调试方法已成熟,但尚没有针对国产的嵌入式操作系统ReWorks下触摸屏调试方法的研究,本文介绍基于国产龙芯1A处理器的手持式计算机为硬件平台,在国产嵌入式操作系统ReWorks下的触摸屏的校准和测试。

  2 、触摸屏校准原理

  在实际的应用中,通常触摸屏是作为与液晶屏配合使用的输入设备,需要将触摸屏采样得到的坐标与液晶屏的显示坐标做一个映射,即通常所说的触摸屏校准。其目的就是要通过读入几个点的坐标值后,计算出校准系数,将计算得到的系数保存后,以后每次点击触摸屏得到的触摸屏坐标,再通过校准系数后,得到液晶屏上的重合坐标。

  本文中手持式计算机采用四线电阻式触摸屏,触摸屏控制器采用ADS7843E,触摸屏校准库tslib采用五点校准。触摸屏控制原理如图2所示。

  

  图2 触摸屏控制原理图

  3、 ReWorks下校准及测试触摸屏的实现

  tslib是一个触摸屏支持库,为不同的触摸屏提供了一个统一的接口,还提供诸如滤波、去抖、校准之类的功能。tslib 从触摸屏驱动处获得原始的设备坐标数据,通过一系列的去噪、去抖、坐标变换等操作,来去除噪声并将原始的设备坐标转换为相应的屏幕坐标。本文将tslib移植到国产ReWorks操作系统+龙芯1A处理器(mips)平台,实现了ReWorks下触摸屏的校准、测试等功能。ReWorks系统下tslib层次结构如图3所示。

  

  图3 ReWorks系统下tslib层次结构图

  tslib 从触摸屏驱动采样到设备坐标进行处理再提供给应用端的过程如下:raw device --> variance --> dejitter --> linear --> application。tslib对驱动采样到的数据进行处理的过程如下:读取屏上5个点的坐标(Top Left,Top Right,Bottom Left,Bottom Right,Center),再进行一系列的变换,取样的5个点,实际上是包含3个不同的X坐标值,3个不同的Y坐标值,和scaling 值一共7个值,一起保存到pointercal文件中。

  将tslib移植到ReWorks系统后,运行ts_calibrate校准触摸屏,用触摸笔点击触摸屏四个角及中央五个点,tslib进行坐标换算,触摸屏校准界面如图4所示。

  

  图4 ReWorks下tslib校准触摸屏截图

  完成五点校准后,会自动生成pointercal校准文件保存在手持式计算机Flash根目录/ffx0下。本文中手持式计算机液晶屏的分辨率为480x640,校准时ReWorks终端输出信息如下。

  ------calibrate starting-------

  xres = 480, yres = 640

  ## Fri Mar 22 09:29:24 CST 2013 ##

  Took 5 samples...

  Top left : X = 3428 Y = 516

  Took 4 samples...

  Top right : X = 616 Y = 528

  Took 3 samples...

  Bot right : X = 629 Y = 3562

  Took 3 samples...

  Bot left : X = 3456 Y = 3558

  Took 3 samples...

  Center : X = 2031 Y = 2036

  ts_calibrate: 4368.914062 -1.150175 0.007765

  ts_calibrate: -279.180664 0.003222 1.137564

  Calibration constants: 286321152 -75377 508 -18296384 211 74551 65536

  Linear calibration constants: -75377 508 286321152 211 74551 -18296384 65536

  lin->bRawMode: 0

  reworks>

  reworks>cd /ffx0

  reworks>ll

  type size modify time name

  --- ---- ------- -----

  file 62 2013-03-22 09:30 pointercal

  ----------------

  1 files 62 bytes occupied

  校准完成后,可用ts_test测试一下校准效果,如图5所示。

  

  图5 ReWorks下触摸屏测试截图

  4、 总结

本文以浪潮研制的国产手持式计算机为硬件平台,将触

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top