阅读:1174回复:1
请教bulk only transfer中关于data in数据包的问题
做u盘device,进入bulk only transfer后,若host期望从device接收数据,则device收到CBW后进入Data-In transfer,现假设配置端点1为IN端点,双缓冲模式禁止,最大数据包长度64bytes,不明白的是,若host请求数据超过端点1的最大数据包长度,则数据应被分成多个数据包发送吧?若是,是否每将一个64bytes的数据包写入相应端点即端点1的FIFO后,host会自动接收该包,并在成功接收后产生一个IN中断,进入中断服务程序转到Bulk-In,将下一个64bytes的数据包装入FIFO,之后host再接收,再产生中断.....如此“循环”,直到传输的数据为dCBWDataTransferLength中指明的数据长度?之后device设置CSW并送入FIFO发送到host?上述Data-In是否为一个类似循环的流程,即在IN中断服务程序中加以判断传输的数据长度,不足dCBWDataTransferLength则写下一个包到FIFO,host成功接收后产生中断又会进入这个IN中断服务程序?另外Data-Out transfer是否与此类似?以上只是个人的理解,不知正不正确,希望能得到各位高手的指点,让我度过这个难关,不胜感激!
|
|
沙发#
发布于:2005-05-29 13:17
为什么没有回音呢,是不是我问的问题太弱智了T_T.
|
|