80楼#
发布于:2003-09-23 09:53
请问各位大侠:
我现在遇到一个很郁闷的问题,就是我的描述符文件,在usb2.0和usb1.1得主机上不能兼容,就是我的描述符文件里加上端点1的中断端点的端点描述符在usb1.1得主机接口上就识别不了设备,但是去掉那部分就能识别,不知什么原因。 请帮忙解决,如果需要,我可以把描述符贴过来。 谢谢!!! |
|
81楼#
发布于:2003-09-23 14:42
不知frank_wang能帮我解决问题吗?
谢谢 |
|
82楼#
发布于:2003-09-24 10:03
贴出来看看吧。2。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: 以上就是我定义的描述符,不知什么地方搞错了,麻烦帮助解决! 先谢了!!!! |
|
84楼#
发布于:2003-09-24 11:52
问大家一个问题,U盘已经开发完成后,怎么测试读写正确性呢?有没有现成的程序可以使用啊?
是这样的,我本身没有参与U盘的开发,但公司开发的U盘用户反应有时写进去的数据到另外一台机子上读出来错了几个字节。所以我被要求考虑测试这方面的问题。我本来写了一个程序(VC的),检测U盘可用空间的大小,然后创建一个与其大小相同的文件(在硬盘上),将此文件拷贝到U盘中,然后再将该文件读出来与硬盘上的文件相比较,如果两个文件不同,则认为U盘读写出错了。现在问题是在一台机子上,一个U盘测试几遍都是对的,但到了另外一台配置完全相同的机子上,测试就出错了。想问大家,这种方法可行吗? |
|
85楼#
发布于:2003-09-29 13:52
我不太明白你的意思,这个U盘是你自己做的那种,还是说你是做了个PC端程序来读普通的U盘。
其实U盘写错有许多因素,比如,Flash出现坏块,或者是程序处理的问题。但是如果在一台机器没有问题,而到了另外一台机器上确有问题,的确是比较少见的。 如果要彻底测一个U盘是不是读写正常,我建议可以用RAR压一个接近U盘最大容量的文件,然后将其拷入U盘,拨出U盘后再次插入计算机,然后再将这个文件复制到计算机上,看其是否可以正常解压,因为压缩文件的缘故,那怕是几个字节的错误,都应该是可以有所体现的。如果没有问题,则说明读写是没有问题的。 不知我的想法是否正确,大家可以讨论一下这个问题.我现在也遇到文件系统比较奇怪的问题,就是同样的情况下,有时候可以,有时候不可以. |
|
86楼#
发布于:2003-10-05 11:46
最近在用sl811做一个usb host。但老是读不稳定。我单步运行时,读U盘数据都是很好的,全速运行有时候好,有时候不好。感觉常有命令被stall了。有时候发一个cbw包过去,根本读不到数据。不知道问题出在哪儿?大侠们指点一下啊!当读出错误时,或者是stall了时,我该如果处理呢,大侠们可否给我一个参考程序啊!luoyokel@163.com
|
|
87楼#
发布于:2003-10-10 12:49
我们公司正在开发U盘,已经接近尾声。现碰到一个新问题:本来说芯片供应商要提供的Win98下驱动不再提供。所以要我们自己完成。
这个任务就交给我了。由于我没有涉及到这方面的工作,所以比较痛苦。 经过这几天的准备,了解了一点基本知识。 现在决定使用微软网上提供的UMSS源代码作为驱动。 我想问大家我该怎么创建该源代码的编译环境呢。 我的机子现在装了VC+98ddk+DS,这样对吗还有VC创建的工程是什么类型的?谢谢! |
|
88楼#
发布于:2003-10-10 22:57
真的很好,欢迎多多介绍新东东!
|
|
89楼#
发布于:2003-10-11 15:28
BUS HOUND是什么东东 ,如何能弄得到?
|
|
90楼#
发布于:2003-10-11 20:43
Bus Hound这个贴子中已经贴过了,可以下的,你找一下吧。
至于98下的驱动,以前有一个朋友贴过一个98下的U盘驱动,我当时拿过来就可以用的。附件中是这个朋友提供的驱动,你试试你的能否用,我记不得那个朋友的名字了,在此申明,是别人做的,当时是共享的,所以我再贴一次。 至于HOST不稳定,我也碰到这样的问题,可以说,这个是跟布线有关系的,你再好好布布线,估计会有所改善的。 |
|
|
91楼#
发布于:2003-10-11 20:48
想问一下xuj2008,你们公司开发的U盘是特殊领域的吧,要是普通的U盘,现在市面上U盘的竞争基本上没有利润了我觉得,利润就看你是否可以拿到低价的USB芯片和Flash,这中间的空间还有么?
|
|
92楼#
发布于:2003-10-14 00:37
现在还做U盘?已经没利润了
|
|
93楼#
发布于:2003-10-15 10:53
欢迎欢迎 为什么现在这个文件不能下载!能不能发一份给我,谢谢! chazhiguo@163.com |
|
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] |
|
95楼#
发布于:2003-10-20 09:18
大家发现贴子里的文档Down不下来时,请用Flashget,以免因为我没有及时看到贴子,不能及时给你发.
|
|
96楼#
发布于:2003-10-20 15:17
楼主真是个热心人!
再次口头表扬一次!! |
|
97楼#
发布于:2003-10-20 15:18
但是我们毕竟是学习嘛,学习一项新东西,使我们体验该事务的一个过程,经过我们不断摸索出来的东西,才会印象深刻啊,才会真正了解他的运作啊,..... |
|
98楼#
发布于:2003-10-20 15:21
象楼主这样一下子发出的这么多德文字,我搞几年了,都看不过来,更何况初学者.
所以我觉得还应该具体问题具体分析,每个问题都有针对. 不知楼主以为然否? |
|
99楼#
发布于:2003-10-20 17:11
我非常赞同技术的学习是个过程,必须静下心来做才行.
但是这里有个问题,就是如何快速地利用别人已经有的东西,在别人现有工作的基础上做自己的事情.我们不需要把所有的工作都重复一遍的.况术业有专攻,每个人的擅长也不一样,大家互取所长,就可以各自在自己的领域里做一点儿事情了.况且,单个人的力量有限,自己一个人琢磨出的那点儿东西,我个人认为,是很不足为道的.关键要通过对技术的实践,获得一种思路和方法,然后在些基础上,做一些实实在在的事情. USB对初学者来讲,的确是需要花一番功夫的,但我相信,只要花完这些功夫,相信大家就已经练就了能静下心来的本领了:) |
|