daemone
驱动牛犊
驱动牛犊
  • 注册日期2006-02-23
  • 最后登录2009-06-18
  • 粉丝0
  • 关注0
  • 积分470分
  • 威望48点
  • 贡献值0点
  • 好评度47点
  • 原创分0分
  • 专家分0分
阅读:3218回复:6

求助USB BULK传输MaxPackageSize问题

楼主#
更多 发布于:2007-01-14 22:42
协议上说最大的是64B/Package,如果大于64B就分块传输,那么当我数据大于64B/package的时候,我在固件里面如何分块呢,怎么实现啊
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-01-15 09:18
分块是驱动自己做的,不用你管
daemone
驱动牛犊
驱动牛犊
  • 注册日期2006-02-23
  • 最后登录2009-06-18
  • 粉丝0
  • 关注0
  • 积分470分
  • 威望48点
  • 贡献值0点
  • 好评度47点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-01-15 12:23

jingHuiRen你好,因为我用的Firmware 里面是这样定义发送函数的:
如果我的数据长度大于MaxPackageSize,则发送的长度强制变成MaxPackageSize,
然后发送,那么剩下来的那些数据怎么办,因为发送了一次MaxPackageSize大小的数据就表示一次
数据传输成功,我无法一次发好多数据了啊?如果把剩下的数据到下次发,那就不是BULK 了啊
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-01-15 13:46
介个。。。
firmware里能定义MaxPackageSize?
头一次听说,这个似乎通常指的驱动里的

如果是firmware里的,那么MaxPackageSize是不可能大于512(2.0,1.1是64)的
firmware里传数据应该按照中断来说,每来一次端点中断就应该发送一个包的数据给主机,似乎不需要分割。
daemone
驱动牛犊
驱动牛犊
  • 注册日期2006-02-23
  • 最后登录2009-06-18
  • 粉丝0
  • 关注0
  • 积分470分
  • 威望48点
  • 贡献值0点
  • 好评度47点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-01-15 14:09
可能准确的说是MaxEndPointSize,我用的是PIC18F2455,它的Firmware里面是这样定义
MaxEndpointSize的:
#define USBGEN_EP_SIZE          64
这样每次每帧最多发64BYTES,我的理解不知道是不是正确,
现在我在小于64BYTES每帧的时候通讯正常
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-01-15 15:43
这个是主机方和设备方的协调问题
如果主机要65Bytes数据,那你就先给一个64,收到下一个中断后再给1字节
两边都说好了不就好办了?
gutian98
禁止发言
禁止发言
  • 注册日期2003-01-12
  • 最后登录2016-12-11
  • 粉丝4
  • 关注2
  • 积分760分
  • 威望8026点
  • 贡献值1点
  • 好评度364点
  • 原创分0分
  • 专家分21分
  • 金点子奖
  • 社区居民
6楼#
发布于:2007-01-15 15:44
用户被禁言,该主题自动屏蔽!
游客

返回顶部