0

我目前通过蓝牙连接器发送 128 包 64 字节。

这来自嵌入式系统,并交付给 C# GUI,该 GUI 以图形方式显示数据。我正在嵌入式系统上编写代码。我没有在 GUI 上编写代码;但我很确定它为 UART 的东西和图形的东西使用了多个线程。每个样本的长度为 64 个字节。

我们现在要将 USB 添加到可用数据路径的选项中。(目前我们有蓝牙和 UART)。

我可以复制该方案并发送同一组 128 个 64 字节的 blob。

我还可以重新排列数据(我认为)并一次发送一个 8,192 字节的 blob。

无论哪种方式都需要我做大量的工作。

问题:单个更大的 blob 是否会提高吞吐量?还是我应该坚持使用一大堆较小的斑点,让所有线程都有时间完成他们的家务活?

4

1 回答 1

1

使用奈奎斯特采样定理解决了这个问题。

奈奎斯特采样定理

基本上,如果您的屏幕每秒仅更新 60 次,并且您的系统能够在 60 秒内接收到足够的数据以正确地实时更新图形 - 那么获得更高的吞吐量并不能真正为您带来任何好处。您只需在绘制的曲线上获得更精细的粒度。如果您当前获得的结果足够准确,那么追求更高的吞吐量只是额外的工作。

如果您需要极其准确地分析线路,则更高的吞吐量将有助于获取所有这些额外的数据点。这基本上是图形分辨率、屏幕刷新速度以及数据从芯片发送到计算机的速率之间的一个折衷问题。

作为一个好的经验法则,任何超过 200 个数据点的数据点对于大多数直接信号的视觉效果来说都是过度的,这些信号在整个地方都没有疯狂的高频尖峰。根据对数据的处理方式,它可能会也可能不会过分杀伤力。这实际上取决于您正在分析的信号。如果它具有极高的频率,则需要更频繁地采样以捕获数据点中的信号。

于 2013-03-26T15:44:05.713 回答