现在的位置: 首页 > 综合 > 正文

WinCE系统USB功能定制

2012年08月14日 ⁄ 综合 ⁄ 共 1645字 ⁄ 字号 评论关闭

作者:ARM-WinCE

 

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

 

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

 

USB Host

最底层就是USB Host控制器了,上层是USB Host Controller Driver,该驱动负责和硬件通讯来传输数据,在WinCE中支持UHCIOHCIEHCIHost Core Driver & Hub Driver是独立于硬件的USB协议栈,支持USB Host协议及USB Hub功能。最上层就是USB Host Class driverUSB Host的应用协议,目前在WinCE中,支持RNDISPrintMass StorageHID四种应用。

 

 

USB Device

最底层是USB Device控制器,上层是USB Device Driver负责和硬件通讯。Device Core DriverUSB Device的协议栈。最上层是USB Device的应用层,目前在WinCE中支持RNDISSerialMass 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 StorageRNDISSerial功能,不过同一个USB Device在系统启动以后只能支持某一个功能。

 

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

 

 

抱歉!评论已关闭.