USB OTG low level driver中的Host层 该部分主要是指usb_hcd.c/h和usb_hcd_int.c/h两个文件。在初始化主机驱动程序(HCD)之后,低级驱动程序为数据和URB状态监视保存多个结构和缓冲区。 主机通道结构保存在主机驱动程序中,并通过主机号索引从上层访问。USB Host 的定义结构: typedef struct _HCD
{
uint8_t Rx_Buffer [MAX_DATA_LENGTH]; /* 此缓冲区保存IN数据包,并可以从全局主机核心结构直接访问,如下所示:pdev-> host.Rx_Buffer。*/
__IO uint32_t ConnSts; /* 连接状态。 它可以直接或通过使用HCD_IsDeviceConnected()函数进行访问。 */
__IO uint32_t PortEnabled; /* */
__IO uint32_t ErrCnt[USB_OTG_MAX_TX_FIFOS]; /* 在一次传输过程中保存通道上的错误数量。 */
__IO uint32_t XferCnt[USB_OTG_MAX_TX_FIFOS]; /* 保存已在Rx_Buffer中接收和可用的IN数据的数量。 它可以直接访问或使用GetXferCnt()函数访问。*/
__IO HC_STATUS HC_Status[USB_OTG_MAX_TX_FIFOS]; /* 由驱动程序内部使用。 可被上层访问。它保存一个通道上的当前传输的状态 */
__IO URB_STATE URB_State[USB_OTG_MAX_TX_FIFOS]; /* 该变量保持主机通道上的传输状态。*/
USB_OTG_HC hc [USB_OTG_MAX_TX_FIFOS];
uint16_t channel [USB_OTG_MAX_TX_FIFOS]; /* 这个变量管理主机通道状态(使用或空闲)。 */
}
HCD_DEV , *USB_OTG_USBH_PDEV;
|