3353|7

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

USB端点数据传输过程中的一个疑问,高人帮我解解~~ [复制链接]

问题是这样的:

    比如,在USB取某个字符串描述符时,主机下发的命令中指定要取的数据为10个字节长度。但实际上该字符串长度大于10个字节。根据协议那么第一次传送到主机的数据长度为10个字节,那么剩下的数据是怎么被传送到主机的呢?我看到的程序里,第一次取完数据后,清中断标志。如果再次进入这个描述符的传输的话,控制数据传输的变量都被重新初始化了,比如数据存储区指针,待发送数据长度等。
    我在调试程序的时候,如果不管上面取数据的长度,直接把实际的数据长度一次发完,在游戏控制器里面就能显示完整的产品描述符,而按主机下的长度来做第一次数据发送长度的话,就只能显示第一传输的那些字符。但两种情况在提示找到新硬件时,电脑的右下角都能显示完整的描述符。没有驱动程序,是用微软自带的,描述符里的 描述符长度 这个字节所填的值是正确的。
     

最新回复

如果再次进入这个描述符的传输的话,控制数据传输的变量都被重新初始化了,比如数据存储区指针,待发送数据长度等。 //////////// 因为你第一次已经获得了length了, 按这个length 再获得一次 string 描述地 程序应该是没问题地   详情 回复 发表于 2009-2-17 13:57
点赞 关注

回复
举报

77

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
不是很懂
路过帮顶下了
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
用bushound看看是通讯过程是如何的。
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

4
 
如果host要求的长度比实际数据的长度短,一定不要回超过host要求长度的数据,否则很容易出问题。描述符里前几个字节应该是有这个描述符的长度信息的,host在第一次获取以后,如果长度不够,应该会再发一次获取描述符的命令,而这次的要求长度就会修正到正确的长度。所以你可以理解为第一次获取的是长度信息,第二次获取的才是真正的描述符。
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

5
 
USB我现在也在搞,目前不懂的也多,ZLG公司现在USB这部分分出去了,给的帮助很少,楼主可以聊聊不,我也有不少很弱的问题要问问
我的贴是:http://topic.eeworld.net/u/20081230/16/6116b3f3-dbe2-4c9c-bf3a-98e4a0eabb21.html
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

6
 
建议看看圈圈的文章
 
 
 

回复

50

帖子

0

TA的资源

一粒金砂(初级)

7
 
host在第一次获取以后,如果长度不够,应该会再发一次获取描述符的命令,而这次的要求长度就会修正到正确的长度。
///


这个描述是对地

我看到的程序里,第一次取完数据后,清中断标志。如果再次进入这个描述符的传输的话,控制数据传输的变量都被重新初始化了,比如数据存储区指针,待发送数据长度等。
/////////////

再看你的描述,应该对上了 呵呵

 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

8
 
如果再次进入这个描述符的传输的话,控制数据传输的变量都被重新初始化了,比如数据存储区指针,待发送数据长度等。
////////////

因为你第一次已经获得了length了, 按这个length 再获得一次 string 描述地
程序应该是没问题地
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表