Windows CE矩阵键盘开发

Windows CE矩阵键盘开发

ID:40579008

大小:42.50 KB

页数:4页

时间:2019-08-04

Windows CE矩阵键盘开发_第1页
Windows CE矩阵键盘开发_第2页
Windows CE矩阵键盘开发_第3页
Windows CE矩阵键盘开发_第4页
资源描述:

《Windows CE矩阵键盘开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、嵌入式移动设备的应用越来越广,以其体积小、重量轻、便于携带等特点而备受青睐。键盘是一种最为普遍使用的输入工具,但嵌入式移动设备因其体积小的特点决定了它的键盘不大可能采用普通PC机上的标准键盘,因而大多数采用键数相对较少的矩阵键盘。利用矩阵键盘用户可以很方便的实现对嵌入式移动设备进行相应的操作,是极方便的人机交互设备。随着微软的嵌入式操作系统WindowsCE的普及,WindowsCE的矩阵键盘开发得到了越来越多开发者的重视,本文与大家分享我在开发矩阵键盘的一些总结。1.WindowsCE驱动分类WindowsCE提供了许多用于

2、开发设备驱动的模型,这些驱动程序模型使得WindowsCE能适应大部分的内部和外围设备。因此,在深入探讨WindowsCE矩阵键盘驱动程序之前,先了解在WinCE平台上使用的两种设备:内建设备和可安装设备。因此,从驱动加载方式来看WinCE可分为本机设备驱动(Built-InDriver)、可加载驱动(LoadableDriver)。本机设备驱动即NativeDeviceDrivers,WinCE设计成可直接使用内建设备,这些设备由本机驱动过程控制。本机驱动程序是与WinCE的核心组件紧密相连,这些驱动对应的设备通常在系统启动

3、时,在GWES的进程空间内被加载,因此它们不是以独立的DLL形式存在。可加载设备是指可与平台连接和分离的第三方接口设备,可由用户随时安装和卸载这些驱动,可以在系统启动时或者和启动后的任何时候由设备管理器动态加载。通常这类驱动是以DLL动态链接库的形式存在,系统加载后这些驱动程序是以用户态的角色运行,这种外围设备的驱动也被称为流驱动。两者的差别在于它们提供的编程接口不同:本地设备驱动可以根据具体设备的需求提供本机的相应接口;而流接口驱动则是提供一组通用接口即流接口函数,应用程序可以通过流接口提供的接口函数来访问外围设备。2.嵌入

4、式矩阵键盘驱动原理嵌入式设备上的键盘受设备本身体积影响,键盘设计大多数采用矩阵形式。支持WindowsCE系统的CPU有很多种,不同CPU之间矩阵键盘硬件设计也不尽相同。因此,键盘可以按照自定义布局,并且可以按照自己的喜好映射按键,从而实现按键的不同功能,包括按键的个数、布局及按键功能的配置。(1)矩阵键盘驱动核心是中断处理矩阵键盘一般是采用中断方式,因此矩阵键盘驱动首先要在OAL层加入中断源。简单的说,矩阵键盘驱动的主要作用就是实时监测外部按键中断,一旦发现外部有键按下就向内核发送键盘消息实现键盘输入功能。这时键盘驱动会创建

5、中断服务线程和键盘中断事件,每个按键对应一个键盘中断事件。因此,矩阵键盘驱动的设计核心就是键盘中断处理的设计。(2)中断服务例程(ISR)矩阵键盘作为输入设备一般以默认的频率扫描键盘,当有按键被按下时,通过扫描键盘并生成相应的扫描码,并通过处理器中的中断产生器产生一个中断信号,这时内核会进入异常中断处理程序,由它屏蔽所有中断,再调用中断服务例程ISR得到该中断的逻辑中断标识。然后,中断服务例程把得到对应的中断标识符报告给系统任务调度进程,同时产生键盘中断事件,键盘中断服务线程响应键盘中断事件,开始扫描矩阵键盘。然后,再通过这个

6、中断信号控制相应的程序获取与之相对应的虚拟码,最后此虚拟码由上层调用,实现按下此键的相应功能。鉴于ISR的任务比较单一,ISR通常都要求越短、越快越好。(3)中断服务线程(IST)中断服务例程以键盘中断的逻辑中断标识符形式返回给系统任务调度进程,中断服务线程则在矩阵键盘驱动中负责具体中断处理。因此,矩阵键盘驱动的中断事件HANDLEhKEYEvents要分别对应矩阵键盘产生的中断。一般来说,中断服务例程较小,并且只做很少的处理工作,中断服务线程就必须完成大多数中断处理工作,包括响应中断、扫描按键位置、发送键盘消息等。例如,在矩

7、阵键盘驱动IST中会先调用CreateEvent函数创建事件对象,接着调用系统函数InterruptInitialize完成中断。完成这些初始化工作后,接着调用WaitForMultipleObjects(hKEYEvents)函数进入键盘事件的等待队列中。最后,当有事件被捕获后,根据不同的事件类型进入不同的键盘扫描处理程序。3.矩阵键盘驱动程序的设计和实现(1)矩阵键盘驱动程序模型WindowsCE的最大好处是具有可定制性,当它自带的驱动程序不能满足用户的要求时,用户可以自己编写相应的驱动程序。WindowsCE一般可以分为

8、独立驱动和层次型驱动两类。独立驱动程序是指将驱动程序编写成同时包含ModelDeviceDriver(MDD)和PlatformDependentDriver(PDD)的独立驱动。层次型驱动是指分为两层,较上层的MDD和比较下层的PDD。其中MDD实现的是和平台无关的功能,它

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。