【问题标题】:USB polling as virtual serial COMUSB 轮询作为虚拟串行 COM
【发布时间】:2017-06-02 00:03:41
【问题描述】:

我正在努力解决这个问题,但无法找到答案。一点上下文(另外,我不知道这是否是完美的子)。我即将完成电子工程的本科学习。我们没有研究过多的通信,直到现在我才发现它的需要。我目前正在以 400 Hz 的速率感应和数字化 150 Hz 带宽的信号。我将 1 s 的采样值存储在带有内置串行 USB 适配器的微处理器中,因此我可以将其直接连接到我的 PC,并且目前使用 Matlab,以 10 s 的循环将 uP 的内容转储到我的计算机.所以1 s采样,倾倒; 1s采样、倾倒……共10次。

根据我收集到的信息,主机(我的计算机)中的 uP I/O UART+驱动程序和类似的东西允许将 USB 视为使用 rs 协议的串行端口。如果我用 C#、C++ 或类似的东西对其进行编码,该协议将允许使用中断。

但从 USB 协议的角度来看,主机通过以确定的速率轮询设备 IN 包来启动设备。

所以,我的问题是。将 USB 端口用作串行虚拟端口时,此虚拟端口是否仅限于 USB 协议,还是以某种方式被覆盖(从轮询的角度来看)?我猜是前者。

我也很好奇,是否所有主板都包含 USB 转串行接口,或者计算机是否通过软件处理?

我在写这篇文章的时候一直在阅读,我猜我所说的一些事情表明我缺乏理解,所以请保持温和。我知道我需要越来越多地阅读。

非常感谢。

【问题讨论】:

  • “如果我用 C#、C++ 或类似的东西编写它,这个协议将允许使用中断。” -- 如果你的程序在操作系统下执行,那么操作系统完全控制 I/O。您的程序只是在“读取”和“写入”时使用系统缓冲区传输数据。

标签: matlab serialization serial-port usb


【解决方案1】:

我不是 USB 知识的专家,但我会根据我对 VCP(虚拟 COM 端口)的实际使用来回答您的问题。

对于投票问题,是后者。一旦主机将设备识别为串行端口,该设备的工作方式几乎与内置串行端口(大多数现代计算机不存在)相同。唯一的区别似乎是一些参数设置,例如 VCP 的 LatencyTimer。

主机根据 USB 协议识别 VCP,并使用设备制造商驱动程序工作。如果我是正确的,它与计算机主板无关(通用 USB 支持除外)。

在我看来,您不必为 USB 担心太多。虽然串口是一种过时的硬件,但它得到了所有主要软件工具包的良好支持。

【讨论】:

    猜你喜欢
    • 2014-04-07
    • 1970-01-01
    • 2017-03-28
    • 2011-11-27
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 2021-04-15
    • 2015-07-05
    相关资源
    最近更新 更多