首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >API时间分辨率限制USB带宽?

API时间分辨率限制USB带宽?
EN

Stack Overflow用户
提问于 2013-11-15 21:45:18
回答 1查看 76关注 0票数 0

我有一个设备,我可以控制我用USB发送数据的速度。我正在使用Qt进行PC端的数据处理。我经常根据计时器从设备上阅读。问题是计时器的分辨率仅为1ms。这难道不把我读取数据的速度限制在1ms吗?如果这个计时器速度这么慢,我该如何利用USB大带宽的能力呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-18 19:23:26

这里有几件事要注意。

首先,如果你需要超过15毫秒的分辨率,用户模式下的定时器分辨率是非常糟糕的。例如,在Windows中,如果您设置一个计时器或睡眠时间仅为1ms,则实际时间约为15-17 1ms。

无论如何,这将是缓慢的,但如果您下面有一个正在更快地获取数据的驱动程序,它可能不会出现问题。这是因为驱动程序在一个更快的级别上执行,可能有几个平头未读,只需为您保留一个足够的缓冲区即可读取。但是,这取决于您的应用程序尽可能快地获取数据,而且定时器可能太慢,当数据可用时,最好是向事件对象发出信号。

第二,使用WinUSB和libusb,现在有了更多的控制和用户模式需要发出读,驱动程序只是内核模式通过。在这种情况下,您应该创建一个线程,只需读取并将数据提供给应用程序中的本地缓冲区。类似于内核模式,您总是希望有一个未读的,只是等待数据进来。

然后,您可以有一个事件,该事件会被发出信号,通知应用程序的业务部分从该缓冲区获取数据。

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

https://stackoverflow.com/questions/20011144

复制
相关文章

相似问题

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