zqybgt
驱动牛犊
驱动牛犊
  • 注册日期2003-07-21
  • 最后登录2005-03-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
80楼#
发布于:2003-09-23 09:53
请问各位大侠:
  我现在遇到一个很郁闷的问题,就是我的描述符文件,在usb2.0和usb1.1得主机上不能兼容,就是我的描述符文件里加上端点1的中断端点的端点描述符在usb1.1得主机接口上就识别不了设备,但是去掉那部分就能识别,不知什么原因。
 请帮忙解决,如果需要,我可以把描述符贴过来。
谢谢!!!

zqybgt
驱动牛犊
驱动牛犊
  • 注册日期2003-07-21
  • 最后登录2005-03-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
81楼#
发布于:2003-09-23 14:42
不知frank_wang能帮我解决问题吗?
谢谢
frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
82楼#
发布于:2003-09-24 10:03
贴出来看看吧。2。0的问题我也不熟悉。
zqybgt
驱动牛犊
驱动牛犊
  • 注册日期2003-07-21
  • 最后登录2005-03-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
83楼#
发布于:2003-09-24 10:16
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

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

DSCR   SEGMENT   CODE PAGE

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

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   3               ;; 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(就是这个端点部分如果加上在USB1.1的主机上,我的设备就找不到了,但是在USB2.0的主机上就完全正常)
    db   DSCR_ENDPNT_LEN      ;; Descriptor length
    db   DSCR_ENDPNT         ;; Descriptor type
    db   81H               ;; Endpoint number, and direction
    db   ET_INT             ;; Endpoint type
    db   40H               ;; Maximun packet size (LSB)
    db   00H               ;; Max packect size (MSB)
    db   01H               ;; Polling interval
          
;; 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   3               ;; 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   81H               ;; Endpoint number, and direction
    db   ET_INT             ;; Endpoint type
    db   40H               ;; Maximun packet size (LSB)
    db   00H               ;; Max packect size (MSB)
    db   0AH               ;; Polling interval  
 
;; 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:  


以上就是我定义的描述符,不知什么地方搞错了,麻烦帮助解决!
先谢了!!!!
xuj2008
驱动牛犊
驱动牛犊
  • 注册日期2003-08-21
  • 最后登录2004-09-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
84楼#
发布于:2003-09-24 11:52
问大家一个问题,U盘已经开发完成后,怎么测试读写正确性呢?有没有现成的程序可以使用啊?
是这样的,我本身没有参与U盘的开发,但公司开发的U盘用户反应有时写进去的数据到另外一台机子上读出来错了几个字节。所以我被要求考虑测试这方面的问题。我本来写了一个程序(VC的),检测U盘可用空间的大小,然后创建一个与其大小相同的文件(在硬盘上),将此文件拷贝到U盘中,然后再将该文件读出来与硬盘上的文件相比较,如果两个文件不同,则认为U盘读写出错了。现在问题是在一台机子上,一个U盘测试几遍都是对的,但到了另外一台配置完全相同的机子上,测试就出错了。想问大家,这种方法可行吗?
frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
85楼#
发布于:2003-09-29 13:52
    我不太明白你的意思,这个U盘是你自己做的那种,还是说你是做了个PC端程序来读普通的U盘。
    
    其实U盘写错有许多因素,比如,Flash出现坏块,或者是程序处理的问题。但是如果在一台机器没有问题,而到了另外一台机器上确有问题,的确是比较少见的。

    如果要彻底测一个U盘是不是读写正常,我建议可以用RAR压一个接近U盘最大容量的文件,然后将其拷入U盘,拨出U盘后再次插入计算机,然后再将这个文件复制到计算机上,看其是否可以正常解压,因为压缩文件的缘故,那怕是几个字节的错误,都应该是可以有所体现的。如果没有问题,则说明读写是没有问题的。

    不知我的想法是否正确,大家可以讨论一下这个问题.我现在也遇到文件系统比较奇怪的问题,就是同样的情况下,有时候可以,有时候不可以.
luoyokel
驱动牛犊
驱动牛犊
  • 注册日期2003-08-04
  • 最后登录2003-10-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
86楼#
发布于:2003-10-05 11:46
最近在用sl811做一个usb host。但老是读不稳定。我单步运行时,读U盘数据都是很好的,全速运行有时候好,有时候不好。感觉常有命令被stall了。有时候发一个cbw包过去,根本读不到数据。不知道问题出在哪儿?大侠们指点一下啊!当读出错误时,或者是stall了时,我该如果处理呢,大侠们可否给我一个参考程序啊!luoyokel@163.com
xuj2008
驱动牛犊
驱动牛犊
  • 注册日期2003-08-21
  • 最后登录2004-09-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
87楼#
发布于:2003-10-10 12:49
我们公司正在开发U盘,已经接近尾声。现碰到一个新问题:本来说芯片供应商要提供的Win98下驱动不再提供。所以要我们自己完成。
这个任务就交给我了。由于我没有涉及到这方面的工作,所以比较痛苦。
经过这几天的准备,了解了一点基本知识。
现在决定使用微软网上提供的UMSS源代码作为驱动。
我想问大家我该怎么创建该源代码的编译环境呢。
我的机子现在装了VC+98ddk+DS,这样对吗还有VC创建的工程是什么类型的?谢谢!
jyc_1
驱动小牛
驱动小牛
  • 注册日期2003-09-13
  • 最后登录2009-01-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望110点
  • 贡献值0点
  • 好评度110点
  • 原创分0分
  • 专家分0分
88楼#
发布于:2003-10-10 22:57
真的很好,欢迎多多介绍新东东!
lishilong
驱动牛犊
驱动牛犊
  • 注册日期2003-10-11
  • 最后登录2006-08-10
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
89楼#
发布于:2003-10-11 15:28
BUS HOUND是什么东东 ,如何能弄得到?
frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
90楼#
发布于:2003-10-11 20:43
Bus Hound这个贴子中已经贴过了,可以下的,你找一下吧。

至于98下的驱动,以前有一个朋友贴过一个98下的U盘驱动,我当时拿过来就可以用的。附件中是这个朋友提供的驱动,你试试你的能否用,我记不得那个朋友的名字了,在此申明,是别人做的,当时是共享的,所以我再贴一次。

至于HOST不稳定,我也碰到这样的问题,可以说,这个是跟布线有关系的,你再好好布布线,估计会有所改善的。
附件名称/大小 下载次数 最后更新
2003-10-11_USB_Disk_98SE_Driver.rar (22KB)  183
frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
91楼#
发布于:2003-10-11 20:48
想问一下xuj2008,你们公司开发的U盘是特殊领域的吧,要是普通的U盘,现在市面上U盘的竞争基本上没有利润了我觉得,利润就看你是否可以拿到低价的USB芯片和Flash,这中间的空间还有么?
wqw
wqw
驱动牛犊
驱动牛犊
  • 注册日期2002-07-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
92楼#
发布于:2003-10-14 00:37
现在还做U盘?已经没利润了
chazhiguo
驱动牛犊
驱动牛犊
  • 注册日期2003-10-15
  • 最后登录2003-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
93楼#
发布于:2003-10-15 10:53
欢迎欢迎
 

 为什么现在这个文件不能下载!能不能发一份给我,谢谢!
chazhiguo@163.com
szlook
驱动牛犊
驱动牛犊
  • 注册日期2003-10-16
  • 最后登录2007-06-19
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
94楼#
发布于:2003-10-16 15:35
引用:
------------------------------------------------------------
正准备做USB HOST的朋友请与我联系,我现有一个板子,已经可以实现对U盘的读写,需要进一步完善,希望可以合作,一起进行进一步的开发.
--------------------

楼主:因任务较紧,能否购买你的USB HOST板(提供驱动源码),是811HST的吗?另外请把那篇2003-08-01_USB通讯若干问题探讨.rar
发给我,DOWN不下来。szlook_szb@21cn.net 多谢!

[编辑 -  10/16/03 by  szlook]

[编辑 -  10/16/03 by  szlook]
frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
95楼#
发布于:2003-10-20 09:18
大家发现贴子里的文档Down不下来时,请用Flashget,以免因为我没有及时看到贴子,不能及时给你发.
cogan
驱动牛犊
驱动牛犊
  • 注册日期2002-07-09
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望21点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
96楼#
发布于:2003-10-20 15:17
楼主真是个热心人!

再次口头表扬一次!!

cogan
驱动牛犊
驱动牛犊
  • 注册日期2002-07-09
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望21点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
97楼#
发布于:2003-10-20 15:18

但是我们毕竟是学习嘛,学习一项新东西,使我们体验该事务的一个过程,经过我们不断摸索出来的东西,才会印象深刻啊,才会真正了解他的运作啊,.....
cogan
驱动牛犊
驱动牛犊
  • 注册日期2002-07-09
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望21点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
98楼#
发布于:2003-10-20 15:21
象楼主这样一下子发出的这么多德文字,我搞几年了,都看不过来,更何况初学者.

所以我觉得还应该具体问题具体分析,每个问题都有针对.

不知楼主以为然否?
frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
99楼#
发布于:2003-10-20 17:11
我非常赞同技术的学习是个过程,必须静下心来做才行.

但是这里有个问题,就是如何快速地利用别人已经有的东西,在别人现有工作的基础上做自己的事情.我们不需要把所有的工作都重复一遍的.况术业有专攻,每个人的擅长也不一样,大家互取所长,就可以各自在自己的领域里做一点儿事情了.况且,单个人的力量有限,自己一个人琢磨出的那点儿东西,我个人认为,是很不足为道的.关键要通过对技术的实践,获得一种思路和方法,然后在些基础上,做一些实实在在的事情.

USB对初学者来讲,的确是需要花一番功夫的,但我相信,只要花完这些功夫,相信大家就已经练就了能静下心来的本领了:)
游客

返回顶部