⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 otgdriver.h

📁 SmartARM2400系列开发板全套资料
💻 H
字号:
/*****************************Copyright(c)****************************************************************
**                    Guangzhou ZHIYUAN electronics Co.,LTD.
**                                     
**                           http://www.embedtools.com
**
**------File Info-----------------------------------------------------------------------------------------
** File Name:            OtgDriver.h
** Latest modified Date: 2007-12-10        
** Latest Version:       V1.0    
** Description:          OTG协议栈OtgDriver.h的头文件
**                       
**--------------------------------------------------------------------------------------------------------
** Created By:           吴隆穗  Longsui Wu   
** Created date:         2007-12-10    
** Version:              V1.0    
** Descriptions:         初始版本
**
**--------------------------------------------------------------------------------------------------------
** Modified by:          
** Modified date:        
** Version:              
** Description:          
**
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Description:
**
*********************************************************************************************************/
#ifndef __OTG_DRIVER_H
#define __OTG_DRIVER_H

#define OTG_DEVICE_A                1
#define OTG_DEVICE_B                2

#define OTG_ROLE_HOST               3
#define OTG_ROLE_DEVICE             4
#define OTG_ROLE_UNKNOW             5

#define __OTG_MSG_HNP_START         0xA0U                               /*  启动HNP                     */
#define __OTG_MSG_HNP_SUCESS        0xA1U                               /*  HNP成功                     */
#define __OTG_MSG_HNP_FAILED        0xA2U                               /*  HNP失败                     */
#define __OTG_MSG_HNP_TMR           0xA3U                               /*  HNP超时                     */
#define __OTG_MSG_REMOVE_PU         0xA4U                               /*  移除B设备上拉电阻           */
#define __OTG_MSG_ATX_INT           0xA5U                               /*  外部收发器中断              */
#define __OTG_MSG_SHED_BUS_SUSP     0xA6U                               /*  总线挂起处理                */
#define __OTG_MSG_SHED_TASK_DEL     0xA7U                               /*  删除调度任务                */

/*********************************************************************************************************
  OTG信息结构体
*********************************************************************************************************/
typedef struct __tagOTG_INFO {
    USB_INT8U ucOtgDevice_AB;                                           /*  OTG状态,A设备或B设备        */
    USB_INT8U ucOTGRole;                                                /*  当前角色,主机或从机         */
    USB_INT8U ucHostDevShedPrio;                                        /*  主机或从机调度任务的优先级  */
    USB_INT8U ucHostEnumPrio;                                           /*  主机枚举任务优先级          */
} __OTG_INFO, *__POTG_INFO;

#ifdef __cplusplus
extern "C" {
#endif

/*********************************************************************************************************
** Function name:       otgInit
** Descriptions:        OTG初始化
** input parameters:    ucOtgTaskPrio       OTG调度任务优先级
**                      ucHostDevShedPrio   主机或从机的调度任务优先级
**                      ucHostEnumPrio      主机枚举任务优先级,
**                                          当有大容量类设备驱动程序时也做该驱动程序的服务任务优先级
** output parameters:   None
** Returned value:      TRUE : 成功  FALSE : 失败
*********************************************************************************************************/
USB_BOOL otgInit (USB_INT8U ucOtgTaskPrio, 
                  USB_INT8U ucHostDevShedPrio, 
                  USB_INT8U ucHostEnumPrio);

/*********************************************************************************************************
** Function name:       otgIsDeviceReady
** Descriptions:        检测主机是否已枚举设备或从机已配置
** input parameters:    None
** output parameters:   None
** Returned value:      TRUE : 成功  FALSE : 失败
*********************************************************************************************************/
USB_BOOL otgIsDeviceReady (void);

/*********************************************************************************************************
** Function name:       otgException
** Descriptions:        USB OTG中断服务程序
** input parameters:    None
** output parameters:   None
** Returned value:      None
*********************************************************************************************************/
void otgException (void);

/*********************************************************************************************************
** Function name:       otgHNPStart
** Descriptions:        启动HNP,此函数供外部应用程序调用
** input parameters:    None
** output parameters:   None
** Returned value:      TRUE: 成功, FALSE:失败
*********************************************************************************************************/
USB_BOOL otgHNPStart (void);

/*********************************************************************************************************
** Function name:       otgRetControlToA
** Descriptions:        将USB总线的控制权返回给A设备,此函数只能由B设备在b_host状态时调用
** input parameters:    None
** output parameters:   None
** Returned value:      TRUE: 成功, FALSE:失败
*********************************************************************************************************/
USB_BOOL otgRetControlToA (void);

/*********************************************************************************************************
** Function name:       otgGetDeviceAB
** Descriptions:        获取设备状态(A设备或B设备)
** input parameters:    None
** output parameters:   None
** Returned value:      OTG_DEVICE_A(1): A设备,  OTG_DEVICE_B(2): B设备
*********************************************************************************************************/
USB_INT8U otgGetDeviceAB (void);

/*********************************************************************************************************
** Function name:       GetCurDeviceRole
** Descriptions:        获取当前设备角色(主机或从机)
** input parameters:    None
** output parameters:   None
** Returned value:      OTG_ROLE_HOST(1): 主机,  OTG_ROLE_DEVICE(2): 从机, OTG_ROLE_UNKNOW(3): 未知
*********************************************************************************************************/
USB_INT8U otgGetCurRole (void);

/*********************************************************************************************************
** Function name:       otgDeInit
** Descriptions:        USB OTG驱动卸载
** input parameters:    None
** output parameters:   None
** Returned value:      None
*********************************************************************************************************/
void otgDeInit (void);

/*********************************************************************************************************
** Function name:       usbExternBusSusp
** Descriptions:        挂起总线的处理,由从机协议栈中总线挂起中断里调用
** input parameters:    None
** output parameters:   None
** Returned value:      None
*********************************************************************************************************/
void usbExternBusSusp (void);

#ifdef __cplusplus
 }
#endif

extern OS_EVENT  *__GevtOtgMsgQeue;                                     /*  调度消息队列                */

#endif

/*********************************************************************************************************
  END FILE
*********************************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -