矩阵键盘 嵌入式移动设备的应用越来越广,以其体积小、重量轻、便于携带等特点而备受青睐。键盘是一种最为普遍使用的输入工具,但 嵌入式移动设备因其体积小的特点决定了它的键盘不大可能采用普通PC 机上的标准键盘,因而大多数采用键数相对较少的矩阵键盘。 利用矩阵键盘用户可以很方便的实现对嵌入式移动设备进行相应的操作,是极方便的人机交互设备。随着微软的嵌入式操作系统Windows CE 的普及,Windows CE 的矩阵键盘开发得到了越来越多开发者的重视,本文与大家分享我在开发矩阵键盘的一些总结。 1. Windows CE 驱动分类 Windows CE 提供了许多用于开发设备驱动的模型,这些驱动程序模型使得Windows CE 能适应大部分的内部和外围设备。因此,在深入探讨Windows CE 矩阵键盘驱动程序之前,先了解在WinCE 平台上使用的两种设备:内建设备和可安装设备。因此,从驱动加载方式来看WinCE 可分为本机设备驱动(Built-In Driver)、可加载驱动(Loadable Driver)。 本机设备驱动即Native Device Drivers, WinCE 设计成可直接使用内建设备,这些设备由本机驱动过程控制。本机驱动程序是与WinCE 的核心组件紧密相连,这些驱动对应的设备通常在系统启动时,在GWES 的进程空间内被加载,因此它们不是以独立的DLL 形式存在。可加载设备是指可与平台连接和分离的第三方接口设备,可由用户随时安装和卸载这些驱动, 可以在系统启动时或者和启动后的任何时候由设备管理器动态加载。通常这类驱动是以DLL 动态链接库的形式存在,系统加载后这些驱动程序是以用户态的角色运行,这种外围设备的驱动也被称为流驱动。 两者的差别在于它们提供的编程接口不同:本地设备驱动可以根据具体设备的需求提供本机的相应接口;而流接口驱动则是提供一组通用接口即流接口函数,应用程序可以通过流接口提供的接口函数来访问外围设备。 2.嵌入式矩阵键盘驱动原理 嵌入式设备上的键盘受设备本身体积影响,键盘设计大多数采用矩阵形式。支持Windows CE 系统的CPU 有很多种,不同CPU 之间矩阵键盘硬件设计也不尽相同。因此,键盘可以按照自定义布局,并且可以按照自己的喜好映射按键,从而实现按键的不同功能,包括按键的个数、布局及按键功能的配置。 ( 1)矩阵键盘驱动核心是中断处理 矩阵键盘一般是采用中断方式,因此矩阵键盘驱动首先要在OAL 层加入中断源。简单的说,矩阵键盘驱动的主要作用就是实时监测外部按键中断,一...