网站建设
  简约型网页设计套餐998
  实惠型网站建设套餐2580
  综合型网站制作套餐4980
  网站改版与网站维护
  行业网站建设方案
  大型网站建设解决方案
  企业网站建设流程
  帝网科技网站设计与网站制作
建站FAQ
·网站空间问题解答
·企业邮箱问题解答
 
酷站欣赏
·房产酷站(379)
·综合门户(8 9)
·建筑装饰(603)
·手机通讯(354)
·生活购物(376)
·医疗保健(199)
·文化摄影(602)
·休闲体育(399)
>>更多酷站欣赏
网站优化
·Google(谷歌)优化   ·百度(BaiDu)优化
·雅虎(Yahoo)优化    ·Alexa排名优化   
·Google AdSense   ·DMOZ目录提交  
建站知识
·网站建设知识·网站名词解释·网站运营知识
·网络营销知识·搜索引擎知识·实用技术文摘
网站推广
百度网站推广 google网站推广
搜狐网站推广 网易网站推广
新浪网站推广   雅虎网站推广
  您当前位置: 当前位置:帝网科技 >> web开发 >> .NET专栏 >> 浏览文章
 
 
Windows CE.Net下矩阵键盘开发设计详解
作者:袁袁整理 来源:帝网科技 日期:2008年11月13日 点击数:



引言

随着现代科技日新月异的发展,作为新兴产业的嵌入式移动信息设备的应用越来越广。这些嵌入式设备中的PDA以其体积小、重量轻、便于携带、功能强大、功耗低等特点而备受青睐。键盘作为一种最为普通的输入工具在PDA上显得尤为重要。PDA因其体积小、功能专一等特点决定了它的键盘不大可能采用普通PC机上的标准键盘,因而大多数PDA采用键数相对较少的矩阵键盘。矩阵键盘设计也是多种多样,有外接键盘管理芯片设计的,如采用CH452、UR5HCSPI等芯片;有外接普通单片机设计的,如采用8051、2051等单片机;也有不采用任何外围芯片直接与CPU的I/O口相连设计的。本文介绍一种在Windows CE.Net操作系统下,直接与CPU的I/O口相连的矩阵键盘的硬件设计方案,以及相应的流接口驱动程序设计方案。

1  Windows CE.Net介绍

Windows CE是Microsoft公司专门为信息设备、移动应用、消费类电子产品、嵌入式应用等非PC领域而全新设计的战略性嵌入式操作系统。Windows CE的设计目标是:模块化以及可伸缩性、实时性能好、通信能力强、支持多种CPU[1]。

Windows CE.Net是Windows CE 3.0的后续产品,它不仅是一个功能强大的实时嵌入式操作系统,而且提供了众多强大工具,允许用户利用它快速开发出下一代的智能化小体积连接设备。借助于完善的操作系统功能和开发工具,Windows CE.Net提供了构建、调试和部署基于Windows CE.Net的定制设备所需的一切特性。

Windows CE.Net的最大好处是具有可定制性。当它自带的驱动程序不能满足用户的要求时,需要用户自己编写相应的驱动程序。Windows CE.Net的开发工具Platform Builder就可以完成相应的驱动程序开发。

2  矩阵键盘硬件设计

嵌入式设备上的键盘作为一种输入工具,有着极其重要的作用;然而受设备本身体积影响,键盘设计大多数采用20个左右的键值(0—9数字键、上下左右方向键、确定取消键以及输入法切换键ALT、TAB,具体视应用而定)。这里采用4×5的矩阵键盘设计,即4行5列。把这些矩阵键盘的行和列直接与CPU的I/O口相连,可以充分利用CPU的I/O口资源,降低硬件和驱动设计难度,提高整个系统的稳定性,并在一定程度上降低设备的生产成本。采用矩阵式键盘设计还可以最大限度地节省CPU的I/O口资源。这里用到了CPU的9个I/O口,其中4个I/O口作为中断I/O口。为了使I/O口的初始输入状态为高电平,需要在与键盘相连的每个I/O口上接起初始化电平作用的上拉电阻(100 kΩ)。上拉电阻的阻值根据I/O口端口的电流值来确定。如果相邻I/O口的布线过近,相邻I/O口的电平跳变可能会相互影响,导致扫描按键不准确,这时就需要在每个I/O口上接一个滤波电容到地,减少串扰。支持Windows CE.Net操作系统的CPU有很多种,比较常见的有三星公司的S3C2440、2410 ARM芯片和Intel公司的PXA255、270 ARM芯片,这里的CPU芯片采用的是PXA255。不同CPU之间,矩阵键盘硬件设计相同。矩阵键盘硬件设计电路原理如图1所示。        

点此在新窗口浏览图片 

            图1  矩阵键盘(4×5)电路原理

3  矩阵键盘驱动设计

3.1  矩阵键盘驱动开发策略

Windows CE.Net中的驱动可分为两种模式:本机驱动模式和流驱动模式[2]。前者比较适合集成在本机上的设备,后者则通常用在用户添加的外围设备上。本文讨论的矩阵键盘作为一种外围设备适合采用流驱动模式。

3.2  矩阵键盘驱动加载过程

Windows CE.Net系统运行时会默认启动DEVICE.EXE进程。DEVICE.EXE就是负责加载所有流驱动的,进程对流驱动的加载通过注册表列举器(RegEnum.dll)来实现。键盘的资源信息由OEM适配层(OAL)记录在注册表中,RegEnum.dll是通过扫描注册表项HKEYLOCALMACHINE\Drivers\BuiltIn\PWRBUTTON下的键值对矩阵键盘进行初始化的。注册表中关于矩阵键盘驱动的注册信息如下:

以下为引用的内容:

  [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PWRBUTTON]
  Prefix=PWR//设备文件名前缀
  Dll=PwrButton.Dll//键盘驱动的动态连接库名
  Order=dword:2//键盘驱动加载顺序
  Ioctl=dword:4
 

3.3  矩阵键盘驱动重要函数设计

流接口驱动程序的主要任务就是把外设的使用传递给应用程序。这是通过把设备表示为文件系统的一个特殊文件来实现的,每个流接口的驱动程序都必须实现一组标准的接口函数。由于矩阵键盘驱动采用了流驱动模式设计,故矩阵键盘驱动使用标准的流驱动接口函数,也称“矩阵键盘驱动的DLL接口”。DLL接口的具体描述如表1所列。

表1  矩阵键盘流驱动程序的DLL接口      

点此在新窗口浏览图片 

矩阵键盘作为一种输入设备与其他外围设备有很大的区别,应用层不能对其发布命令来操作它。因此一般流驱动接口函数中对设备进行操作的接口函数在矩阵键盘驱动中只是作了保留,并未有实质性的功能。接口函数中比较重要的是PWR_Init和PWR_DllEntry。下面简单介绍这两个函数:

①  PWR_DllEntry。驱动程序的入口函数,当Windows CE.NET加载或断开DLL时调用,其中dwReason指明了调用的原因。
②  PWR_Init。接口函数PWR_Init完成矩阵键盘流驱动程序的初始化,首先完成矩阵键盘驱动涉及的CPU的I/O口寄存器和中断控制寄存器的地址映射工作。接下来设置中断服务线程优先级,最后创建中断服务线程和初始化I/O口。

3.4  矩阵键盘驱动中断处理设计

(1) 矩阵键盘驱动实现原理概述

矩阵键盘驱动的主要作用就是实时监测外部按键中断,一旦发现外部有键按下就向内核发送键盘消息实现键盘输入功能。键盘驱动创建了中断服务线程和4个键盘中断事件,每行按键对应一个键盘中断事件。有键被按下时,中断服务例程得到对应的中断标识符并报告给系统任务调度进程,同时产生键盘中断事件,键盘中断服务线程响应键盘中断事件,开始扫描矩阵键盘。根据产生的中断事件类型不同,可以首先确定被按下键的行位置。由于键盘被按下后,该键对应的行和列被连通,因此根据判断各列对应的I/O口的电平,可以得到被按下键的列位置;得到按键的准确位置后,通过向操作系统发送键盘消息KEYBD_EVENT,实现一次键盘输入。循环扫描键盘,直到按键被弹起则发送KEYEVENTF_KEYUP事件。响应键盘中断输入的整个流程如图2所示。   

  相关文章
 
·ASP.NET使用log4Net日志组件教程(日志
·ASP.NET MVC 框架
·C#实现的BinaryTree
·WebForms使用System.Web.Routing
·ASP.NET获取远程网页下载到本地文件
·一个“简单”的ASP.NET的服务器控件
·ASP.net与PHP两大网站开发架构优势对比
·教你七招提高.NET网站性能
·ASP.NET未来:简化开发 HTML5性能提升
·ASP.NET实现类似Excel的数据透视表
·FileUpload上传多文件出现错误的解决方
·.NET从优酷专辑中采集所有视频及信息(
·ASP.NET 4中的SEO改进
·详解Asp.net MVC DropDownLists
·提高ASP.NET应用程序性能的几招方法
·asp.net实现51job地区选择效果
·ASP.NET中创建GeoRSS订阅源
·ASP.NET 4.0开发更加简便
·ASP.NET页面间数据传递的方法
·ASP.NET的SEO:使用.ashx文件——排除
 
 

公司环境 | 合作伙伴 | 人才招聘 | 付款方式 | 关于我们

地址:广州市天河区中山大道中120号D805 电话:020-82529556 传真:020-82529556
广州帝网网络科技有限公司 版权所有 粤ICP备08119341号