用于实现USB示波器的最佳USB传输类型(批量,中断,同步传输)是什么?


20

我想建立一个USB示波器。我正在阅读有关不同的USB传输类型的信息。哪种传输类型最适合将收集的ADC样本从USB示波器传输到PC?

以下是我的一些发现。请纠正我,如果有人可以提出好的转帐类型,那也将是一件好事。

  1. 同步传输-可能会丢失数据。由于每个数据项都很有价值,因此对示波器不利。多少数据会丢失?
  2. 中断模式-我不知道它是否会淹没USB连接
  3. 批量模式-对我来说似乎最好,因为没有数据丢失
  4. 控制传输-不适合用于传输数据

2
据我了解,大多数带USB的示波器都使用批量模式来发送示波器的屏幕​​截图。
路人2015年

据推测,如果您采用等时模式,则可以保留一些额外的带宽用于纠错。
user253751

或出于严重的过度杀伤,PCIe DMA让我很高兴。
米奇

Answers:


28

批量传输不会丢失数据,但是它们没有保证的最小带宽。(另一方面,它们可以达到更高的速度,因为它们能够使用所有其他传输未实际使用的带宽。)

当示波器的数据传输延迟(由于错误或由于其他设备)并且堆积新数据时,会发生什么?您是在传输旧数据之前停止设备,还是丢弃旧数据以传输当前数据?

同步传输旨在用于“实时”数据。对于错误处理,您别无选择,但是带宽保留在总线上。

  • 如果要实时显示记录的数据,则应使用同步传输。
  • 如果要在测量完成后将记录的数据传输到PC ,则应使用批量传输。

10

这个问题几乎完全与您用作示波器无关,并且完全由您要求USB进行的通信类型决定。例如:

  • 示波器内部具有一个大缓冲区(兆字节),并且设计为首先运行简短测试,然后上传数据,将完全使用批量传输。它不需要保证的带宽,因此对批量传输进行错误检查的高容量将是最佳选择。
  • 设计为连续不断地连接到被测电路并且必须在“实时”(阅读:确定的运行时间)下运行的示波器会选择等时同步。批量不提供确定的运行时保证,并且您不能将管道设置为具有保留的带宽。您必须自己进行错误纠正,但至少可以确定性地进行纠正。
  • 带有“实时”供人查看的示波器以及在触发器上进行高速捕获的示波器可以设置两个端点,一个等时线以跟上实时供稿和已触发数据的批量传输。对于人类而言,丢掉一两帧并不是什么大问题,因此没有理由担心在同步时钟上缺少错误检查。但是,当涉及到实际数据时,需要批量传输以进行纠错。
  • 人们可能会将此电路用作实时系统的一部分。它不仅可能是示波器,而且可能是针对信号的保护措施,这些信号表明电路超出了工作范围,需要由计算机关闭。在这种情况下,您可以向系统添加一个中断端点,以获得有保证的等待时间(以及一些明确定义的错误处理),以确保在断电之前解决问题。

一旦知道要传输的数据类型以及数据需要达到的服务质量(QoS)术语,就可以决定要使用哪种USB传输机制。您将知道当不再需要“示波器”一词来描述所需的数据和QoS时,就可以做出这些决定了。这样您就可以客观地解决这些问题了。


4

对于示波器,传输带宽是您要最大化的参数。批量传输是专为高带宽而设计的,因此这是正确的选择。尽管同步和中断传输限制了延迟,但它们仅适用于中低带宽数据流。


3

只需使用批量传输即可。示波器实际上不是高数据速率设备。除非您打算进行数字荧光粉类型的设计,否则示波器实际上只是很小一部分波形的窗口。例如,假设您要显示1000个水平像素并以30Hz左右的频率刷新显示。如果每个样本都是8位(这是典型的),并且有两个通道,那么您查看的速度仅为60,000字节/秒。全速USB可以执行大约1,000,000字节/秒的速度,因此您使用的总线吞吐量不到6%。这为大量传输模式提供了充足的时间(正确的错误,可以处理其他总线流量),而且您不太可能会遇到无法为您分配足够带宽的实际总线配置这么多的数据。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.