首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >USB性能问题

问USB性能问题
EN

Stack Overflow用户
提问于 2014-07-24 00:09:43
回答 1查看 203关注 0票数 0

我正在尝试通过USB传输数据。这些是最多64字节的数据包,以4 4KHz的频率发送。这给出了大约2Mb/s的比特率。

获取此数据的软件任务以2.5 KHz的速度运行。

理想情况下,我们永远不希望数据包以低于2.5 KHz的速度到达那里(因此2 KHz不是很好)。

有没有人意识到USB可以实现的任何通用限制?

我们在一个主板上运行,主板上有一个运行QNX的1.33GHz和一个子板,子板是一个运行MQX的TWR K60F120M塔系统。

除了系统的细节之外,USB是否应该用于这种数据传输,即高频和短数据包大小?

非常感谢你的帮助,MG

EN

回答 1

Stack Overflow用户

发布于 2015-05-16 22:43:48

如果您使用正确的传输模式,即使在最慢的规格(1.1)下,USB也能以高达12MB/秒的速度传输数据。USB每秒将处理1000个“帧”。帧包含控制和数据信息,并且每个帧的各个部分用于各种目的,因此总的信息内容在这些相互竞争的需求中被“多路复用”。

低速设备将仅使用帧中的几个字节来发送或接收数据。例如调制解调器、鼠标、键盘等。所谓的全速设备(在USB1.1中)可以通过使用等时模式传输实现高达12MB/秒的传输,这意味着它们可以在每一帧中划分出很大的一块,并且可以在每次出现帧时发送那么多数据(固定大小)。例如,这是音频设备用于将相对数据密集型音乐流式传输到USB扬声器的模式。

如果您能够执行一点本地缓冲,则可以使用等时模式以1 KHz的速度发送64字节的数据,但在USB帧传输中需要2或3个周期(2.5 KHz)的数据。您可能希望保留64x3= 192字节的数据(外加一些额外的字节用于控制信息,比如存在多少块:2个还是3个?)。然后,随着USB帧的到来,您将2个或3个数据块放到线路上,然后接收端将获得该数据,尽管以一种比以精确的2.5 the速率平滑地更快的方式。然而,即使使用USB1.1,这种传输数据的方式也远远跟不上,并且仍然只使用总可用USB带宽的一小部分。

在我看来,问题在于您的系统设计是否能够容忍“突发”的数据传输速率……换句话说,不是以2.5 KHz的速率获取64个字节,而是以1 KHz的速率获取(平均) 160个字节。你实际上会得到类似这样的东西:

​

所以,我认为使用USB将是你能做的最好的事情--以每1 mSec USB帧的速率发送2到3个你的设备的数据包。

我不是USB专家,但我做过一些工作,包括调试一个使用USB“中断”的设备到主机隧道协议,所以我在其他系统上见过这种实现,以解决USB帧速率与设备数据速率匹配的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24915612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档