



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
黄坤,施国梁(苏 州 大 学 电 子 信 息 学 院 ,江 苏 苏 州 215006)摘 要 :手持终端是一种便于携带的数据处理终端 ,因其便携性和强大的数据处理能力而被广泛使用 。 为手持终端设计一款友好的人 机界面可提高其性能和效率 。 对此提出了一种应 用 源 码 开 放 的 C/GUI 进行界面设计的方案 ,给 出 了 基 于 ARM 平台手持终端的 C/GUI 移 植 流 程 ,同 时 叙 述 了 在 C/GUI 中整合触摸屏功能的方法 。 最 后 给 出 了 C/GUI 在手持车辆轨迹复现终 端 界 面 设 计 中 的 应 用 实 例 。关 键 词: 手 持 终 端 ;C/GUI;触 摸 屏 ;界 面 设 计中 图 分 类 号 :TP368文 献 标 识 码 :A文 章 编 号 :1009-3044(2011)03-0573-03Design & Implementation of Handheld Terminal Interface Based on C/GUIHUANG Kun, SHI Guo-liang(School of Electronics and Information Engineering, Soochow University, Suzhou 215006, China)Abstract: Handheld terminal (HHT) is a portable data processing terminal. Because of its portability and powerful data processing capabili- ty, it has been widely used. To design a friendly interface for HHT can improve its performance and efficiency. The program of interface development with open source code C/GUI for HHT is presented in this paper. The porting of C/GUI to HHT based on ARM9 is described. The method of using touch screen in C/GUI is given out. The application of C/GUI in a portable accident vehicle trajecto- ry reconstruction terminal is provided.Key words: hand-held terminal; C/GUI; touch screen; interface design近 年 来 ,随着信息产业的高速发展 ,嵌 入 式 系统技术应用已遍及工业 、通 讯 、交 通 、消费电子等众多领域 。 手持终端是嵌入式技 术的主要应用之一 ,是一种便于携带的数据处理终端 ,因其便携性及强大的数据存储 、计 算 能 力 ,得到了广泛应用 。 为手持终端添加 触 摸 屏 功 能 后 ,可大大提高手持终端的可操作性 。 在 此 基 础 上 ,为手持终端设计一款简洁友好的人机界面 ,可方便用户操作 ,提 高 工 作 效 率 ,对手持终端设备的普及起到重要的作用 。本文阐述了在以 ARM9 为平台的手持终端中 , 采 用 C/GUI 进行界面设计并添加触摸屏功能的具体流程 。 本文主要内容包含 C/GUI 的移植以及触摸屏功能在 C/GUI 中 的 实 现 。 文章最后给出了 C/GUI 在手持车辆轨迹复现终端1界面设计中的应用实例 。1 嵌入式手持终端的基本组成手持终端作为一种便携式的数据处理终端设备 ,用 途 十 分 广 泛 。 生活中常见的手持终端有 PDA、智 能 手 机 、条码数据采集器 、手 持 IC 卡 数 据 终 端 、手持指纹采集终端 、抄 表 机 等 等 。 虽 然 用 途 不 同 ,但大都具备以下基本特征 :数据存储及计算功能 、可 进 行 二 次 开 发 、能与其他设备进行数据通讯 、人 机 界 面 、电 池 供 电 。 本文中的手持终端具有无线数据采集 、触 摸 屏 控 制 、LCD 显 示 功 能 。 系 统 硬 件 组 成 如 下 :主控制芯片采用三星公司的 S3C24402微 控 制 器(ARM9 内 核);外 扩 2M 的 SDRAM 及 64M 的 NANDFLASH;根 据 需 要 扩 展了无线数据采集模块 ;使 用 240*320 像 素 的 6.5 万 色 彩 色 LCD;输 入 使 用 4 线电阻式触摸屏 。 图 1 为系统的硬件框图 。2 C/GUI 在手持终端中的移植手持终端中大多内嵌实时操作系统 ,以保证多任务实时运行 。 本 例 采 用 Micrium 公 司 源 码 开 放 的 C/GUI 组 件3搭 配 C/OS-II 操 作 系 统4完成手持终端的界面设计 。 C/GUI 在 C/OS-II 上 的 移 植 ,是 在 C/OS-II 已经成功移植到 ARM9 的基础上进行的 。 由 于 移 植 C/OS-II 不是本文论述的重点, 具 体 过 程 省 略 。 下 面 详 细 介 绍 C/GUI 在 ARM9 平 台 的 手 持终端中的移植过程 。2.1 C/GUI 介 绍C/GUI 是 Micrium 公司设计的一款与处理器和 LCD 控 制 器无关的图形用户界面软 件 组 件 。 它 完 全 是 以 ANSI-C 编 写 的 ,可 以 方 便 的 工作于单任务和多任务环境下 , 具 有 非常好的移植特性和可裁减性 。 针 对 具 体 应 用, 只 要 编 写 好 LCD 的 驱 动 程 序 ,通过对相应配置宏的设置 ,就能很轻松的将 C/GUI 嵌 入到具体的应用设计中 。 用 户 可 在 Micrium 公司官方网站上下载 C/GUI 的 源 代 码 包 。 本例中使用目前最新的完整版开源代码包 C/GUI 3.90 进 行 移 植 。 表 1 给 出 了 C/GUI 文件目录结构及移植说明 。图 1 系 统 硬 件 框 图参 照 表 1 中 对 C/GUI 目录结构的分析 , 可 以 看 出C/GUI 在 手持终端中的移植主要任务是根据手持终端 所 采 用 的 CPU、LCD 及 触 摸 屏 型 号 , 对 Config 目 录 中 LCDConf.h、GUITouchConf.h、GUIConf.h 文 件 进 行 配 置 ,编 写 LCD 及 触 摸 屏 驱 动 。 结合本系统中 所采用的硬件环 境 ,给出如下移植参考流程 。 本节先介绍不支持触摸屏情 况下的移植过程 , 对触摸屏功能的支持在下 节 中 详 细 介 绍 。首 先 根 据 实 际 的硬件环境定制 C/GUI, 即 配 置 GUIConf.h、LCDConf.h 文 件 。 GUIConf.h 文件主要定义了 C/GUI 所 支 持 的 功 能 ;LCDConf.h 文件定义了显示 屏 类型 ,包括调试板模式 、水平及竖直方向的分辨率等 。 这两个文件的修改需根据具体界面设计的需要及所采用 LCD 的规格进行配置 ,下面给出本例中所采用的配置参数 ,以 供 参 考 。/* GUIConf.h 文 件 */#define GUI_OS (1) /支持多任务操作系统 ;#define GUI_SUPPORT_TOUCH (0) /暂时设置为不支持触摸屏 ,下文中触摸屏驱动添加成功后将其改为 1 即 可 ;#define GUI_SUPPORT_UNICODE (1) /支 持 Unicode 字 符 串 ;#define GUI_SUPPORT_CHINESE (1) /支 持 中 文 字 体 ,需 在 FONT 目录中添加中文字体库 ;#define GUI_DEFAULT_FONT (&GUI_Font6x8) /设置系统默认字体 ;#define GUI_ALLOC_SIZE (1024*1024) /设置动态存储区大小 ,可 根 据 实 际 LCD 尺 寸 进 行 修 改 ;#define GUI_SUPPORT_MEMDEV (1) /支 持 内 存 设 备 ;#define GUI_SUPPORT_AA (1) /支持抗锯齿功能 ;/* LCDConf.h 文 件 */#define LCD_XSIZE (240) /设 置 LCD 的 X 轴 分 辨 率 ,根 据 LCD 实际分辨率设定 ,本 例 中 采 用 LCD 的 分 辨 率 为 240*320,故 设 为 240;#define LCD_YSIZE (320) /设 置 LCD 的 Y 轴 分 辨 率 ;#define LCD_BITSPERPIXEL (16) /设 置 LCD 每个像素用多少位数据表示 ,本 例 中 采 用 的 LCD 支 持 16 位 RGB(红 绿 蓝 )色 彩 ,即 16 位表示一个像素 ,这 16 位 中 的 5 位 用 于 R,6 位 用 于 G,5 位 用 于 B;#define LCD_CONTROLLER (1) /设 置 LCD 控 制 器 类 型 ,本 文 所 用 LCD 底层驱动是根据 C/GUI 提 供 的 LCDWin.c 基 础 上 修 改 而 来 ;#define LCD_SWAP_RB_0 (1) /设置交换蓝色分量和红色分量 ;完成上述配置后 ,需 添 加 LCD 底 层 操 作 的 API 函 数 ,其中最重要的两个基本函数为画点函数和读点函数 。 水 平 画 线 、垂 直 画 线 以及填充矩形等底层函数均可 通过调用基本函数来完成 。 C/GUI 就是通过对这些底层 API 函数的调用来完成各种复杂的画图功 能 。 本例中画点函数 LCD2440_SetPixel( ):void LCD2440_SetPixel(int xp, int yp, U16 color),其 中 参 数(xp,yp)为 画 点 的 坐 标 ,color 为 点 的 颜 色 ;读 点 函 数 LCD2440_GetPixel( ):U16 LCD2440_GetPixel(int xp, int yp),其 中 参 数(xp,yp)为 读 点 的 坐 标 ,最后应返回坐标所在点 的 颜 色 值 。最 后 完 成 C/GUI 与 C/OS-II 的 整 合 。 在 C/OS-II 中 使 用 C/GUI,关键是通过调用 C/OS-II 中内核接口函数 ,达 到 对 LCD 资源的互斥访问 , 实现任务间同步 。 此 项 修改与硬件环境无关 , 主 要 工 作 为 : 在 GUI_X.c 文 件 中 定 义 GUI 任 务 的 信 号 量 (static OS_EVENT *DispSem),添 加 GUI 任务的锁定函数(GUI_X_Lock( )与 解 锁 函 数(GUI_X_Unlock( )。3 在 C/GUI 中整合触摸屏功能在手持终端中使用触摸屏作为用户输入 、控 制 接 口 ,具 有 操 作 简 单 ,定位准确等优点 。 C/GUI 本 身 支 持 键 盘 、鼠 标 、触 摸 屏 等 外 设 ,并在源码级对其消息进行了响应 。 在 C/GUI 中整合触摸屏功能 ,只需修改相应配置文件并实现触摸屏底层驱动 。3.1 四线电阻式触摸屏的底层驱动实现 触摸屏种类繁多 ,其中电阻式触摸屏成本低 ,精 度 高 ,因此应用最为广泛 。 本例中采用四线电阻式触摸屏 。 四线电阻式触摸屏每 次 按 压 后 ,将 产 生 4 个 电 压 信 号: X +、Y +、X 、Y ,它 们 经 过 A /D 转换后得到相应的值 。 LCD 的分辨率与触摸屏的分辨率一般是 不 一 样 的 ,坐 标 也 不 一 样 ,因 此 ,如果想得到体现 LCD 坐标的触摸屏位置 ,还需要在程序中进行转换 。 手持终端多采用高档单片机作 为 CPU,例 如 ARM 系 列5,此 类 CPU 大 都 内 部 集 成 ADC 模 块 。 例如本例中所采用的 ARM9 内 核 微 处 理 器 S3C2440,其 内 置 8 信 道 的 10bit 模 数 转 换 器(ADC),ADC 部 分 与 CPU 的触摸屏控制器协同工作 ,完 成 对 触 摸 屏 X 轴 与 Y 轴绝对坐标的测量 。 程 序 中 将 获 取 的 X 轴 与 Y 轴的绝对坐标值分别赋给全局变量 TX、TY,在 需 要 时 调 用 TX、TY 的 值 ,再 经 过 C/GUI 内部函数处理来实现触摸屏绝 对 坐 标 到 LCD 相对坐标的转换 ,进而对用户的触摸操作做出响应 。3.2 触 摸 屏 与 C/GUI 的 整 合在 C/GUI 中整合触摸屏功能 ,主 要 是 对 GUIConf.h、GUITouchConf.h 和 GUI_ X. c 文 件 进 行 修 改 。首先将上文中提到的 GUIConf.h 文件中的宏定义 GUI_SUPPORT_TOUCH 设 置 为 1。#define GUI_TOUCH_AD_TOP 905 /触摸屏最上边的 A/D 转 换 数 值 ;#define GUI_TOUCH_AD_RIGHT 915 /触摸屏最右边的 A/D 转 换 数 值 ;#define GUI_TOUCH_AD_BOTTOM 107 /触摸屏最下边的 A/D 转 换 数 值 ;#define GUI_TOUCH_SWAP_XY 1 /是 否 交 换 X、Y 轴 坐 标 ,1 为 交 换 ;#define GUI_TOUCH_MIRROR_X 0 /是 否 对 X 轴 进 行 镜 像 ,0 为 不 交 换 ;#define GUI_TOUCH_MIRROR_Y 0 /是 否 对 Y 轴 进 行 镜 像 ,0 为 不 交 换 ;C/GUI 通 过 调 用 GUI/core 目 录 下 GUI_TOUCH_DriverAnalog.c 文 件 中 的 GUI_TOUCH_Exec( )函数获取触摸屏触点的绝对坐标 值 。 此函数还实现了触点绝对坐标到 LCD 相对坐标的转换 。 GUI_TOUCH_Exec( )函数是通过调用 GUI/core 目 录 下 GUI_X.c 文 件 中 的 GUI_TOUCH_X_MeasureX( )函 数 及 GUI_TOUCH_X_MeasureY( )函数来获取触点绝对坐标 ,因 此 还 需 要 修 改 GUI_ X.c 文 件 中 的如 下 两 个 函 数 :int GUI_TOUCH_X_MeasureX(void) /调 用 触 点 X 轴 绝 对 坐 标return TX; /TX 为上文定义的全局变量 int GUI_TOUCH_X_MeasureY(void) /调 用 触 点 Y 轴 绝 对 坐 标return TY; /TY 为 全 局 变 量最 后 ,在 C/GUI 与 C/OS-II 相结合的图形界面系统中 ,系统需要实时得到触点的坐标 。 本例中的实现方法是 :在 C/OS-II 中 创建一个单独的触摸屏任务来获取触点坐标 ,具体代码参考如下 :OSTaskCreate(TouchTask, (void *)0, (void *)&TouchExecStkTASK_STK_SIZE0 - 1, 7);/创建触摸屏任务 ,任 务 函 数 为 TouchTask( ),任务优先级按实际需要进行设定 ,优 先 级 越 高 ,则响应速度越快 ,此 处 设 为 7;void TouchTask(void* data)while(1)GUI_TOUCH_Exec(); OSTimeDly(10);/每 秒 调 用 100 次 ,参数越小越灵敏 ;至 此 ,C/GUI 及触摸屏功能在手持设备中的移植结束 。 下 文 给 出 了 C/GUI 在 基 于 ARM9 平 台的手持车辆轨迹复现终端界面设计中的应用实例 。4 C/GUI 在手持终端界面设计中的应用实例本例中所采用 的手持终端用于复现事故车辆的行驶轨迹 1,辅助交警勘察交通事故现场 。 硬 件部分的组成框图见第一节 。 一个完整的车辆轨迹复现系统由手持终端和车载终端构成 。 车 载 终端负责采集车辆 行驶时的角速度和加速度 。 手持终端通过无线接收模块接收车载设备发送的采 样 数 据 , 并通过相应算法计算出车辆行驶轨迹 , 以 图 形 方 式 在 LCD 中 复 现 出 来 。 手 持 终 端 采 用C/GUI+C/OS-II+触摸屏的解决方案 ,实现了用户控制 、图形界面显示功能 。系统的控制流程见图 2。系统中创建了三个基本任务 ,分 别 为 :GUI 任 务 ,调 用 C/GUI 绘 制 界 面 、复 现 轨 迹 ;触 摸 屏 任 务 ,实时采集用户触点坐标 ,操作手持终端完成工作 ;空 闲 任 务 ,优 先 级 最低 ,空 闲 时 调 用 。手持终端的界面设计见图 3。 界面划分为图形显示区和按钮控制区 。 图形显示区以图形方式 复现出车辆最后二 十秒的行驶轨迹 ,即图中曲线部分 ,轨迹表明车辆左拐弯行驶 。 按 钮 控 制 区 设 置 了 三 个 按 钮 ,当用户在触摸屏上点击不同按钮时 ,执 行 以 下 操 作 :send:建 立 无 线 连 接 ;receive: 接 收 无 线 数 据 ;show:调 用 算 法 ,复 现 轨 迹 。5 结论实 践 证 明
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年九年级物理同步提高计划
- 研发部门2025年上半年工作总结与下半年工作计划
- 护理沟通50项技术操作流程
- 2025版特色商业街商铺递增出租管理协议
- 2025版智能家居产品线上线下联合销售合同
- 2025年木材表面打磨处理合同范本
- 2025版文化产业融资居间服务合同范本
- 2025年度钛精矿原料加工与质量控制合同
- 2025德宏州林业和草原局信息公开专栏生态文明建设与政策宣传合同
- 2025版离婚协议书婚姻解体后子女抚养费用及共同财产分割协议
- 面试必 备:援藏事业编面试题目全解析
- 2024-2025学年七年级数学下学期期末测试卷(人教版)原卷版
- 2025年生猪屠宰检疫竞赛题库
- 2025年中级银行从业资格之中级风险管理真题及答案详解(基础+提升)
- 数控加工程序管理办法
- 2025年综合类-农艺师考试-农艺师考试-园艺工考试-高级花卉工考试历年真题摘选带答案(5卷100题)
- 小学六年级综合实践环境保护计划
- 联邦学习框架下的设备故障智能诊断算法研究
- 婚内财产协议模板
- 中国钼金属行业市场调查报告
- 物业追缴奖励方案(3篇)
评论
0/150
提交评论