以高波特率传输时丢失串行数据

时间:2011-01-03 11:51:59

标签: .net-3.5 serial-port data-loss baud-rate

我已阅读有关串口通信的问题。但我们遇到串口通信问题。

我看到的一个问题是:在高波特率下,我们在接收器端丢失了一些数据。你能告诉我为什么会这样吗?我该如何解决呢?

我们有一个设备以115200波特率发送数据,接收器设置为相同的波特率,但有时传输时会丢失一些字节的数据。

2 个答案:

答案 0 :(得分:1)

如果你只需要每秒传输大约300个字节,那么115,200是一个非常高的波特率。您可以通过降低速率来获得更稳定的连接。如果您能够自己设置连接的两侧,那么当然值得尝试。

另外,你的电缆有多长?你自己做过吗?有很多东西可以导致数据丢失,而电缆通常会起到很大作用。

最后,您可能希望假设数据最终会丢失并将其考虑在内。只需300字节,您就可以发送超过您需要的数据,即您可能会重新传输任何可能已损坏或丢失的数据而不会受到太大损失。显然,这取决于您是否控制协议或可以在设备上配置不同的速度。

答案 1 :(得分:0)

可能是您正在溢出接收器的接收缓冲区。没有任何更多的实施细节,很难说。

您的发送器通常发送多少字节?

您的发射器/接收器设备是否支持流量控制?可能你必须使用它。

这将有效地使您的接收器能够向您的发射器发送消息“等待,暂停发送一段时间,让我先处理我的内容。”

通过 RTS (请求发送)和 CTS (清除发送)引脚(通常)使用硬件流量控制。

查看this文章,该文章对此进行了更多解释。