打印

usb setup 设备握手问题

[复制链接]
4251|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
钻研的鱼|  楼主 | 2011-11-8 10:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
dqyubsh| | 2011-11-8 10:52 | 只看该作者
USB协议规定,端点0必须一直用来接受数据传输。但并不表示一定要返回ACK。当setup令牌到达时,固件可以有HSNAK,BUSY,STALL操作。

比如,用端点0传送一批数据(比如64字节×100次),写到外部FLASH或者EEPROM,因为写的慢,就要增加数据流控手段,插入停滞等待。即,每传送64字节让主机等一下,写好之后再传。

当然,理解并使用这些状态位比较困难。

使用特权

评论回复
评分
参与人数 1威望 +10 收起 理由
钻研的鱼 + 10
板凳
钻研的鱼|  楼主 | 2011-11-8 12:20 | 只看该作者
非常感谢!

使用特权

评论回复
地板
钻研的鱼|  楼主 | 2011-11-15 08:29 | 只看该作者
昨天看了协议,对于setup后面紧跟的数据,设备要么返回ACK,要么没有任何应答,对于之后的data 令牌,可以返回任何应答

使用特权

评论回复
5
pover| | 2011-11-17 13:40 | 只看该作者
综合2,4楼, 细分下应该是, 在setup阶段,设备要么返回ACK, 表示传送正确(CRC, PID), 要么idle(不回应,什么都不做)因为,setup包或者data0包出错。

使用特权

评论回复
6
钻研的鱼|  楼主 | 2011-11-23 08:35 | 只看该作者
正解,我是这样理解

使用特权

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

本版积分规则

64

主题

967

帖子

4

粉丝