打印

这样的数据通讯需求USB2.0是否能够满足?

[复制链接]
2547|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tubie|  楼主 | 2008-2-2 09:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个设备,底层在做数据采集,需要每隔15ms将先前采集到的12k字节的数据块传送给上位PC机。(以上15ms不要求精确,误差几个ms都没有问题。)请问用带USB2.0接口的ARM来做数据传输是否可以实现上述功能?(主要是考虑USB2.0和PC通讯是否能实现上述功能,有什么需要注意的问题),谢谢!
 

相关帖子

沙发
平常人| | 2008-2-2 10:03 | 只看该作者

USB2.0全速接口刚好,高速接口富裕

800KB/s——使用USB2.0全速接口正好满足需要。

使用特权

评论回复
板凳
tubie|  楼主 | 2008-2-2 10:08 | 只看该作者

请问你说的全速模式的英文是什么?

另外,对USB协议不懂,不知道在全速模式下这个东西传输是不是每次都需要建立连接?还是建立连接后就可以随时想传就传了?

全速模式的800kB/s是怎么计算出来的?谢谢!

使用特权

评论回复
地板
平常人| | 2008-2-2 10:12 | 只看该作者

Full speed

“需要每隔15ms将先前采集到的12k字节的数据块传送给上位PC机”
——每15ms传送12K,则每秒800K,这是你自己的数据率。

USB只须在接入时建立连接,以后会一直保持连接状态。

使用特权

评论回复
5
tubie|  楼主 | 2008-2-2 10:27 | 只看该作者

可能是我没有表达清楚

我的意思是您提到的“800KB/s——使用USB2.0全速接口正好满足需要”,是不是说根据协议USB2.0的全速模式的速度就是800kB/s?

使用特权

评论回复
6
平常人| | 2008-2-2 10:29 | 只看该作者

USB2.0规定了三种速度,但很多商家为了忽悠人都不提设备的

时钟频率为:
——高速 480Mbps   High speed
——全速 12Mbps    Full speed
——低速 1.5Mbps   Low speed

很多商家为了忽悠人,只说他的设备是USB2.0的,让人们误以为是高速设备,其实是全速设备;所以真正的高速设备都会说“USB2.0高速”,只说USB2.0的基本都是全速设备而已。

大家一定要小心,多个心眼!!

使用特权

评论回复
7
tubie|  楼主 | 2008-2-2 10:46 | 只看该作者

还是有问题,关于实际的传输速度

全速模式的12Mbps是瞬时的最大速度吧,在实际的应用中,考虑到数据包的头尾或者其他控制位的需要,留给有效用户数据的速度实际能有多少?

另外,12kB的数据能放在一帧(如果有这个概念的话)传到PC吗?每隔15ms的传输有额外的开销需求吗?例如是否需要建立连接等。

使用特权

评论回复
8
nj手术刀| | 2008-2-2 12:23 | 只看该作者

我认为实际条件下高速能勉强满足要求

记住WIN不是实时系统,不能保证每15ms内都给你发个多个IN令牌让你把数据全送上,全速的USB根本不能完成你的任务

使用特权

评论回复
9
drentsi| | 2008-2-2 12:34 | 只看该作者

我实验的USB全速可以达到1.1MB/S

理论上每毫秒可传输19个64字节的包.
极限是1216KB/S

使用特权

评论回复
10
tubie|  楼主 | 2008-2-2 20:58 | 只看该作者

为什么数据包只能是64字节而不能再大一些呢?

使用特权

评论回复
11
平常人| | 2008-2-2 21:28 | 只看该作者

10楼的问题显然是因为没有看USB协议

估计8楼没有真正在Windows系统下做过USB传输设备,通常一个全速的U盘可以轻易达到1MB/s的速率。

9楼的“极限是1216KB/S”只是一个理论值,实际应用中不可能达到,但你的1.1MB/s是一个可以相信的数值。

使用特权

评论回复
12
tubie|  楼主 | 2008-2-2 22:00 | 只看该作者

看来我还是需要好好读读USB协议。

使用特权

评论回复
13
nj手术刀| | 2008-2-3 11:48 | 只看该作者

不同意11楼看法,数据采集关注实时性

必须在确定时间段内把数据传出,U盘能传,可是不关心传的实时,比如有100ms没传任何数据,另100ms传100KB数据,平均50KB,但数据采集如果没大的FIFO,没法用的

使用特权

评论回复
14
nj手术刀| | 2008-2-3 12:17 | 只看该作者

再与11楼说

如果一个USB采集器说能达到1MSPS,假如我是客户,我认为这指标在任何条件下都保证,现在我让它在WIN下工作,并且同时启动一个程序,比如MATLAB,显然WIN将不能保证USB带宽利用,采集数据不连贯,所以我在客户角度上说,你的产品吹牛了,所以我说WIN没法用(指保证)USB全速方式做到15ms  12KB

使用特权

评论回复
15
平常人| | 2008-2-4 14:11 | 只看该作者

同意nj手术刀的观点,但如果引入实时性的概念,USB本身就不

当然如果设备端可以有足够大的缓存空间,则使用USB高速可以解决问题;否则没有办法。

USB高速解决不了缓冲的问题,但可以在短时间内清除缓存。

缓存的大小取决于USB设备最长不能得到相应的时间;例如,USB设备最长不能得到相应的时间为5秒,则缓存的大小至少为:
  (5秒 x 800KB = 4000KB)+ 传输这个4000KB所采集的数据量 ≈ 4.4MB

使用特权

评论回复
16
mr.king| | 2008-2-4 21:35 | 只看该作者

看相关论坛发言

http://www.daxia.com/bibis/moredata.asp?syid=1250684

使用特权

评论回复
17
nj手术刀| | 2008-2-5 11:19 | 只看该作者

非常反对11楼说的"估计8楼没..

有真正在Windows系统下做过USB传输设备,通常一个全速的U盘可以轻易达到1MB/s的速率"大虾网那个关于USB的贴就是我的,我有USB2.0高速/全速传送的第一手测试数据,可以说本来全速是能传楼主数据的,但楼主要求每15ms都保证传他没说传多少时间,WIN下是没发给他提供保证,所以我说要高速模式,全速不行,当然我可以短时间演示出全速传的效果15ms/12KB,但如果是产品,我不能说我保证800KB/S

使用特权

评论回复
18
平常人| | 2008-2-5 12:01 | 只看该作者

看样子我估计错了

但你也不必有这么大的反应嘛,估计总是有对有错的,呵呵。。。。。

我在15楼说得很清楚了,如果你要强调实时性,USB本身就不适合!

使用特权

评论回复
19
tubie|  楼主 | 2008-2-5 23:09 | 只看该作者

我可能没有讲清除需求

实际不需要太大的实时性,传输时间没有太严格的限定,不用非要准确地在每个15ms传出数据,可以在(例如)第20ms、第42ms分别传输两次(时间的准确性要求不搞),可以有大概100ms的数据缓存,但不能太大了。

目前正在读协议,还没有看到为什么要64字节一个块来传输,希望能找到更大的块,呵呵。

使用特权

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

本版积分规则

135

主题

428

帖子

0

粉丝