00001
00016 #ifndef _USB_TASK_H_
00017 #define _USB_TASK_H_
00018
00021
00022
00023
00024
00025
00026
00030 #define Usb_send_event(x) (g_usb_event |= (1<<x))
00031 #define Usb_ack_event(x) (g_usb_event &= ~(1<<x))
00032 #define Usb_clear_all_event() (g_usb_event = 0)
00033 #define Is_usb_event(x) ((g_usb_event & (1<<x)) ? TRUE : FALSE)
00034 #define Is_not_usb_event(x) ((g_usb_event & (1<<x)) ? FALSE: TRUE)
00035 #define Is_host_emergency_exit() (Is_usb_event(EVT_HOST_DISCONNECTION) || Is_usb_event(EVT_USB_DEVICE_FUNCTION))
00036 #define Is_usb_device() (g_usb_mode==USB_MODE_DEVICE ? TRUE : FALSE)
00037 #define Is_usb_host() (g_usb_mode==USB_MODE_HOST ? TRUE : FALSE)
00038
00039 #define EVT_USB_POWERED 1 // USB plugged
00040 #define EVT_USB_UNPOWERED 2 // USB un-plugged
00041 #define EVT_USB_DEVICE_FUNCTION 3 // USB in device
00042 #define EVT_USB_HOST_FUNCTION 4 // USB in host
00043 #define EVT_USB_SUSPEND 5 // USB suspend
00044 #define EVT_USB_WAKE_UP 6 // USB wake up
00045 #define EVT_USB_RESUME 7 // USB resume
00046 #define EVT_USB_RESET 8 // USB reset
00047 #define EVT_HOST_SOF 9 // Host start of frame sent
00048 #define EVT_HOST_HWUP 10 // Host wakeup detected
00049 #define EVT_HOST_DISCONNECTION 11 // The target device is disconnected
00051
00054 #define GET_STATUS 0x00
00055 #define GET_DEVICE 0x01
00056 #define CLEAR_FEATURE 0x01
00057 #define GET_STRING 0x03
00058 #define SET_FEATURE 0x03
00059 #define SET_ADDRESS 0x05
00060 #define GET_DESCRIPTOR 0x06
00061 #define SET_DESCRIPTOR 0x07
00062 #define GET_CONFIGURATION 0x08
00063 #define SET_CONFIGURATION 0x09
00064 #define GET_INTERFACE 0x0A
00065 #define SET_INTERFACE 0x0B
00066 #define SYNCH_FRAME 0x0C
00067
00068 #define GET_DEVICE_DESCRIPTOR 1
00069 #define GET_CONFIGURATION_DESCRIPTOR 4
00070
00071 #define REQUEST_DEVICE_STATUS 0x80
00072 #define REQUEST_INTERFACE_STATUS 0x81
00073 #define REQUEST_ENDPOINT_STATUS 0x82
00074 #define ZERO_TYPE 0x00
00075 #define INTERFACE_TYPE 0x01
00076 #define ENDPOINT_TYPE 0x02
00077
00078
00079 #define DEVICE_DESCRIPTOR 0x01
00080 #define CONFIGURATION_DESCRIPTOR 0x02
00081 #define STRING_DESCRIPTOR 0x03
00082 #define INTERFACE_DESCRIPTOR 0x04
00083 #define ENDPOINT_DESCRIPTOR 0x05
00084 #define DEVICE_QUALIFIER_DESCRIPTOR 0x06
00085 #define OTHER_SPEED_CONFIGURATION_DESCRIPTOR 0x07
00086
00087
00088
00089
00090 #define FEATURE_DEVICE_REMOTE_WAKEUP 0x01
00091 #define FEATURE_ENDPOINT_HALT 0x00
00092
00093 #define TEST_J 0x01
00094 #define TEST_K 0x02
00095 #define TEST_SEO_NAK 0x03
00096 #define TEST_PACKET 0x04
00097 #define TEST_FORCE_ENABLE 0x05
00098
00099
00100
00101 #define BUS_POWERED 0
00102 #define SELF_POWERED 1
00103
00105
00106 #define USB_MODE_UNDEFINED 0x00
00107 #define USB_MODE_HOST 0x01
00108 #define USB_MODE_DEVICE 0x02
00109
00110
00111
00112 extern volatile U16 g_usb_event;
00113 extern U8 g_usb_mode;
00114 extern U8 usb_remote_wup_feature;
00115
00129 void usb_task_init (void);
00130
00141 void usb_task (void);
00142
00143 extern volatile U8 private_sof_counter;
00144
00145
00146
00148
00149 #endif
00150