国产嵌入式操作系统下触摸屏的实现
国产龙芯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、 总结
本文以浪潮研制的国产手持式计算机为硬件平台,将触
- 概述十一种基于ARM的嵌入式操作系统(09-04)
- 概述及汇总ARM的嵌入式操作系统(11-23)
- 几位嵌入式技术大牛:嵌入式操作系统那么多,如何选择?(08-11)
- 电容式与电阻式触摸屏原理及区别(09-20)
- LT3751如何使高压电容器充电变得简单(08-12)
- 三路输出LED驱动器可驱动共阳极LED串(08-17)