原创 EZ-USB学习

2009-1-4 14:21 3499 6 6 分类: 处理器与DSP

推荐开发流程


5.1  看本介绍USB 2.0协议的书,对USB 2.0协议有所了解。推荐《USB 2.0原理与工程开发》


5.2  看CYUSB.PDF文档。了解驱动安装方法。


5.3  看KEIL C51的书籍,熟悉C51的编程方法,熟悉KEIL C编程环境。


5.4  看CYPRESS提供的例程,了解68013A编程框架。推荐《EZ-USB 2100系列单片机原理、编程及应用》(基本框架类似,部分寄存器定义不同)。


5.5  对照USB 2.0协议,编写dscr.a51文件,配置各种描述符。


5.6  结合FX2 TechRefManual.pdf,研读FW.C、PERIPH.C、FX2REGS.H、FX2.H,了解寄存器的定义。


5.7  根据系统需求编写响应代码,有开发板时,根据开发版上的LED来测试程序正确与否。


5.8  根据CYAPI.PDF CYUSB.PDF编写上位机通讯程序。


同步读取数据方法         XferData();


异步读取数据方法                              BeginDataXfer()/WaitForXfer()/FinishDataXfer();


5.9  调试程序。


5.10               编写其他8051上的程序,并继续调试。


___________________________________________下面是对dscr.a51文件的分析_________________________________________________ 


 


该文件主要是一个USB设备的描述符配置表


;;-----------------------------------------------------------------------------


;;   File:      dscr.a51


;;   Contents:   This file contains descriptor data tables. 


;;


;;   Copyright (c) 1997 AnchorChips, Inc. All rights reserved


;;-----------------------------------------------------------------------------


 


;;下面是USB设备的设备描述符类型


;; 设备描述符


;; 配置描述符


;; 接口描述符


;; 端口描述符


;; String字串描述符


;; 装置认可描述符(新添加的,暂时未查到详细信息)


  


DSCR_DEVICE       equ    1      ;; Descriptor type: Device


DSCR_CONFIG       equ    2      ;; Descriptor type: Configuration


DSCR_STRING       equ    3      ;; Descriptor type: String


DSCR_INTRFC       equ    4      ;; Descriptor type: Interface


DSCR_ENDPNT       equ    5      ;; Descriptor type: Endpoint


DSCR_DEVQUAL      equ    6      ;; Descriptor type: Device Qualifier


 


;;下面是各描述符的长度


;;设备描述符的长度为18个字节


;;配置描述符的长度为9个字节


;;接口描述符的长度为9个字节


;;端口描述符的长度为7个字节


;;(暂时省略)


DSCR_DEVICE_LEN   equ   18


DSCR_CONFIG_LEN   equ    9


DSCR_INTRFC_LEN   equ    9


DSCR_ENDPNT_LEN   equ    7


DSCR_DEVQUAL_LEN  equ   10


 


;;下面应该是事务格式,也即传输类型


;;控制传输方式


;;同步


;;批处理


;;中断


ET_CONTROL        equ    0      ;; Endpoint type: Control


ET_ISO            equ    1      ;; Endpoint type: Isochronous


ET_BULK           equ    2      ;; Endpoint type: Bulk


ET_INT            equ    3      ;; Endpoint type: Interrupt


 


public      DeviceDscr, DeviceQualDscr, HighSpeedConfigDscr, FullSpeedConfigDscr, StringDscr, UserDscr


 


;; TGE  DSCR   SEGMENT   CODE


 


;;-----------------------------------------------------------------------------


;; Global Variables


;;-----------------------------------------------------------------------------


 


;; TGE      rseg DSCR                 ;; locate the descriptor table in on-part memory.


 


            cseg at 90H               ;; TODO: this needs to be changed before release


 


;;设备描述符的结构


DeviceDscr:  


      db   DSCR_DEVICE_LEN      ;; Descriptor length


      db   DSCR_DEVICE          ;; Decriptor type


      dw   0002H                ;; Specification Version (BCD)


      db   00H                  ;; Device class


      db   00H                  ;; Device sub-class


      db   00H                  ;; Device sub-sub-class


      db   64                   ;; Maximum packet size


      dw   4705H                ;; Vendor ID


      dw   0210H                ;; Product ID (Sample Device)


      dw   0000H                ;; Product version ID


      db   1                    ;; Manufacturer string index


      db   2                    ;; Product string index


      db   0                    ;; Serial number string index


      db   1                    ;; Number of configurations


 


;;装置认可描述符的结构


DeviceQualDscr:


      db   DSCR_DEVQUAL_LEN     ;; Descriptor length


      db   DSCR_DEVQUAL         ;; Decriptor type


      dw   0002H                ;; Specification Version (BCD)


      db   00H                  ;; Device class


      db   00H                  ;; Device sub-class


      db   00H                  ;; Device sub-sub-class


      db   64                   ;; Maximum packet size


      db   1                    ;; Number of configurations


      db   0                    ;; Reserved


 


;;高速描述符的结构介绍开始


 


;;高速配置描述符结构


HighSpeedConfigDscr:  


      db   DSCR_CONFIG_LEN      ;; Descriptor length


      db   DSCR_CONFIG          ;; Descriptor type


      db   (HighSpeedConfigDscrEnd-HighSpeedConfigDscr) mod 256 ;; Total Length (LSB)


      db   (HighSpeedConfigDscrEnd-HighSpeedConfigDscr)  /  256 ;; Total Length (MSB)


      db   1                    ;; Number of interfaces


      db   1                    ;; Configuration number


      db   0                    ;; Configuration string


      db   10100000b            ;; Attributes (b7 - buspwr, b6 - selfpwr, b5 - rwu)


      db   50                   ;; Power requirement (div 2 ma)


 


;;高速接口描述符结构


;; Interface Descriptor


      db   DSCR_INTRFC_LEN      ;; Descriptor length


      db   DSCR_INTRFC          ;; Descriptor type


      db   0                    ;; Zero-based index of this interface


      db   0                    ;; Alternate setting


      db   2                    ;; Number of end points


      db   0ffH                 ;; Interface class


      db   00H                  ;; Interface sub class


      db   00H                  ;; Interface sub sub class


      db   0                    ;; Interface descriptor string index


     


;;高速端口描述符结构(出端点)


;; Endpoint Descriptor


      db   DSCR_ENDPNT_LEN      ;; Descriptor length


      db   DSCR_ENDPNT          ;; Descriptor type


      db   02H                  ;; Endpoint number, and direction


      db   ET_BULK              ;; Endpoint type


      db   00H                  ;; Maximun packet size (LSB)


      db   02H                  ;; Max packect size (MSB)


      db   00H                  ;; Polling interval


 


;;高速端口描述符结构(入端点)


;; Endpoint Descriptor


      db   DSCR_ENDPNT_LEN      ;; Descriptor length


      db   DSCR_ENDPNT          ;; Descriptor type


      db   86H                  ;; Endpoint number, and direction


      db   ET_BULK              ;; Endpoint type


      db   00H                  ;; Maximun packet size (LSB)


      db   02H                  ;; Max packect size (MSB)


      db   00H                  ;; Polling interval


 


HighSpeedConfigDscrEnd:  


;;高速描述符结构介绍完毕


 


;;全速描述符结构介绍开始


 


;;全速配置描述符


FullSpeedConfigDscr:  


      db   DSCR_CONFIG_LEN      ;; Descriptor length


      db   DSCR_CONFIG          ;; Descriptor type


      db   (FullSpeedConfigDscrEnd-FullSpeedConfigDscr) mod 256 ;; Total Length (LSB)


      db   (FullSpeedConfigDscrEnd-FullSpeedConfigDscr)  /  256 ;; Total Length (MSB)


      db   1                    ;; Number of interfaces


      db   1                    ;; Configuration number


      db   0                    ;; Configuration string


      db   10100000b            ;; Attributes (b7 - buspwr, b6 - selfpwr, b5 - rwu)


      db   50                   ;; Power requirement (div 2 ma)


 


;;全速接口描述符


;; Interface Descriptor


      db   DSCR_INTRFC_LEN      ;; Descriptor length


      db   DSCR_INTRFC          ;; Descriptor type


      db   0                    ;; Zero-based index of this interface


      db   0                    ;; Alternate setting


      db   2                    ;; Number of end points


      db   0ffH                 ;; Interface class


      db   00H                  ;; Interface sub class


      db   00H                  ;; Interface sub sub class


      db   0                    ;; Interface descriptor string index


     


;;全速端点描述符(出端点)


;; Endpoint Descriptor


      db   DSCR_ENDPNT_LEN      ;; Descriptor length


      db   DSCR_ENDPNT          ;; Descriptor type


      db   02H                  ;; Endpoint number, and direction


      db   ET_BULK              ;; Endpoint type


      db   40H                  ;; Maximun packet size (LSB)


      db   00H                  ;; Max packect size (MSB)


      db   00H                  ;; Polling interval


 


;;全速端点描述符(入端点)


;; Endpoint Descriptor


      db   DSCR_ENDPNT_LEN      ;; Descriptor length


      db   DSCR_ENDPNT             ;; Descriptor type


      db   86H                 ;; Endpoint number, and direction


      db   ET_BULK            ;; Endpoint type


      db   40H                 ;; Maximun packet size (LSB)


      db   00H                 ;; Max packect size (MSB)


      db   00H                 ;; Polling interval


 


FullSpeedConfigDscrEnd:  


;;全速描述符介绍完毕


 


;;下面是字串描述符介绍


StringDscr:


 


StringDscr0:  


      db   StringDscr0End-StringDscr0      ;; String descriptor length


      db   DSCR_STRING


      db   09H,04H


StringDscr0End:


 


StringDscr1:  


      db   StringDscr1End-StringDscr1      ;; String descriptor length


      db   DSCR_STRING


      db   'S',00


      db   'R',00


      db   'C',00


      db   'O',00


      db   'U',00


      db   'T',00


      db   '_',00


      db   'S',00


      db   ' ',00


      db   'v',00


      db   '0',00


      db   '.',00


      db   '2',00


      db   '.',00


      db   '0',00


      db   '0',00


      db   '0',00


      db   '0',00


StringDscr1End:


 


StringDscr2:  


      db   StringDscr2End-StringDscr2      ;; Descriptor length


      db   DSCR_STRING


      db   'E',00


      db   'Z',00


      db   '-',00


      db   'U',00


      db   'S',00


      db   'B',00


      db   ' ',00


      db   'F',00


      db   'X',00


      db   '2',00


      db   ' ',00


      db   'D',00


      db   'K',00


      db   ' ',00


      db   'B',00


      db   'O',00


      db   'A',00


      db   'R',00


      db   'D',00


      db   ' ',00


      db   'W',00


      db   '/',00


      db   'L',00


      db   'O',00


      db   'G',00


      db   'I',00


      db   'C',00


      db   ' ',00


      db   'A',00


      db   'N',00


      db   'A',00


      db   'L',00


      db   'Y',00


      db   'Z',00


      db   'E',00


      db   'R',00


StringDscr2End:


 


UserDscr:     


      dw   0000H


      end


  _________________________________________________________________


疑问:   在分析dscr,a51文件时,得知该文件是一个USB设备固件描述符表,有一个疑问就是里面只列出了高速设备和全速设备的描述符,而且这两种描述符中还只包括了ET-BULK(应该批处理传输)的方式,其它(中断、控制、同步)的在哪里定义了啊,而且对于低速设备不用做描述吗

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /2 下一条