我想制作一个 USB 示波器。我正在阅读有关不同 USB 传输类型的信息。哪种传输类型最适合将收集的 ADC 样本从 USB 示波器传输到 PC?
以下是我的一些发现。请纠正我,如果有人能建议一个好的转移类型,那将是很好的。
- 同步传输 - 可能丢失数据。不适合示波器,因为每个数据项都很有价值。可能会丢失多少数据?
- 中断模式 - 我不知道它是否会淹没 USB 连接
- 批量模式 - 对我来说似乎是最好的,因为没有数据丢失
- 控制传输 - 不适合,因为它不适合传输数据
我想制作一个 USB 示波器。我正在阅读有关不同 USB 传输类型的信息。哪种传输类型最适合将收集的 ADC 样本从 USB 示波器传输到 PC?
以下是我的一些发现。请纠正我,如果有人能建议一个好的转移类型,那将是很好的。
批量传输不会丢失数据,但它们没有保证的最小带宽。(另一方面,它们可以达到更高的速度,因为它们能够使用任何其他传输实际未使用的所有带宽。)
当示波器的数据传输延迟(由于错误或其他设备)并且新数据堆积时会发生什么?您是在传输旧数据之前停止设备,还是丢弃旧数据以便能够传输当前数据?
同步传输是为“实时”数据设计的。您对错误处理别无选择,但您的带宽保留在总线上。
这个问题几乎完全独立于您作为示波器的用途,并且完全取决于您要求 USB 执行的通信类型。例如:
一旦您知道要传输的数据类型以及数据到达所需的服务质量 (QoS) 条款,您就可以决定使用哪种 USB 传输机制。当不再需要“示波器”一词来描述您需要的数据和 QoS 时,您就会知道您已准备好做出这些决定。然后你就知道用足够客观的话来开始解决这些问题了。
对于示波器,传输带宽是您想要最大化的参数。批量传输专为高带宽而设计,因此这是正确的选择。虽然同步和中断传输限制了延迟,但它们仅适用于中低带宽数据流。
只需使用批量传输。示波器实际上不是高数据速率设备。除非您打算进行数字荧光粉类型的设计,否则示波器实际上只是进入波形很小部分的窗口。例如,假设您要显示 1000 个水平像素并以 30Hz 左右的频率刷新显示。如果每个样本都是 8 位(这是典型的)并且有两个通道,那么您只能看到 60,000 字节/秒。全速 USB 可以处理大约 1,000,000 字节/秒,因此您使用的总线吞吐量不到 6%。这为批量传输模式提供了足够的时间来完成它的工作(纠正错误,解决其他总线流量),并且您不太可能遇到无法为您分配足够带宽的真实总线配置对于那么多数据。