为什么有些电脑通过 USB 串行连接时会丢失数据?

为什么有些电脑通过 USB 串行连接时会丢失数据?

我有一个嵌入式设备,它使用 USB 连接到 PC 并枚举为 USB 串行端口。该设备在大约 15 分钟的时间内输出大约 30 兆字节的数据。

我的电脑正在运行一个 Python 脚本,使用 Pyserial 读取这些数据并将其存储在内存中。它运行良好。

我已将该脚本交给了三位同事;其中一位也认为没有问题,但另外两位发现该脚本仅接收了大约 40% 的数据。

所有 PC 都运行 Windows XP SP2,并且硬件规格相似。在所有情况下,串行设备都直接连接到根集线器,而不是通过任何外部集线器或类似的东西。

我尝试连接超级终端并将其设置为将数据捕获到磁盘,在我的 PC 上,这再次运行良好,但在另外两台 PC 上,它仅收集了约 40% 的数据。

我们都运行相同的防病毒软件(并且没有理由相信它会在数据进入时尝试扫描它)。

我不知道为什么这些其他电脑上会丢失这么多数据。有什么建议可以解释一下是什么原因导致的吗?

编辑以添加硬件规格:

我的电脑(运行良好):Intel Core i7 CPU 920 @ 2.67 GHz 2.99 GB RAM

我同事的一台丢失数据的 PC:Intel Pentium D CPU 3.39 GHz 3.25 GB RAM

因此,他的处理器较旧,但表面上看,它的时钟频率更快,并且他的电脑有更多的 RAM!

答案1

硬件规格更新后:

较旧的处理器 = 较旧的主板。我猜是主板上的串行总线出了问题。要确定,请查看您是否可以在组织中找到另一台具有相同规格的 PC 并复制它。

它也可能是一些愚蠢的东西,如板载组件的设备驱动程序,或服务包/热修复。

答案2

您是否尝试过同事电脑上的多个 USB 端口?这有点不太可能,但可能是单个端口/控制器出现故障。

相关内容