USB系统软件由两层组成:
1.较高的USB设备驱动程序层
2.较低的由Windows CE实现的USB函数层(第二层由较高的通用串行总线驱动程序USBD模块和较低的控制器驱动程序HCD模块组成。)
HCD模块给USBD模块提供最底层的支持,USBD实现高层的USBD接口函数。USB设备驱动程序使用USBD提供的接口函数和外围设备进行通讯。
WINCE USB系统结构:USB设备驱动程序-》USBD-》HCD-》USB控制器硬件
编写USB设备驱动程序方法:
1.USB设备驱动程序使用USBD模块提供的函数操作USB设备。
2.使用流接口函数
3.使用现有的Windows CE应用程序编程接口(API)
USBD的实现在WINCEROOT/public/common/oak/drivers/usb/USBD 文件夹下有源代码:
USBD的传输函数:
AbortTransfer :中断传输
CloseTransfer : 关闭传输
GetIsochResults :获取同步传输结果
GetTransferStatus:得到当前的传说状态
IssuBulkTransfer :块传输
IssueControlTransfer:控制传输
IssueInterruptTransfer:中断传输
IssueIsochTransfer:同步传输
IsTransferComplete :传输结束?
IssueVendorTransfer :Vendeor传输?
USBD和USB设备建立通讯管道的函数
AbortPipeTransfer
ClosePipe
IsDefaultPipeHalted
IsPipeHalted
OpenPipe
ResetDefaultPipe
ResetPipe
USB针对在总线上的数据打包函数
GetFrameLength
GetFrameNumber
ReleaseFrameLengthControl
SetFrameLength
TakeFrameLengthControl