【发布时间】: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