我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:小鱼儿玄机2站资料 > 屏幕坐标 >

WinCE人机交互简洁 触摸屏驱动功不可没

归档日期:05-16       文本归类:屏幕坐标      文章编辑:爱尚语录

  随着Iphone的流行,触摸屏成为许多移动电子产品的标配,使到触摸屏驱动的开发在嵌入式设备中也变得越来越重要了。嵌入式移动设备因其体积小的特点决定了需要一种最为便利的输入工具。利用触摸屏用户可以很方便的对嵌入式移动设备进行相应的操作,而且操作简单直观,是极方便的人机交互设备。

  WinCE系统在驱动设计上有一个很方便的功能,就是原始设备制造商(OEMs)和独立硬件开发商(IHVs)可以自主开发设备驱动程序来支持他们的硬件。因此,在动手进行触摸屏驱动程序开发之前,深入了解WinCE系统驱动方式是非常有必要的。

  要编写WinCE驱动程序首先要确定它是属于哪类驱动。一般来说,WinCE平台上使用的设备可分为两类:内建设备和可安装设备。因此,从驱动加载方式上WinCE可分为内建设备驱动(Built-In Driver)和可加载驱动(Loadable Driver)。

  WinCE系统可直接使用内建设备,因为内建设备驱动程序是与WinCE的核心组件紧密相连的,也就是内建设备驱动程序是被静态地链接到GWES(Graphics Windowing and Events Subsystem)的。这些驱动对应的设备通常在系统启动时,在GWES的进程空间内被加载,主要是与显示和输入有关的驱动。

  因为它们不是以独立的DLL形式存在,所以要求每一个内建驱动程序都必须与设备驱动程序接口(DDI)的特定接口保持一致。内建设备包括显示、触摸屏、音频、串行埠、LED、电池和PC卡插座等。内建驱动程序一般设计为动态链接库,但有两个例外:电池和LED驱动程序由于小而设计为静态库。它们一般储存在ROM或闪存内。

  可加载设备是指可与平台连接和分离的第三方接口设备,可由用户随时安装和卸载。这种外围设备的驱动也被称为流驱动,这些驱动可以在系统启动时、或者启动后的任何时候由设备管理器动态加载。通常这类驱动是以DLL动态链接库的形式存在,加载后的这些驱动程序也只能以用户态的角色运行。在WinCE中典型的可加载驱动有:PCMCIA driver(PCMCIA.dll)、Serial driver(SERIAL.dll)、ATAFLASH driver(ATA.dll)、Ethernet driver(NE2000.dll,SMSC100FD.dll)。

  与内建驱动程序不同的是,所有可加载流驱动程序都共享一个公用接口,而且功能也与应用程序所用的文件API中的功能匹配。因此,控制可加载设备的流接口驱动程序一般由应用程序存取。也就是说,流接口驱动程序是由一个特殊文件来将设备功能展现给应用程序的,该文件可被打开、读取、写入和关闭。通常只有OEMs才会对内建设备驱动程序进行修改,其它自由设备生产商由于只提供附加的硬件设备,对内建设备驱动程序不会有过多涉及。

  WinCE最大的好处是具有可定制性,当它自带的驱动程序不能满足用户的要求时,用户可以自己编写相应的驱动程序。因此按照结构分,WinCE驱动程序又可分为分层的驱动程序和不分层的驱动程序。分层的驱动程序由两个设置好的层组成:上层是模型设备驱动程序(Model Device Driver, MDD),下层是依赖平台的驱动程序(Platform Dependent Driver, PDD)。

  分层的驱动程序中的MDD通常是无需修改可直接使用,MDD的作用是链接PDD层并定义它希望调用的函数接口:设备驱动程序提供器接口(Device Driver Service Provider Interface, DDSI)。同时MDD又把不同的函数集提供给WinCE内核,这些函数叫做设备驱动程序接口(Device Driver Interface, DDI)。不分层的驱动程序是把PDD与MDD写在一起,没有做严格的区分,通常这种驱动比较简单,比如ATADISK。简单的说,内建驱动和加载式流驱动是从驱动与系统其它模块(调用者)的接口形式上做的分类;而不分层和分层是从驱动实现方式上的分类。

  在开发过程中,MDD层驱动是不需要被修改的。但和MDD层驱动不同的是,PDD层驱动必须被修改成和特定硬件相匹配的代码。程序员可以自己开发一个PDD程序,但多数情况下建议开发者在Platform Builder提供的样例驱动程序上进行修改。在Win CE系统中触摸屏驱动是一种分层驱动。

本文链接:http://noh1.net/pingmuzuobiao/9.html