ARM Cortex-A8/A9开发板 | ARM11开发板ARM11开发套件 | ARM9开发板ARM9开发套件 | 飞思卡尔I.MX28I.MX6开发板 |
tiny210/mini210开发板 | mini6410开发板/套餐 | Tiny6410开发板无线套件 | mini2440开发板/套餐 | micro2440开发板带核心板 | 友善开发板配件 模块 | QQ2440 V3 SBC-2410X |
FL2440 OK2440-IV V4 | OK2440-III OK2440V3 | TE2440-II TE2440V2 | OK6410 S3C6410 ARM11 | FL6410/OK6410B ARM11 | TE6410 S3C6410 ARM11 | TE-9263 AT91SAM9263 | 开发板配件 模块和其他 |
Xilinx开发板/fpga开发套件 | altera开发板/fpga开发套件 | 基于FMC FPGA/DSP子卡 |
BeagleBoard原厂开发板 | PandaBoard原厂开发板 |
TI DM3730 DevKit8500D | TI系列 omap3530开发板 | ATMEL系列 开发板 | Samsung系列 开发板 | 开发板配件-仿真器 模块 | NXP LPC3250 mini3250 |
Tiny210 三星S5PV210 | Mini210/Mini210s开发板 | Tiny4412开发板Cortex-A9 | Tiny6410开发板 ARM11 | mini2440开发板 ARM9 | micro2440开发板 ARM9 | mini6410开发板 ARM11 | 友善ARM开发板配件 模块 |
keil ARM仿真器/开发工具 | STM32开发板 Cortex-M3 | NXP LPC开发板Cortex-M3 | ATMEL系列 ARM开发板 | Luminary EKK8962开发板 | Freescale i.MX31开发板 | 三星s3c2440 s3c6410开发板 |
FL2440 OK2440-IV V4 | OK6410 S3C6410 ARM11 | FL6410/OK6410B ARM11 | OK210/-A Cortex-A8 | TE2440-II TE2440V2 | TE6410 S3C6410 ARM11 | TE-9263 AT91SAM9263 | ARM开发板配件 模块等 |
Real6410开发板/套餐 | Real210开发板/Real2410 | WIFI GPS GPRS模块摄像头 |
Xilinx开发板/开发套件KIT | Altera开发板/开发套件KIT | 配套模块 |
NXP LPC开发板 ARM7 | Cortex-M3 STM32开发板 | 最小系统模块类(初学者勿选) | 开发工具 仿真器 调试器 | TFT液晶屏LCD 液晶模块 |
DM642开发板/DM642实验箱 | DM6446开发板/DSP实验箱 | DSP仿真器 液晶屏 摄像头等 |
DM3730/AM3715/AM3359 | OMAP3530AM1808AM3517 | 飞思卡尔Cortex-A9开发板 | ATMEL系列ARM开发板 | NXP LPC3250 LPC1788 | Samsung系列ARM开发板 | STM32系列F207/F407 | ARM开发板配件-仿真器 模块 |
Realv210 S5PV210开发板 | Real6410开发板 ARM11 | WIFI GPS GPRS模块摄像头 |
NXP LPC开发板 ARM7 | Cortex-M3 STM32开发板 | ARM小系统模块(初学勿选) | 开发工具 ARM仿真器 调试器 | TFT液晶屏LCD 液晶模块 |
keil ARM仿真器/开发工具 | STM32开发板 Cortex-M3 | NXP LPC开发板Cortex-M3 | ATMEL系列 ARM开发板 | Luminary EKK8962开发板 | Freescale i.MX31开发板 | 三星s3c2440 s3c6410开发板 |
Exynos4412开发板A9四核 | UT-S5PV210 S5PC100 | UT-S3C6410开发板 ARM11 | idea 6410开发板 ARM11 | UT-S3C2450开发板 ARM9 | UT-S3C2416开发板 ARM9 | UT-S3C6410核心板 工控 |
Xilinx开发板 FPGA开发套件 | altera开发板 FPGA开发套件 | FMC模块 配件 下载线 |
DM642开发板/DM642实验箱 | DM6446开发板/DSP实验箱 | DSP仿真器 液晶屏 摄像头等 |
s3c2410 ARM9 FS2410 | s3c2440开发板 ARM9 | s3c44B0开发板 ARM7 | s3c6410 2450 2443/13 | PXA270 PXA320 PXA255 | Atmel 9200 9261 9G20 | Philips NXP开发板YL-LPC | FS-EP9315开发板ARM9 | LCD液晶屏TFT真彩/触摸屏 | ARM仿真器/仿真调试工具 | ARM开发板配套ARM核心板 |
三星s3c2410 s3c44B0 | 三星s3c6410 s3c2443 | Intel PXA270 PXA320 | UP-CUP OMAP5910平台 | FPGA Xilinx altera平台 | 配件-仿真器 模块 液晶屏LCD | 龙芯开发板UP-DRAGON-I | 物联网教学科研设备 | EDA/FPGA/SOPC教学科研 |
utu2440-F-V4.5 含核心板 | utu2440-S-V4.1 单板结构 | YC2440-F-V5.1开发板 豪华型 | YC-ePC-A系列人机界面 | Mars-EDA套件CPLD FPGA | 触摸屏LCD 摄像头 WI-FI模块 |
ARM开发板/开发平台 | FPGA开发板/开发平台 | 编程器/烧写器下载器烧录 | ZLG 仿真器ARM FPGA DSP | ZLG周立功逻辑分析仪 |
DSP初学者开发套件(DSK) | DSP仿真器/仿真系统 | DSP开发板/DSP试验箱 | DaVinci系列多媒体平台 | Xilinx FPGA大学计划产品 | SEED教学实验系统 | FPGA/DSP FPGA开发板 | TI原厂开发板套件/CCS软件 |
ARM开发板 | XSCALE开发板 | ARM仿真器 | SOPC开发板 | DSP开发板 | 达芬奇系列DSP开发平台 | DSP仿真器 | DSP实验箱 | DSP专业研究平台 | ARM实验箱系列 |
广嵌实验室项目产品 | GEC2440/GEC6410开发板 |
泰克Tektronix示波器 | 普源RIGOL示波器 | USB虚拟示波器 |
UT-S5PC100 UT-S5PV210 | UT-S3C6410开发板 ARM11 | idea 6410开发板 ARM11 | UT-S3C2450开发板 ARM9 | UT-S3C2416开发板 ARM9 | UT-S3C6410核心板 工控 | 开发板模块wifi gps等 |
EMA OMAP3530开发板 | EMA OMAP 3530核心板 |
三星s3c2410 s3c44B0 | 三星s3c6410 s3c2443 | Intel PXA270 PXA320 | UP-CUP OMAP5910平台 | FPGA Xilinx Altera平台 | 配件-仿真器 模块 液晶屏LCD | 龙芯系列 UP-DRAGON-I |
utu2440-F-V4.5 含核心板 | utu2440-S-V4.1 单板结构 | YC2440-F-V5.1开发板 豪华型 | 触摸屏LCD 摄像头 WI-FI模块 | Mars-EDA套件CPLD FPGA | ePC系列工控一体机ARM9 A8 |
ARM开发板/开发平台 | FPGA开发板/开发平台 | 编程器/烧写器下载器烧录 | ZLG 仿真器ARM FPGA DSP | ZLG周立功逻辑分析仪 |
DSP初学者开发套件(DSK) | DSP仿真器 | DSP开发板 | DSP实验箱 | Xilinx FPGA大学计划产品 |
ARM开发板 | XSCALE开发板 | ARM仿真器 | SOPC开发板 | DSP开发板 | 达芬奇系列DSP开发平台 | DSP仿真器 | DSP实验箱 | DSP专业研究平台 | ARM实验箱系列 |
ARM开发板S3C6410等 | Cortex-A8/ARM11仿真器 | ADSP Blackfin开发板 | FPGA Spartan-3E开发板 |
GEC2410开发套件ARM9 | GEC2440开发套件ARM9 |
泰克 示波器 |
本文以ARM920T内核的S3C2410芯片GX开发板为硬件平台,采用 Windows CE操作系统,设计了嵌入式系统触摸屏交互功能模块。并对有关技术问题做了分析与讨论。
1引言
嵌入式系统拉近了人与计算机的距离,形成一个人机和谐的工作与生活环境。从某一个角度来看,触摸屏作为嵌入式计算机系统中一体化的输入输出设备,在制造工业、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等方面均得到广泛应用,影响到人类工作与生活的各个领域并极具应用前景,它与嵌入式系统的交互功能的程序设计是整个系统设计的关键。本文描述的这样的设计过程,对其中的技术问题给出了详细的解释。功能设计基于ARM920T内核的S3C2410芯片,以GX开发板为硬件平台,是以 Windows CE为操作系统实现的图文交互界面模块。
2系统交互功能的设计
2.1 系统构架
通常嵌入式系统的构架可以分成四个部分:处理器、存储器、输入输出(I/O)和软件部分。由于多数嵌入式设备的应用软件和操作系统都是紧密结合的,在这里我们对其不加区分,这也是嵌入式系统和通用PC 系统的最大区别。触摸屏嵌入式设计框图见图一。
2.2 Windows CE的主要功能
它是一个全新开发的模块化的图形用户界面的多任务操作系统,是一个支持多种CPU,拥有良好通信能力的高性能、高效率的实时操作系统。OEM厂家可以加入自己所需要的任何模块,或者除去不需要的。系统中一个应用程序的故障不会引起整个系统失效。
图一 触摸屏嵌入式设计框图
2.3 操作系统对触摸屏的支持
操作系统对触摸屏的支持是按分层的思想进行的。首先是应用层,编写的应用程序调用触摸屏/鼠标事件API(在牵引层有相关的API函数);其次,在驱动层有支持触摸屏的驱动程序。通过统一接口来调用操作系统内核的触摸屏设备驱动程序完成最终的设备控制。从中取出触摸屏的实际坐标值,把该值记录在初始化程序中,当下次有应用程序需要调用触摸屏驱动程序时,触摸屏驱动程序就会去检查初始化程序,读取其中的校正值,并把经过校正,影射后相对坐标值返回该应用程序。
2.4 触摸屏电路
GX开发板为硬件平台,板载SHARP 3.5〞TFT 液晶屏LQ035Q7DB02,320×240,262,144 色,White LED 背光,带触摸屏。SHARP液晶自带四线电阻式触摸屏,可以直接和2410的触摸屏驱动电路连接,触摸位置直接用CPU 内置的ADC 电路采样而得。
图二 板载触摸屏电路
2.5 触摸屏的控制电路
触摸屏的控制是使用FM7843芯片完成的。FM7843是4线电阻触摸屏转换接口芯片。它具有同步串行接口的12位取样模数转换器。在125kHz吞吐速率和2.7V电压下的功耗为750μW,而在关闭模式下的功耗仅为0.5μW。
因此,ADS7843以其低功耗和高速率等特性,被广泛应用在采用电池供电的小型手持设备上。FM7843采用SSOP-16引脚封装形式,温度范围是-40~85℃。为了完成一次电极电压切换和A/D转换,需要先通过串口往FM 7843发送控制字,转换完成后再通过串口读出电压转换值。标准的一次转换需要24个时钟周期。由于串口支持双向同时进行传送,并且在一次读数与下一次发控制字之间可以重叠,所以转换速率可以提高到每次16个时钟周期。如果条件允许,CPU可以产生15个CLK的话(比如FPGAs和ASICs),转换速率还可以提高到每次15个时钟周期。FM 7843 通过同步串口与ARM 通讯,可通过SendSIOData()函数(uhal.c)向FM 7843发送数据;通过ReadSIOData()函数(uhal.c)从FM 7843 读出数据。将F 端口的第6 位置0和1,可以打开、关闭FM7843,F 端口的数据寄存器为PDATF(44b.h)。通过外部中断5可以判断是否有触摸动作,查询方式通过宏TCHSCR_IsPenNotDown()(tchscr.h)判断是否有触摸动作。
3.设计中的几个关键问题
3.1 定制Windows CE平台
Windows CE是一个多平台的、可裁减的32位嵌入式操作系统。他既适用于工业设备的嵌入式控智模块,也适用于消费类电子产品的开发。针对不同的目标设备硬件环境,在其内核基础上添加各种模块,从而形成一个定制的嵌入式操作系统。它包括了定制设备所需的一切,例如:联网能力、实时性和小内存占用以及多媒体和Web浏览功能等。
3.2 Windows CE`的驱动模式
Windows CE`设备的驱动模型有两种形式:流接口驱动(Stream Interface Driver)和本地设备驱动(Native Device Driver)从实现方式来看,无论那种驱动都可以采用单层和分层两种方式,多层设备驱动中实现的代码分两层:MDD(Model Device Driver,模型设备驱动)和PDD(Platform Dependent Driver,平台相关驱动)。MDD层中向GWES模块提供了DDI(Device Driver Interface,设备驱动接口)函数接口,实现了对于同一类设备的驱动程序所公用的功能,而PDD则实现了与平台的具体硬件设备相关的代码。MDD通过调用特殊的PDD函数来访问硬件。
3.3 触摸屏与显示器的配合算法
FM 7843 送回控制器的X 与Y 值仅是对当前触摸点的电压值的A/D 转换值,它不具有实用价值。这个值的大小不但与触摸屏的分辨率有关,而且也与触摸屏与LCD 贴合的情况有关。而且,LCD 分辨率与触摸屏的分辨率一般来说是不一样,坐标也不一样,因此,如果想得到体现LCD 坐标的触摸屏位置,还需要在程序中进行转换。转换公式如下:
x=(x-TchScr_Xmin)*LCDWIDTH/(TchScr_Xmax-TchScr_Xmin)
y=(y-TchScr_Ymin)*LCDHEIGHT/(TchScr_Ymax-TchScr_Ymin)
其中,TchScr_Xmax、TchScr_Xmin、TchScr_Ymax 和TchScr_Ymin 是触摸屏返回电压值x、y 轴的范围, LCDWIDTH、LCDHEIGHT 是液晶屏的宽度与高度。
3.4 操作系统对触摸屏的支持
操作系统对触摸屏的支持是按分层的思想进行的。首先是应用层,编写的应用程序调用触摸屏/鼠标事件API(在牵引层有相关的API函数);其次,在驱动层有支持触摸屏的驱动程序。通过统一接口来调用操作系统内核的触摸屏设备驱动程序完成最终的设备控制。从中取出触摸屏的实际坐标值,把该值记录在初始化程序中,当下次有应用程序需要调用触摸屏驱动程序时,触摸屏驱动程序就会去检查初始化程序,读取其中的校正值,并把经过校正,影射后相对坐标值返回该应用程序。
3.5 触摸屏的坐标的确认
通过上述方式采集的坐标是相对于触摸屏的坐标,需要转换成为LCD 坐标,这个过程之前需要进行两种坐标的校准工作,这里采用取平均值法。首先从触摸屏的4个顶角得到
2个最大值和2个最小值,分别计为x_min,y_min 和x_max,y_max。X,Y 方向的确定
如表1 所示。
表1 X,Y 方向的确定
方向 |
AD |
N-MOS |
P-MOS |
X |
A1N1 |
Q1(-)=0 Q2(+)=1 |
Q3(-)=1 Q4(+)=0 |
Y |
A1N0 |
Q1(+)=1 Q2(-)=0 |
Q3(+)=0 Q4(-)=1 |
当系统处于休眠状态时,Q1,Q3 和Q4 处于截止状态,Q2 导通。当触摸屏被按下时,首先导通MOS 管组Q1 和Q4,X+与X-回路加上+3.3V 电源,同时将MOS 管组Q2 和Q3 关闭,断开Y+和Y-,再启动处理器的A/D 转换通道1(AIN1),电路电阻与触摸屏按下产生的电阻输出分量电压,并由A/D 转换器将电压值数字化,计算X 轴的坐标。接着先导通MOS 管组Q2 和Q3,Y+与Y-回路加上+3.3V 电源,同时将MOS 管组Q1和Q4 关闭,断开X+和X-,再启动处理器的A/D 转换通道0(AIN0),电路电阻与触摸屏按下产生的电阻输出分量电压,并由A/D 转换器将电压值数字化,计算Y 轴的坐标。系统读到坐标值后,关闭Q1、Q3 和Q4,打开Q2,回到初始状态,等待下一次笔触。
确定X,Y 方向后,坐标值的计算公式如下:
X=(x_max-Xa)×320 /(x_max - x_min)
Y=(y_max- Ya)×240 /(y_max- y_min)
式中:
Xa=(X1+X2+...+Xn)/ n
Ya=(Y1+Y2+...+Yn)/ n
一般触摸屏将触摸时的X、Y 方向的电压值送到A/D 转换接口,经过A/D 转换后的X与Y 值仅是对当前触摸点的电压值的A/D 转换值,它不具有实用价值。这个值的大小不但与触摸屏的分辨率有关,而且与触摸屏与LCD 贴合的情况有关。如果想得到体现LCD 坐标的触摸屏位置,还需要在程序中进行转换。
4.结论
嵌入式系统的PDA越来越多的使用触摸屏做输入输出设备。本文以ARM920T内核的S3C2410芯片GX开发板为硬件平台,设计了嵌入式系统触摸屏交互功能模块,在全国大学生嵌入式系统竞赛的产品和作品中已多次应用。文中并对设计中的关键技术问题做了详细的分析与讨论。软件设计流程图和源代码及其它辅助程序等限于篇幅另文介绍。
本文作者创新点:
1.在S3C2410芯片GX开发环境下设计了嵌入式系统触摸屏交互功能模块。
2.编制了嵌入式系统触摸屏交互功能模块程序及辅助接口程序并对有关技术问题做了分析。
参考文献
[1]李中奇,张冬波,罗文俊.嵌入式Linux系统中触摸屏控制的研究与实现[J].工业控制计算机2005.02
[2] 刘红,覃光华,汪道辉.基于不带字库的图形LCD模块汉字显示解决方案 [J].微计算机信息.2004.12P71-72
[3]张晓明,超声波触摸屏PC机接口驱动程序设计[J].计算机应用.2004.05
[4]Eugene Olafsen 等著.王建华译.Visual C++技术内幕6.0(第五版)[M].北京希望出版社.2002
博航网 www.broadon.net 版权所有
京ICP备10051899号-2 京公网安备110108006479号