www.pudn.com > USBDriver.rar > D12CI.h


/****************************************Copyright (c)************************************************** 
**                               ¹ãÖÝÖÜÁ¢¹¦µ¥Æ¬»ú·¢Õ¹ÓÐÏÞ¹«Ë¾ 
**                                     ÑÐ    ¾¿    Ëù 
**                                        ²úÆ·Ò»²¿  
** 
**                                 http://www.zlgmcu.com 
** 
** ÎÄ   ¼þ   Ãû: D12CI.h 
** ×îºóÐÞ¸ÄÈÕÆÚ: 2004Äê7ÔÂ2ÈÕ 
** Ãè        Êö: PDIUSBD12 É豸¶ËÇý¶¯³ÌÐò ½Ó¿Ú¿ØÖÆÇý¶¯²ãÍ·Îļþ 
** °æ	     ±¾: V1.0 
**********************************************************************************************************/ 
 
#ifndef __D12CI_H__ 
#define __D12CI_H__ 
 
/**  D12 Ïà¹Ø¶¨Òå ***/ 
#define D12_NOLAZYCLOCK			0x02 
#define D12_CLOCKRUNNING        0x04 
#define D12_INTERRUPTMODE		0x08 
#define D12_SOFTCONNECT			0x10 
#define D12_ENDP_NONISO			0x00 
#define D12_ENDP_ISOOUT			0x40 
#define D12_ENDP_ISOIN			0x80 
#define D12_ENDP_ISOIO			0xC0 
 
#define D12_CLOCK_12M			0x03 
#define D12_CLOCK_4M			0x0b 
#define D12_SETTOONE            0x40 
#define D12_SOFONLY				0x80 
 
#define D12_DMASINGLE			0x00 
#define D12_BURST_4				0x01 
#define D12_BURST_8				0x02 
#define D12_BURST_16			0x03 
#define D12_DMAENABLE           0x04 
#define D12_DMA_INTOKEN			0x08 
#define D12_AUTOLOAD			0x10 
#define D12_NORMALPLUSSOF		0x20 
#define D12_ENDP4INTENABLE		0x40 
#define D12_ENDP5INTENABLE		0x80 
 
#define D12_INT_ENDP0OUT		0x01 
#define D12_INT_ENDP0IN			0x02 
#define D12_INT_ENDP1OUT		0x04 
#define D12_INT_ENDP1IN			0x08 
#define D12_INT_ENDP2OUT		0x10 
#define D12_INT_ENDP2IN			0x20 
#define D12_INT_BUSRESET		0x40 
#define D12_INT_SUSPENDCHANGE	0x80 
#define D12_INT_EOT				0x0100 
 
#define D12_SETUPPACKET			0x20 
 
#define D12_BUFFER0FULL			0x20 
#define D12_BUFFER1FULL			0x40 
 
#define D12_FULLEMPTY			0x01 
#define D12_STALL				0x02 
 
 
/************************************************************ 
** º¯ÊýÃû³Æ: INT16U readchipid(void) 
** ¹¦ÄÜÃèÊö: ¶ÁȡоƬID 
** Êä¡¡  Èë: ÎÞ 
** Êä ¡¡ ³ö: оƬµÄIDºÅ 
************************************************************/ 
INT16U readchipid(void); 
 
 
/************************************************************ 
** º¯ÊýÃû³Æ: void D12_SetAddressEnable(INT8U bAddress,INT8U bEnable) 
** ¹¦ÄÜÃèÊö: ÉèÖõØÖ·Ê¹ÄÜ 
** Êä¡¡  Èë: INT8U bAddress:  µØÖ· 
	     INT8U bEnable :  0 --- ½ûÖ¹ 
	     		      1 --- ʹÄÜ 
** Êä ¡¡ ³ö: ÎÞ 
************************************************************/ 
void D12_SetAddressEnable(INT8U bAddress, INT8U bEnable); 
 
 
/************************************************************ 
** º¯ÊýÃû³Æ: void D12_SetEndpointEnable(INT8U bEnable) 
** ¹¦ÄÜÃèÊö: ÉèÖö˵ãʹÄÜ 
** Êä¡¡  Èë: INT8U bEnable :  0 --- ½ûÖ¹ 
	     		      1 --- ÔÊÐí 
** Êä ¡¡ ³ö: ÎÞ 
************************************************************/ 
void D12_SetEndpointEnable(INT8U bEnable); 
 
/************************************************************ 
** º¯ÊýÃû³Æ: void D12_SetMode(INT8U bConfig,INT8U bClkDiv) 
** ¹¦ÄÜÃèÊö: ģʽÉèÖà 
** Êä¡¡  Èë: INT8U bConfig:  ģʽֵ 
	     INT8U bClkDiv:  ·ÖƵϵÊý 
** Êä ¡¡ ³ö: ÎÞ 
************************************************************/ 
void D12_SetMode(INT8U bConfig, INT8U bClkDiv); 
 
/************************************************************ 
** º¯ÊýÃû³Æ: void D12_SetDMA(INT8U bMode) 
** ¹¦ÄÜÃèÊö: ÉèÖÃDMA¹¤×÷·½Ê½ÉèÖà 
** Êä¡¡  Èë: INT8U bMode:    ģʽֵ 
** Êä ¡¡ ³ö: ÎÞ 
************************************************************/ 
void D12_SetDMA(INT8U bMode); 
 
/************************************************************ 
** º¯ÊýÃû³Æ: INT16U D12_ReadInterruptRegister(void) 
** ¹¦ÄÜÃèÊö: ¶ÁÈ¡ÖжϼĴæÆ÷Öµ 
** Êä¡¡  Èë: ÎÞ 
** Êä ¡¡ ³ö: ÖжϼĴæÆ÷Öµ 
************************************************************/ 
INT16U D12_ReadInterruptRegister(void); 
 
/************************************************************ 
** º¯ÊýÃû³Æ: INT8U D12_SelectEndpoint(INT8U bEndp) 
** ¹¦ÄÜÃèÊö: ¶ËµãÑ¡Ôñ 
** Êä¡¡  Èë: INT8U bEndp£º   ¶ËµãË÷ÒýºÅ,ȡֵ0 ~ 5 
** Êä ¡¡ ³ö: ¶Á³öµÄ×Ö½Ú 
************************************************************/ 
INT8U D12_SelectEndpoint(INT8U bEndp); 
 
/************************************************************ 
** º¯ÊýÃû³Æ: INT8U D12_ReadLastTransactionStatus(INT8U bEndp) 
** ¹¦ÄÜÃèÊö: ¶ÁÈ¡×îºó´¦Àí״̬¼Ä´æÆ÷¬ 
** Êä¡¡  Èë: INT8U bEndp£º   ¶ËµãË÷ÒýºÅ,ȡֵ0 ~ 5 
** Êä ¡¡ ³ö: ¶Ëµã×îºó´¦ÀíµÄ״̬ 
************************************************************/ 
INT8U D12_ReadLastTransactionStatus(INT8U bEndp); 
 
 
/************************************************************ 
** º¯ÊýÃû³Æ: INT8U D12_ReadEndpointStatus(INT8U bEndp) 
** ¹¦ÄÜÃèÊö: ¶ÁÈ¡¶Ëµã״̬ 
** Êä¡¡  Èë: INT8U bEndp£º   ¶ËµãË÷ÒýºÅ,ȡֵ0 ~ 5 
** Êä ¡¡ ³ö: ¶Ëµã״̬ 
************************************************************/ 
INT8U D12_ReadEndpointStatus(INT8U bEndp); 
 
/************************************************************ 
** º¯ÊýÃû³Æ: INT8U D12_ReadEndpointStatus(INT8U bEndp) 
** ¹¦ÄÜÃèÊö: ÉèÖö˵ã״̬ 
** Êä¡¡  Èë: INT8U bEndp£º   ¶ËµãË÷ÒýºÅ,ȡֵ0 ~ 5 
	     INT8U bStalled: ״ֵ̬ 
** Êä ¡¡ ³ö: ¶Ëµã״̬ 
************************************************************/ 
void D12_SetEndpointStatus(INT8U bEndp,INT8U bStalled); 
 
 
/************************************************************ 
** º¯ÊýÃû³Æ: void D12_SendResume(void) 
** ¹¦ÄÜÃèÊö: ´«Êä»Ö¸´ 
** Êä¡¡  Èë: ÎÞ 
** Êä ¡¡ ³ö: ÎÞ 
************************************************************/ 
void D12_SendResume(void); 
 
/************************************************************ 
** º¯ÊýÃû³Æ: INT16U D12_ReadCurrentFrameNumber(void) 
** ¹¦ÄÜÃèÊö: ¶ÁÈ¡µ±Ç°Ö¡ºÅ 
** Êä¡¡  Èë: ÎÞ 
** Êä ¡¡ ³ö: µ±Ç°Ö¡ºÅ 
************************************************************/ 
INT16U D12_ReadCurrentFrameNumber(void); 
 
/************************************************************ 
** º¯ÊýÃû³Æ: INT8U D12_ReadEndpoint(INT8U endp,INT8U len,INT8U * buf) 
** ¹¦ÄÜÃèÊö: ¶ÁÈ¡¶ËµãÊý¾Ý 
** Êä¡¡  Èë: INT8U endp:     ¶ËµãË÷ÒýºÅ,ȡֵ 0 ~ 5  
	     INT8U len:	     Òª¶ÁÈ¡µÄÊý¾Ý³¤¶È 
	     INT8U * buf:    ½ÓÊÕÊý¾ÝÖ¸Õë 
** Êä ¡¡ ³ö: ʵ¼Ê¶ÁµÃµÄ×Ö½ÚÊý 
************************************************************/ 
INT8U D12_ReadEndpoint(INT8U endp, INT8U len, INT8U * buf); 
 
 
/************************************************************ 
** º¯ÊýÃû³Æ: INT8U D12_WriteEndpoint(INT8U endp,INT8U len,INT8U * buf) 
** ¹¦ÄÜÃèÊö: °ÑÊý¾ÝдÈë¶Ëµã 
** Êä¡¡  Èë: INT8U endp:     ¶ËµãË÷ÒýºÅ,ȡֵ 0 ~ 5  
	     	 INT8U len:	     ҪдÈëµÄÊý¾Ý³¤¶È 
	     	 INT8U * buf:    ·¢ËÍÊý¾ÝÖ¸Õë 
** Êä ¡¡ ³ö: ʵ¼ÊдÈëµÄ×Ö½ÚÊý 
************************************************************/ 
INT8U D12_WriteEndpoint(INT8U endp, INT8U len, INT8U * buf); 
 
/************************************************************ 
** º¯ÊýÃû³Æ: void D12_AcknowledgeEndpoint(INT8U endp) 
** ¹¦ÄÜÃèÊö: ÉèÖö˵ãÓ¦´ð 
** Êä¡¡  Èë: INT8U endp:     ¶ËµãË÷ÒýºÅ,ȡֵ 0 ~ 5  
** Êä ¡¡ ³ö: ÎÞ 
************************************************************/ 
void D12_AcknowledgeEndpoint(INT8U endp); 
 
/************************************************************ 
** º¯ÊýÃû³Æ: void D12_ClearBuff(INT8U endp) 
** ¹¦ÄÜÃèÊö: ÇåÖ¸¶¨¶ËµãµÄ»º³åÇø(°üÀ¨Ë«»º³åÇø)© 
** Êä¡¡  Èë: INT8U endp:     ¶ËµãË÷ÒýºÅ,ȡֵ 0 ~ 5  
** Êä ¡¡ ³ö: ÎÞ 
************************************************************/ 
void D12_ClearBuff(INT8U endp); 
 
/************************************************************ 
** º¯ÊýÃû³Æ: void disconnect_USB(void)  
** ¹¦ÄÜÃèÊö: ¶Ï¿ªUSB×ÜÏß 
************************************************************/ 
void disconnect_USB(void); 
 
 
/************************************************************ 
** º¯ÊýÃû³Æ: void connect_USB(void) 
** ¹¦ÄÜÃèÊö: Á¬½ÓUSB×ÜÏß 
************************************************************/ 
void connect_USB(void); 
 
/************************************************************ 
** º¯ÊýÃû³Æ: void reconnect_USB(void) 
** ¹¦ÄÜÃèÊö: ÖØÐÂÁ¬½ÓUSB×ÜÏß 
************************************************************/ 
void reconnect_USB(void); 
 
 
#endif