imjacob
驱动牛犊
驱动牛犊
  • 注册日期2006-09-29
  • 最后登录2010-03-15
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望109点
  • 贡献值0点
  • 好评度88点
  • 原创分0分
  • 专家分0分
阅读:1474回复:3

关于in token后数据上传得问题

楼主#
更多 发布于:2007-10-16 21:34
我想问一下,
控制传输的时候,当pc发一个in token,请求长度为60B,但是设备端由于没来得及有buffer放这些数据或者来不及凑齐这些数据,假设只有30B数据,他会立即发30B数据上去,然后等下一次再收30B发上去吗?还是一定要凑齐满之后才发上去。

我看到一本书上讲的意思,好像是当in 方向的时候,设备发上去的大小可以小于pc请求的大小。那时不是说前者是可以的呢?还请大家指教。
imjacob
驱动牛犊
驱动牛犊
  • 注册日期2006-09-29
  • 最后登录2010-03-15
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望109点
  • 贡献值0点
  • 好评度88点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-10-17 21:21
今天做了下试验, 当pc发一个in token,请求长度为60B,但下面我实际只发30B,pc就认为结束了,后面我继续发30B数据,pc也是收不到的。我是用bus hound做的试验。我想了原因,是不是pc收到这样的情况把它作为短包,而短包是作为结束标志的。

另外,今天经过公司同事发现,实际上是设备端先填到usb端点数据,然后pc发了in token后,数据才送到pc上去。这是我们的芯片net2272的datasheet上写的,我不知道是不是其他usb芯片也是这样。很困惑。
lejianz
驱动中牛
驱动中牛
  • 注册日期2003-03-05
  • 最后登录2023-11-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望145点
  • 贡献值0点
  • 好评度116点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2007-10-19 11:09
这个IN TOKEN是和具体的传输类型实现有关的.  也就是说, 在USB驱动中, 你可以实现接收到多少数据或接收到全部数据应返回它.  比如:HID中GETFEATURE中请求是你必须返回全部要求数据. 但我建议你仔细定义你的通信协议, 返回要求的数据.
一起交流,共同提高!
imjacob
驱动牛犊
驱动牛犊
  • 注册日期2006-09-29
  • 最后登录2010-03-15
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望109点
  • 贡献值0点
  • 好评度88点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-10-19 22:38
谢谢回答。我还是有点困惑。
不知道你的意思是不是这样的:设备返回的数据可以小于等于pc请求的数据呢?
然后你建议我是要返回正好pc请求的数据。  
那如果我返回小于的话,会有什么问题呢?

还有你指的“定义你的通信协议, 返回要求的数据”,是不是就是说考虑这种数据不够的情况

再次感谢
游客

返回顶部