打印

USB 2.0 FullSpeed 的packet size是多少阿?

[复制链接]
11651|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
coreduo|  楼主 | 2011-7-18 10:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
64还是512阿?
沙发
香水城| | 2011-7-18 10:14 | 只看该作者
都行。

使用特权

评论回复
板凳
coreduo|  楼主 | 2011-7-18 11:40 | 只看该作者
stm32f107的max packet size应该是多少阿?
demo里是64

使用特权

评论回复
地板
香水城| | 2011-7-18 11:45 | 只看该作者
max packet size与芯片无关,是由USB的协议定义。

使用特权

评论回复
5
Hardsofter| | 2011-7-18 12:17 | 只看该作者
full speed 应该是64吧? high speed是512。确认一下再回来说。

使用特权

评论回复
6
coreduo|  楼主 | 2011-7-18 13:43 | 只看该作者
应该是64,那么就是说传输一个大包要好多次中断,这个比较烦人

使用特权

评论回复
7
香水城| | 2011-7-18 13:50 | 只看该作者
应该是64,那么就是说传输一个大包要好多次中断,这个比较烦人
coreduo 发表于 2011-7-18 13:43


你还不如说,馒头做得那么大,一口一口地吃真烦人,:lol

不是“应该是64”,应该说64也可以,还可以是其它长度,这要看是什么类型的传输!

使用特权

评论回复
8
aozima| | 2011-7-18 14:00 | 只看该作者
协议里面有拆包功能.
有些设备支持大包.但有的USB HUB只支持64字节.
因此通过HUB连接设备时会被拆包.

所以协议里面要考虑这个功能,不然可能直接接PC是可以用而用了HUB后不可以用.甚至有些不支持大包的HOST也不可以用.

使用特权

评论回复
9
coreduo|  楼主 | 2011-7-18 14:01 | 只看该作者
我晕了,文档里好像可以设置512.

使用特权

评论回复
10
香水城| | 2011-7-18 14:03 | 只看该作者
协议里面有拆包功能.
有些设备支持大包.但有的USB HUB只支持64字节.
因此通过HUB连接设备时会被拆包.

所以协议里面要考虑这个功能,不然可能直接接PC是可以用而用了HUB后不可以用.甚至有些不支持大包的HOST也不可以 ...
aozima 发表于 2011-7-18 14:00


HUB没有拆包功能,8楼在哪里看到有这个功能?

使用特权

评论回复
11
pananmao3760675| | 2011-7-18 14:05 | 只看该作者
:P

使用特权

评论回复
12
dqyubsh| | 2011-7-18 21:11 | 只看该作者
协议要求全速每包长度64字节,这是没错的。但上层软件可以一次读>64,中间由固件分成64个字节单位的小包。

这和fread函数一样,一次可以要求多于一个扇区的数据,至于下边怎么实现的,与fread无关。

使用特权

评论回复
13
tx27| | 2011-7-18 22:05 | 只看该作者
full speed 可选项有:8,16,32,64 Byte。
high speed 在full speed的基础上增加128,256,512 Byte这三个选项。

使用特权

评论回复
14
ttlasong| | 2011-7-19 06:30 | 只看该作者
:victory:

使用特权

评论回复
15
aozima| | 2011-7-19 07:48 | 只看该作者
HUB没有拆包功能,8楼在哪里看到有这个功能?
香水城 发表于 2011-7-18 14:03

具体情况不知道.原来见人做USB设备.想偷懒直接定义成大包,128还是512.也没有考虑拆包的情况.
结果接了HUB以后发现工作不正常了.跟综调试才发现,接了HUB以后,包都是最大64字节过来的.要自己拼包.

现在一看来基本上所有的设备都是支持64字节的(不排除比这更小的)
一包大小是由设备给出的.但HOST是否有限制就不清楚.
因此实际产品中慎用大包.
而且程序一定要有拆/拼包功能.以应对各种情况.

以上结论本人不做保证.有空了还得好好看文档去.

使用特权

评论回复
16
xsgy123| | 2011-7-19 09:24 | 只看该作者
都可以

使用特权

评论回复
17
coreduo|  楼主 | 2011-7-19 09:42 | 只看该作者
问题越讨论越清晰。最大包就是64字节。很清楚了

使用特权

评论回复
18
香水城| | 2011-7-19 11:04 | 只看该作者
问题越讨论越清晰。最大包就是64字节。很清楚了
coreduo 发表于 2011-7-19 09:42


清晰了? 呵呵,那是以讹传讹。

使用特权

评论回复
19
lsj115| | 2011-7-19 14:20 | 只看该作者
控制传输对于最大包长度有固定的要求。对于高速设备该值为 64Byte;对于低速设备该值为 8Bytes;全速设备可以是 8或 16或 32或 64Bytes。
中断传输对于高速/全速/低速端点,最大包长度分别可以达到1024/64/8 Bytes。
批量传输低速 USB 设备不支持,高速 USB 设备的最大包长度为 512Bytes,全速 USB 设备的最大包长度可以为 8、16、32、64Bytes。
同步传输只有高速和全速USB 设备,高速的最大包长度为 1024Bytes,全速的为 1023Bytes。

使用特权

评论回复
评分
参与人数 2威望 +5 收起 理由
aozima + 1 精品文章
香水城 + 4
20
香水城| | 2011-7-19 14:30 | 只看该作者
19楼正解!

我在7楼就说过了,谈最大包长度需要区别传输的类型。

使用特权

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

本版积分规则

32

主题

418

帖子

1

粉丝