请问USB Device如何判断数据传输的大小

[复制链接]
3410|5
 楼主| kingyou 发表于 2009-3-7 09:16 | 显示全部楼层 |阅读模式
我现在采用D12做Device端,遇到个问题,驱动每次读写D12的时候,D12怎么知道本次读写数据的字节数呢?<br />尤其是主机读D12的时候,Device怎么知道本次应该发送多少字节的数据给主机呢?<br />是否需要自己定义个包,再读数据之前先发送这个包给D12,让D12知道本次需要传送的字节数?<br />谢谢大侠解答。。。。<br />万分感谢啊。。。<br />&nbsp;<br />
computer00 发表于 2009-3-7 09:20 | 显示全部楼层

re

&nbsp;computer00&nbsp;发表于&nbsp;2009-3-7&nbsp;09:18&nbsp;驱动开发|WIN编程&nbsp;←返回版面&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />2楼:&nbsp;D12需要返回多少就要返回多少...&nbsp;<br /><br />大于最大包长时,每次发都按最大包长发,剩余的单独发;<br />不够最大包长时直接发。<br /><br />主机则要求至少能够接收一个最大包长的数据包。&nbsp;<br />&nbsp;<br />
 楼主| kingyou 发表于 2009-3-7 09:33 | 显示全部楼层

谢谢斑竹先

先谢谢斑竹。。。<br /><br />但是我这么知道大于最大包长或者不大于呢?比如这些主要需要50字节,下次又需要200字节,我这么能从主机发给我的包中知道这个50字节和200字节呢?<br /><br />另外,对于你说的“主机则要求至少能够接收一个最大包长的数据包”不是很理解呢,麻烦你能不能说得详细点呢?<br /><br />谢谢。。。
computer00 发表于 2009-3-7 13:12 | 显示全部楼层

端点最大长度是在你的端点描述符里面定义的,你当然知道

你一次想返回多少数据,是你两边事先约定好了的。或者通过输出端点发送数据告诉设备,这些协议都需要你自己来定制。
 楼主| kingyou 发表于 2009-3-7 18:45 | 显示全部楼层

现在明白了

谢谢斑竹了。。
Terry_lin 发表于 2009-5-22 17:43 | 显示全部楼层

设备描述符中就有你报告的最大封包数...

标准的请求命令当中&nbsp;有个2个字节&nbsp;是表示数据字节长度的..<br />通常情况下,你回复的封包长度,和它要求的一样..<br />在PC上,HOST&nbsp;问你要的数据长度,是根据你枚举时候,<br />报告的描述符决定的.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

33

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部