【发布时间】:2013-12-07 04:49:39
【问题描述】:
我正在用 Python 开发一个应用程序,它通过 RS-485 两线半双工与设备通信。 我有足够的应用程序工作,可以执行一些性能测试。 我正在使用带有 USB 到 485 转换器的笔记本电脑。通讯设置为 9600,N,8,1。
对于我的速度测试,我发送了一条包含校验字节在内的总长度为 10 个字节的消息。然后我等待 13 个字节的回复。我在回复进来时对其进行解码。当回复完成时。然后我发送下一条消息。我尽可能快地重复这 100 次。这需要 2.895 秒。
据此计算,我正在发送/接收 23 字节 * 100 次迭代 / 2.895 秒 = 794 字节/秒。
如果我理解正确的话,9600 N-8-1 的串口通信有 1 个起始位、8 个数据位和 1 个停止位。这意味着它有 2 位开销。所以实际的理论传输速率为(9600 bits/s)*(8 data bits/10 transmission bits)*(1 Byte / 8 bits)=960 bytes/s。
我的程序在可能的 960 字节/秒 = 82.7% 中以 794 字节/秒的组合速率发送/接收。
我应该能够达到接近 100% 的 960 字节/秒吗?还是通常没有使用这么多带宽?
【问题讨论】:
标签: python performance serial-port baud-rate