首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过USB高速传输数据到主机

通过USB高速传输数据到主机
EN

Stack Overflow用户
提问于 2011-04-20 14:16:05
回答 3查看 3.4K关注 0票数 1

我正在通过USB连接与一个定制的实验室设备(小硬件设备)交谈。如何以最快的速度从实验室设备中获取数据?

主机是Windows机器,在Visual中使用libsub 32运行c-代码.小小的硬件设备收集数据,收集大量数据。主机可以请求这些数据,然后读取它。一切都很顺利。困扰我的是速度,粗略估计是1Mbit/s,这与480 Mbit/s USB2支持的距离很远。设备应该能够以至少这个速度发送给我数据。我几乎没有使用USB或libusb 32的经验,但我试着阅读它们。虽然我不知道在哪里和如何更改任何USB通信设置。在规范中,高速公共汽车上似乎有一种叫做微框架的东西。我该怎么用呢?

我不一定要使用libusb 32库。你还有其他建议吗?

关于当前实现的详细信息:如上所述,我使用libusb 32进行通信。所有初始化都是从下载中包含的一个小示例中复制的。

代码语言:javascript
复制
usb_init(); 
...
usb_open();
usb_set_configuration(...);
usb_claim_interface(...);

然后我说话(用usb_bulk_write(.)和usb_bulk_read(.)并说服它和我分享它的数据,确实如此。它给了我512个字节的数据块。每个这样的块都使用usb_bulk_read(.)读取。

编辑2011年4月27日:看起来我使用的是全速,但不是高速。我怎样才能获得高速?我在usb描述符文件中有参数错误吗?(是的,我正在使用USB2.0,该设备应该支持高速。)

编辑,2011年5月17日:,我现在已经使用winUSB (编写了.inf文件和c++程序)实现了通信。使用WinUSB的好处是它可以告诉我它是否试图使用高速。是的,但我仍然没有超过11+-2 Mbit/s。为什么?

根据USB2.0协议,计算机应该发送帧标记(每毫秒发送),我认为它是这样做的--因此是11 11Mbit/s。但在使用高速时,它说“高速使用125 is长(每毫秒8微帧)的‘微帧’。与1ms帧编号的对应在高速SOF数据包中保持,在连续的8帧中重复每个帧号。”我不太明白这一点,但不经常发送微型框架可能是问题所在?能请了解协议的人来指点我吗?我想了解这个东西是如何工作的--不管我是否能让它在我的电脑上工作。

编辑6月15日

问题解决了:计算机端的任何改动都不能使通信比它想要的更快(如果你不改变端点的数量,并且你真的有一个USB2.0连接)。这里的问题在于处理器代码,它以一种非常耗时的方式使用其内存区域。这使得这个问题成为一个非问题的问题。谢谢你的指点和信息。我学到了很多关于USB的东西!

EN

回答 3

Stack Overflow用户

发布于 2011-04-24 08:25:09

尝试使用微软的官方驱动程序WinUSB,我认为它会有帮助的。此外,您还可以找到有关如何使用扬·阿克尔森的网站的示例,特别是页面处理WinUSB。作为补充论点,甚至LibUSB也依赖于WinUSB。

我想问你你的实验室设备是什么类型的: HID,CDC等等?因为它也取决于你的后端设备。它是一个隐藏的(鼠标,键盘),你不能期望超级小便。

票数 1
EN

Stack Overflow用户

发布于 2011-05-01 22:33:28

真正的需要检查您的USB设备runs.To在哪种模式下这样做,打开设备管理器,然后通过连接导航:视图->设备。

现在,您必须折叠设备树到您的USB设备。它将支持“标准XYZ USB主机控制器”之一。

使用XYZ,你可以知道它是高速的还是全/低的:如果XYZ是“增强的 PCI to USB”,那么设备确实以高速480 MBit/s运行。但是如果上层主机控制器是"OpenHCD USB“或其他什么东西(可能是UHCI,我这里没有英特尔板),设备就会全速运行--最大速度为12 MBit/s。许多“USB2.0”微控制器只支持全速而不支持高速。

更新

在下列情况下,设备以全速运行:

  • 中间有一个USB1.1集线器,一个不会说高速的
  • 这个设备只能全速说话。
票数 1
EN

Stack Overflow用户

发布于 2011-04-21 07:39:33

如何计算数据传输速度?

  1. 数据传输速度计算可能不正确,或者
  2. 处理数据传输的线程数量较少,因此速度也较低。

我没有使用libusb- find 32库,也没有深入研究USB,但如果有,这些要点可能会帮助您找到真正的根本原因或问题。

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

https://stackoverflow.com/questions/5731772

复制
相关文章

相似问题

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