打印
[数据传输]

关于usb device发数据的疑问

[复制链接]
1409|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Huntsmen|  楼主 | 2014-1-14 23:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
USB发送数据主动权都掌握在Host端,device发数据必须先要host发送IN指令后,device才能发送数据,但是有几个疑问:
1,Host怎么知道device什么时间有数据要发,什么时间该给device送一个IN指令? 比如我有个应用程序不定期的产生数据,产生之后就必须通过usb送到host端,这个该怎么搞?
2,如果host给device送了一个IN指令,这个时候device没有数据要发送,device怎么处理?回复一个NACK吗?host收到这个NACK之后,下次再什么时候发IN指令?

相关帖子

沙发
amwrdfe| | 2014-1-15 00:12 | 只看该作者
这个去看usb的四大传输类型, 里面有详细的答案。

使用特权

评论回复
板凳
Huntsmen|  楼主 | 2014-1-15 00:28 | 只看该作者
四大传输还不是要Host发IN指令,
只有中断传输,host会定期间隔的发IN指令,但是如果device数据量不多且间隔不固定时,采用中断方式岂不是很浪费

使用特权

评论回复
地板
yubsh| | 2014-1-18 16:15 | 只看该作者
一般无错传输都用bulk方式。
对于设备产生的数据,不管定期不定期,主机都应该“定期”去取数,否则就会漏掉数据,除非设备有大缓冲。一般主机用线程或者定时器获取设备数据。
设备固件等待主机取数命令,把上传数据打包即可。至于包的长短是否一致,这些都由通讯双方的协议确定,跟USB本身没有关系。

使用特权

评论回复
5
computer00| | 2014-1-30 07:51 | 只看该作者
你的情况可以用中断传输,牺牲一点带宽没关系的,反正闲着也是闲着

使用特权

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

本版积分规则

11

主题

14

帖子

0

粉丝