CH376如何批量传输?

CH376如何批量传输,在网上的例程和手册中的外部固件参考流程都是说的控制传输,现在用这款芯片做扫描条码,使用的是控制传输的例子。在传输时,每次发送IN事务令牌后,从设备得到8个字节的数据,然后从CH376端点缓冲区读出,然后再发送IN事务令牌给设备,这样反复读取,直至把条码读取完。如果是10位的条码,就要发送10次IN事务令牌,10次读取CH376端点缓冲区数据,然后分析要的数据。

我想象的是:条码枪是否一次将条码传送给CH376端点缓冲区,即CH376有命令让条码枪一次将条码传送过来,然后主机端再将CH376端点缓冲区数据一次读出,这样岂不是更好,这也是我认为的USB设备的批量传输,不知道对不对,请大家帮忙分析下啊,谢了!

你的想法很好,但是根据USB协议,主机发送IN包,设备上传一定数据,主机回应应答包。这样下一包才会来取,所以要考虑到每个端点的大小(像USB全速设备批量端点最大64字节),还要考虑设备每次上传的数据量。所以批量传输时由一个或者多个IN或OUT加数据包加应答包的传输。


谢谢ZBin的耐心回答,确实应该是你说的那样,我忽略了USB协议和端点传送的最大字节数,本来就是要通过发送IN包后,设备才能上传一定数据,而我的想象的错误处在于想发一个IN包后,就让设备把所有的数据传上来,应该是不可以这样批量传输的,而应该是由一个或者多个IN或OUT加数据包加应答包的传输,再次感谢帮助,谢谢


只有登录才能回复,可以选择微信账号登录