我正在用 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 位/秒)*(8 数据位/10 传输位)*(1 字节/8 位)=960 字节/秒。
我的程序在可能的 960 字节/秒 = 82.7% 中以 794 字节/秒的组合速率发送/接收。
我应该能够达到接近 100% 的 960 字节/秒吗?还是通常没有使用这么多带宽?