打印

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

[复制链接]
2288|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kingyou|  楼主 | 2009-3-7 09:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在采用D12做Device端,遇到个问题,驱动每次读写D12的时候,D12怎么知道本次读写数据的字节数呢?
尤其是主机读D12的时候,Device怎么知道本次应该发送多少字节的数据给主机呢?
是否需要自己定义个包,再读数据之前先发送这个包给D12,让D12知道本次需要传送的字节数?
谢谢大侠解答。。。。
万分感谢啊。。。
 

相关帖子

沙发
computer00| | 2009-3-7 09:20 | 只看该作者

re

 computer00 发表于 2009-3-7 09:18 驱动开发|WIN编程 ←返回版面    

2楼: D12需要返回多少就要返回多少... 

大于最大包长时,每次发都按最大包长发,剩余的单独发;
不够最大包长时直接发。

主机则要求至少能够接收一个最大包长的数据包。 
 

使用特权

评论回复
板凳
kingyou|  楼主 | 2009-3-7 09:33 | 只看该作者

谢谢斑竹先

先谢谢斑竹。。。

但是我这么知道大于最大包长或者不大于呢?比如这些主要需要50字节,下次又需要200字节,我这么能从主机发给我的包中知道这个50字节和200字节呢?

另外,对于你说的“主机则要求至少能够接收一个最大包长的数据包”不是很理解呢,麻烦你能不能说得详细点呢?

谢谢。。。

使用特权

评论回复
地板
computer00| | 2009-3-7 13:12 | 只看该作者

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

你一次想返回多少数据,是你两边事先约定好了的。或者通过输出端点发送数据告诉设备,这些协议都需要你自己来定制。

使用特权

评论回复
5
kingyou|  楼主 | 2009-3-7 18:45 | 只看该作者

现在明白了

谢谢斑竹了。。

使用特权

评论回复
6
Terry_lin| | 2009-5-22 17:43 | 只看该作者

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

标准的请求命令当中 有个2个字节 是表示数据字节长度的..
通常情况下,你回复的封包长度,和它要求的一样..
在PC上,HOST 问你要的数据长度,是根据你枚举时候,
报告的描述符决定的.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

33

帖子

0

粉丝