在WinCE 6.0系统下实现USB功能定制

开发
在WinCE6.0中,对USB是有很好的支持。一般来说,如果USB的设备驱动做好了,USB的协议层以及上层的应用都是现成的,而且还有源码.

USB的广泛应用就不用多说了,相信目前的各个领域的嵌入式产品中,很少有不用USB的。USB是主从结构的,分为USB Host和USB Slave,从USB1.0,USB1.1到现在的USB2.0,基于USB2.0还有USB OTG,也就是同时支持Host和Slave设备。目前***的好像是USB3.0,刚开始普及吧。

在WinCE6.0中,对USB是有很好的支持。一般来说,如果USB的设备驱动做好了,USB的协议层以及上层的应用都是现成的,而且还有源码。也就是说,我们只需要在BSP中完成USB的驱动就可以了。先来看一下,如图:

WinCE中USB的架构

USB Host

***层就是USB Host控制器了,上层是USB Host Controller Driver,该驱动负责和硬件通讯来传输数据,在WinCE中支持UHCI,OHCI和EHCI。Host Core Driver & Hub Driver是独立于硬件的USB协议栈,支持USB Host协议及USB Hub功能。最上层就是USB Host Class driver是USB Host的应用协议,目前在WinCE中,支持RNDIS,Print,Mass Storage和HID四种应用。

USB Device

***层是USB Device控制器,上层是USB Device Driver负责和硬件通讯。Device Core Driver是USB Device的协议栈。最上层是USB Device的应用层,目前在WinCE中支持RNDIS,Serial和Mass Storage三种应用。

USB OTG

USB OTG控制器上层是USB OTG控制器的驱动,USB OTG Core Driver是协议层,如果做Host,它会使用USB Host协议栈,如果做Device,它会使用USB Device协议栈。

在WinCE中,根据需要来选择所需的USB功能,创建WinCE工程,然后在Catalog Items View中选择”Core OS”->”CEBASE”->”Core OS Services”->”,如图:

USB Host Support

◆USB Function Driver:用于支持USB Device驱动。

◆USB Host Support:用于支持USB Host控制器驱动。

◆USB Human Input Device (HID) Class Driver:用于支持USB Host外接HID设备,可选择同时支持USB鼠标键盘,也可以分开选择。

◆USB Printer Class Driver:用于支持USB Host打印功能。

◆USB Remote NDIS Class Driver:用于支持USB Host连接RNDIS设备。

◆USB Storage Class Driver:用于支持USB Host外接U盘的功能。

上面的选项除了USB Function Driver以外,都是用于支持USB Host应用的,可以根据自己平台的需要,选择相应的USB应用,也可以都选择。如果是USB Device设备,那么首先要选择上面提到的USB Function Driver,然后在Catalog Items View中选择”Device Drivers”->”USB Function”->” ,如图:

USB Function Clients

Mass Storage:用于支持USB Device作为U盘功能。

RNDIS Client:用于支持USB Device作为RNDIS设备。

Serial:用于支持USB Device作为串口设备。

对于USB Device设备,可以支持Mass Storage,RNDIS和Serial功能,不过同一个USB Device在系统启动以后只能支持某一个功能。

总结一下,无论是USB Host还是USB Device,只要驱动做好了,上层的应用在WinCE系统定制的时候,选择相应的组件就可以了。对于USB Device来说,根据组件的不同,还需要进行一些注册表的配置,我会在以后的blog中进行介绍。

 

【编辑推荐】

  1. 点对点消息队列函数:用于WinCE的IPC机制
  2. WinCE系统下GSM Modem的测控应用
  3. WinCE文件目录定制及内存调整
  4. 在WinCE开始菜单中添加应用程序
  5. 基于WinCE的液位遥测系统软件设计
责任编辑:佚名 来源: CSDN博客
相关推荐

2010-04-01 13:58:16

WinCE 6.0Cashmere

2009-07-17 13:55:02

WinCE文件目录

2010-04-20 13:18:19

WinCE

2009-07-17 14:35:27

WinCE系统 GSM

2010-01-11 11:02:59

Visual C++

2009-01-14 17:46:01

RHELBindDNS

2009-07-06 10:02:22

JSP Servlet

2009-11-27 14:08:18

2011-09-16 14:22:31

注册表windowsVist

2011-09-05 13:08:06

UbuntuSMART

2013-07-02 10:25:03

LinuxUSB设备

2010-03-26 13:12:27

2011-08-02 14:23:09

iPhone UIScrollVi 图片

2009-05-25 19:15:56

WinCE应用程序flash设备

2010-05-20 11:12:13

SVN插件安装

2017-03-01 15:38:34

LinuxUSB网络

2011-10-20 16:05:23

思杰XenServer服务器

2009-07-09 16:12:53

WeblogicJDBC

2009-04-21 13:54:20

2022-09-01 21:56:34

KubernetesLinkerd
点赞
收藏

51CTO技术栈公众号