免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2556 | 回复: 4
打印 上一主题 下一主题

主机端收到NAK后,会再次重发请求,请问这个机制在驱动程序的哪里实现的? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-26 09:12 |只看该作者 |倒序浏览
嵌入式平台usb主机端发送OUT令牌,收到usb 设备返回NAK握手信号,于是通过usb分析仪可以看到主机端不断重发该OUT令牌,每1ms重发10多次;
我想问下,重发OUT令牌是在哪里实现的?我能够降低重发的频率吗?

论坛徽章:
0
2 [报告]
发表于 2010-07-29 18:02 |只看该作者
如果是usb host硬件发送的,那可以通过寄存器设置这个发送的时间间隔码?

因为我看PC的usb host发送的频率比我的嵌入式usb host发送的频率要低很多。并且在PC上遇到NAK时候,一般PC重发3次,就可以收到ACK了;可是在我的嵌入式平台上遇到NAK时,嵌入式平台要重发2000多次,持续时间500ms,才能收到NAK应答。
我怀疑是嵌入式平台的读取操作发送的频繁(因为没有数据,收到NAK,因此不断发送读取操作)了,导致usb device太忙造成的,因此我想降低遇到NAK时的重发频率,不知道观点是否正确。

论坛徽章:
0
3 [报告]
发表于 2010-07-30 14:29 |只看该作者
usb device的nak/ack是可控的,它要是每次都回ack,那host根本不需重发

论坛徽章:
0
4 [报告]
发表于 2010-08-02 09:52 |只看该作者
我明白,usb device已经收到了正确的数据,但是因为太忙,来不及处理,因此返回一个nak;

我现在想要修改的是,原先usb host收到了nak后很快就进行了重发,我想把这个改一下,譬如改成等1ms后再重发,我不知道在哪里修改,请教各位了,谢谢!

论坛徽章:
0
5 [报告]
发表于 2010-08-05 15:37 |只看该作者
这个重发貌似是硬件动作的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP