阅读:3218回复:6
求助USB BULK传输MaxPackageSize问题
协议上说最大的是64B/Package,如果大于64B就分块传输,那么当我数据大于64B/package的时候,我在固件里面如何分块呢,怎么实现啊
|
|
沙发#
发布于:2007-01-15 09:18
分块是驱动自己做的,不用你管
|
|
板凳#
发布于:2007-01-15 12:23
jingHuiRen你好,因为我用的Firmware 里面是这样定义发送函数的: 如果我的数据长度大于MaxPackageSize,则发送的长度强制变成MaxPackageSize, 然后发送,那么剩下来的那些数据怎么办,因为发送了一次MaxPackageSize大小的数据就表示一次 数据传输成功,我无法一次发好多数据了啊?如果把剩下的数据到下次发,那就不是BULK 了啊 |
|
地板#
发布于:2007-01-15 13:46
介个。。。
firmware里能定义MaxPackageSize? 头一次听说,这个似乎通常指的驱动里的 如果是firmware里的,那么MaxPackageSize是不可能大于512(2.0,1.1是64)的 firmware里传数据应该按照中断来说,每来一次端点中断就应该发送一个包的数据给主机,似乎不需要分割。 |
|
地下室#
发布于:2007-01-15 14:09
可能准确的说是MaxEndPointSize,我用的是PIC18F2455,它的Firmware里面是这样定义
MaxEndpointSize的: #define USBGEN_EP_SIZE 64 这样每次每帧最多发64BYTES,我的理解不知道是不是正确, 现在我在小于64BYTES每帧的时候通讯正常 |
|
5楼#
发布于:2007-01-15 15:43
这个是主机方和设备方的协调问题
如果主机要65Bytes数据,那你就先给一个64,收到下一个中断后再给1字节 两边都说好了不就好办了? |
|
6楼#
发布于:2007-01-15 15:44
用户被禁言,该主题自动屏蔽! |
|