📄 otgdriver.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 + -