usb setup 设备握手问题

[复制链接]
5277|5
 楼主| 钻研的鱼 发表于 2011-11-8 10:05 | 显示全部楼层 |阅读模式
usb主机发送setup pid后,后面紧跟data0,设备对data0的握手只能是ACK吗?
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 令牌,可以返回任何应答
pover 发表于 2011-11-17 13:40 | 显示全部楼层
综合2,4楼, 细分下应该是, 在setup阶段,设备要么返回ACK, 表示传送正确(CRC, PID), 要么idle(不回应,什么都不做)因为,setup包或者data0包出错。
 楼主| 钻研的鱼 发表于 2011-11-23 08:35 | 显示全部楼层
正解,我是这样理解
您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

967

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部