阅读:1034回复:0
为什么主机发送448字节就不发送了?
前面frank的开发中也曾经提到这个问题:在响应Host 端的WRITE 指令时,由于一次至少写512 个字节,而USB 的批量传输端点一次只可以发送64 个字节,因此共需要传8 次,传完8 次后Device 端需要返回CSW ,但在实际调试过程中,却发现这样的更象:传完7 次数据后主机就不继续传了,然后报告超时,而如果在第7 次传输后发送CSW ,Host 端又会再传过来一帧数据。这就和常理显得比较不一致。但是即使在高度过程中发现这个问题,就在所有传数过程中,传到还剩下一帧时,向Host 发送CSW ,然后再接收一帧数据,结果发现这种处理方式可靠。这种现象在已有的资料中并没有描述,是在调试过程中发现的,因此,如果完全凭借资料,是很难解决这一问题的。
现在欧也遇到这个问题,本来主机要发送512字节,结果发送了448还差64字节就不发送了。欧对上述方法的疑问是:既然返回一个CSW接着就会将剩下的64字节发送过来,这岂不是违反了bulk-only传输协议?该协议明确规定传输的顺序是CBW->DATA->CSW. |
|