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