USB软硬件知识之四:WINCE USB驱动术语

     在WinCE中做USB相关的东西,首先要弄清一些概念,这非常关键。

(1)Host与Function
      首先要知道USB是主从结构的。拿PC和手机来说,PC端是主端,叫做Host,手机是从端,通常叫做Client。但是在WinCE中这个术语发生了变化,主端还是叫Host,而从端叫做Function。因此对应的驱动分别叫做USB Host Driver及USB Function Driver。这里要记住了Host与Function对应,而不是Client,Client在后面会提到。

(2)Controller与Client
      拿WinCE设备来说,它不像U盘那样功能单一,WinCE设备跟PC用USB线连接时可以表现为多种形式,可以是一种大容量存储器(Mass Storage),还可以表现为一个网卡(RNDIS),还可以表现成一个串口设备(Serial Class),所以需要一个控制系统,WinCE把这部分分离了出来,做成一层驱动,叫做Controller(控制器),由该层驱动来控制WinCE设备到底表现成一种什么形态。

      然后,在Controller上层是Client层,常用的三大类:Mass Storage、RNDIS、Serial。当WinCE设备需要表现成哪种形态,就由Controller驱动转换(卸载旧Client、加载新Client)。前面说了设备端叫做Function,所以全称分别是:USB Function Controller Driver、USB Function Client Driver。

                  USB软硬件知识之四:WINCE USB驱动术语_第1张图片

 

实际上Host端也是有Controller层的,这里没研究,猜测当设备端表现出不同形式时,PC端也要表现出不同的形式与之对应,所以也需要有控制器。注意:这里的HOST与CLIENT与通常的概念有了差别,可多个角度理解这个观点。

(3)MDD部分微软已实现,拿windows mobile来说,源码/PUBLIC/COMMON/OAK/DRIVERS/USBFN/CONTROLLER/MDD,一般硬件的BSP提供商负责提供PDD部分,Controller驱动是针对设备上USB总线的。USB Function Client Driver分为:Mass Storage、RNDIS、Serial,微软也已经实现。源码在/PUBLIC/COMMON/OAK/DRIVERS/USBFN/CLASS下。

(4)WinCE 5.0及对应的windows mobile上都没有提供将USB Client加载成Mass Storage形式(可以把外存卡比如TF卡在PC上加载成一个移动磁盘,就像U盘一样)的功能,可以手动加软件切换工具。

参考原文:http://hi.baidu.com/donghaozheng/blog/item/3b2806faf2afc99058ee903b.html

你可能感兴趣的:(windows,function,mobile,手机,微软,WinCE)