USB KEY设备在W indows CE下的驱动实现

2011-12-27 01:05
河北省科学院学报 2011年1期
关键词:流式开发板注册表

梅 欢

(河北省科学院应用数学研究所,河北石家庄 050081)

USB KEY设备在W indows CE下的驱动实现

梅 欢

(河北省科学院应用数学研究所,河北石家庄 050081)

针对USB KEY设备,介绍了在嵌入式系统Window s CE下流设备驱动的实现。

USB KEY设备;Window s CE

Window s CE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统。同时随着USB2.0设备的不断增加,USB设备驱动开发在嵌入式开发中变的越来越重要。笔者以ARM SYS2440开发板为硬件平台,嵌入式操作系统W indow s CE为软件平台,讨论了安全锁USBKEY的驱动程序的实现方法。

1 Window s CE系统驱动程序

从驱动加载方式来看WinCE可分为本机设备驱动(Built-In Driver)、可加载驱动(Loadable Driver)以及混合型驱动。

本机设备驱动即Native Device D rivers。通常是一些与图形界面相关的 I/O设备驱动。例如鼠标键盘驱动、显卡驱动及触摸屏驱动等。被 GWES.exe加载和使用,可以提高驱动和图形的效率。

可加载设备是指可与平台连接和分离的第三方接口设备,可由用户随时安装和卸载。这种外围设备的驱动也被称为流驱动。以DLL动态链接库的形式存在。这些驱动可以在系统启动时或者和启动后的任何时候由Device.exe动态加载。

混合型驱动是指同时有定制和流驱动两套驱动接口,但是和系统的交互只使用流驱动接口,比如PC卡槽驱动。

2 USB KEY设备驱动程序实现

2.1 设备介绍

笔者开发的USB KEY是基于公钥基础设施PKI(Public Key Infrastructure)的加密狗,其外观类似于U盘,由硬件和软件两部分搭建而成。其硬件的核心部件是USB主控制器、加密芯片,通过USB接口与上位机进行保密通信。USB KEY的软件核心是片上操作系统COS(Chip Operating System)。

USB KEY采用的是航芯电子的SCCII芯片,这款芯片基于国产32位CPU核的SOC开发平台而开发,具备高处理能力、高安全性、低功耗等特点。芯片内置USB 2.0控制器,符合USB 2.0标准,支持高速和全速设备。具有两个endpoint,在点对点通信中对USB外设进行传输控制。

2.2 驱动实现

驱动程序使用立宇泰公司的ARM SYS2440开发板实现。该开发板的cpu采用三星S3C2440芯片,ARM 920T内核,主频400M Hz,最高可达533M Hz。

对USB KEY设备驱动采用了流接口驱动的模式。实现流式接口驱动程序通常只需要4个步骤[1]:

1)为流式接口驱动程序选择一个前缀;

2)实现流式接口驱动DLL所必需的接口函数;

3)编写DLL的导出函数定义文件.DEF;

4)为驱动程序配置注册表。

2.2.1 为流式接口驱动程序选择一个前缀

应用程序通常须通过设备的名称对驱动程序进行访问。这里采用3个大写字母,加一个1-9之间的数字过程的传统方式命名,将USB KEY的前缀定义为“JKY”。

2.2.2 实现流式接口驱动DLL所必需的接口函数

Platform Builder是微软推出的针对Window s CE开发的集成开发环境。USB KEY驱动使用这一环境编写代码。在Platform Builder中,新建一个SMDK2440的平台,然后再新建一个Win32 DLL项目,命名为U sb KeyD river。

Window s CE系统的流接口是属于固定开放的规范,每个流接口驱动程序必须实现一组标准的函数,用来完成标准的文件I/O函数和电源管理函数。USB KEY的DLL接口如表1所示。

表1 流式接口函数

2.2.3 编写DLL的导出函数定义文件.DEF

.DEF文件定义了DLL的导出函数列表。在U sb KeyDriver中插入一个文本文件,命名为Usb KeyDriver.def,然后在该文件中输入如下内容:

编译后可使用Dumpbin工具查看DLL中是否正确地导出了这些函数。

2.2.4 为驱动程序配置注册表[2]

创建驱动程序加载所需的注册表信息是由 USBlnstallDriver()函数完成的,它在设备第一次插入USB接口时调用。使用RegisterClientD rivedD()和RegisterClientSetings()来注册相应的设备信息。卸载驱动程序时会调用另外一个函数 USBUninstallDriver(),它可以删除 USB InstallD river)时创建的注册表信息。

3 结束语

随着嵌入式系统的应用,越来越多的USB设备将需要支持这一平台。本文实现了一个特殊设备USB KEY的驱动,对于今后开发其他的设备有一定的参考意义。

[1] 何宗健.Window s CE嵌入式系统[M].北京:北京航空航天大学出版社,2006.

[2] 刘彦峰,李峥,马智.基于Window s CE的USB Key驱动程序设计[Z].微计算机信息,2008-12-03.

The realization of USB KEY device driver based on W indows CE

MEIHuan

(Institute of A pp lied M athematics,Hebei Academ y of Sciences,Shijiazhuang Hebei050081,China)

Aim at USB Key device,this paper introduces the realization of Steam s device driver based on W indow s CE.

USB KEY device;Window s CE

TP317

:A

1001-9383(2011)01-0023-03

2011-01-10

梅欢(1981-),女,河北石家庄人,研究实习员,主要从事计算机应用等方面的研究.

猜你喜欢
流式开发板注册表
辐流式二沉池的结构优化研究
更上一层楼 用好注册表编辑器
浅析单片机开发板的设计与制作
注册表的便捷用法
微球测速聚类分析的流式液路稳定性评估
ARM宣布mbed Enabled Freescale FRDM—K64F开发板通过微软认证
自调流式喷管型ICD的设计与数值验证
流式在线直播视频的采集
Mouser为您呈上开发关键之STMicroelectronics Nucleo开发板
Arduino和Atmel发布Arduino Zero开发板