打印

USB 超时及重试机制

[复制链接]
7035|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dragonyoo|  楼主 | 2008-1-8 15:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
computer00| | 2008-1-8 16:36 | 只看该作者

这个好象没有定义。

使用特权

评论回复
板凳
平常人| | 2008-1-8 21:33 | 只看该作者

OUT数据到DEVICE,Device不回答是严重事故,回答NACK是正常现象

OUT数据到DEVICE,Device不回答是严重事故,一般MS-Windows会隔几个到十几个Frame再重试,重试3次不成功则认为设备失效,Windows将发Reset。

OUT数据到DEVICE,Device回答NACK属正常现象,一般MS-Windows会马上重试,基本没有间隔,重试大约几十毫秒后认为设备失效,但我忘了Windows如何处理这种情况,好像也是发Reset。

这种超时时限在协议里没有规定,由Host端软件自定义。

使用特权

评论回复
地板
sz_kd| | 2008-1-8 21:44 | 只看该作者

学习了

使用特权

评论回复
5
wlsui| | 2008-1-8 21:47 | 只看该作者

re

OUT数据到DEVICE,Device一直NAK,实际上HOST控制器会自动重试,无需软件要求重试

使用特权

评论回复
6
dragonyoo|  楼主 | 2008-1-9 08:51 | 只看该作者

从硬件角度看

     OUT数据到DEVICE,Device一直NAK,这个重试只会3次。OUT数据到DEVICE,如果Device超时,这个重试也只会3次。这两种情况下的重试间隔有没有区别?我想NACK的重试间隔应该比timeout会快一些。
    从硬件角度看,NACK的重试有没有可能会在一个微帧里3次?感觉在一个微帧里重试3次也太快了。

使用特权

评论回复
7
computer00| | 2008-1-9 09:54 | 只看该作者

不对吧?out数据到device,device返回NAK,主机不止重试3次吧

协议里面是有个超时限制(返回NAK的次数过多的超时,而不是无应答的超时),但是没有规定重试3次,从我实际使用来看,似乎远不止3次。

如果超时后,就会reset,这个就会重试3次reset。

使用特权

评论回复
8
平常人| | 2008-1-9 14:40 | 只看该作者

NANK超时的间隔由PC驱动决定,超过18bit的时间即可

NACK超时重试的次数不限,但重试次数太多将严重影响系统效率,如果无止境地重试下去,USB总线会被堵死,所以Host软件必须控制重试次数,但USB协议没规定重试次数的上限。

使用特权

评论回复
9
CheneyPeng| | 2008-1-10 14:11 | 只看该作者

11

好像是重复三次之后就忽略改设备了,至于时间间隔好像没有规定是多少吧

使用特权

评论回复
10
dragonyoo|  楼主 | 2008-1-11 08:55 | 只看该作者

NCK超时

NCK超时是如何理解的?另外还有个问题,譬如host 发出IN数据指令,device还没有准备好,这是可以发送NCK相应,另外我能不能发送一个数据长度为零的data应答?这两种响应对host的处理是否有区别?

使用特权

评论回复
11
computer00| | 2008-1-11 09:39 | 只看该作者

不是NCK,而是NAK。

你自己都说明白了,你返回NAK,就表示设备未准备好数据;而反回0长度的数据包,则表示设备已经准备好了数据,而数据长度为0。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

52

帖子

1

粉丝