ST意法半导体
直播中

文甘翀

7年用户 881经验值
私信 关注
[问答]

如何设计UART以实现更远距离的稳健通信?

应如何设计 UART 接口,以便在两个 MCU 之间建立可靠的通信。下表显示在德州仪器的数据表中。您可以根据波特率查看错误率。

根据我的研究,低于 57600 位/秒的低波特率和 16x 过采样适用于较长距离的通信。
1) 错误率是否取决于制造商?
我无法从 ST 找到任何关于实现可靠 UART 的应用笔记。
2)对于应该使用哪些通信协议有什么建议吗?(类似于 UART 上的 TCP/IP)。







回帖(1)

张倩

2023-1-9 11:30:21
如前所述,您发布的表格是针对波特率错误的,而不是针对数据位错误的。


  • 距离?
  • 在板上还是板与板之间?
  • 环境嘈杂还是干净?(附近的无线电/雷达,在接地金属或屏蔽盒内?
  • 屏蔽或非屏蔽电缆
  • MCU 之间的共同点?
  • 协议
  • 更多的...

例子:


  • 我有一个定制的船载网络,这意味着不同的电源、来自无线电/雷达/机械的噪声和大量附近的数据通信,以及可能的隔离电源(MCU 之间没有公共接地)等等。
  • 出于各种原因开发了自定义协议,但基本要求是对所有数据包进行 CRC(CRC-16 用于我的 1000 字节以下的数据包),使用“DLE 填充”协议以允许可变长度数据包。
  • 使用带屏蔽电缆的 RS-485。RS-485 允许不同的接地返回路径,平衡信号允许接地差异(实际允许的差异取决于 RS-485 驱动器 IC 的共模 = CMRR)。屏蔽电缆可阻挡噪音
  • 当前数据速率为 115200bps。可能会增加,但我将其保持在尽可能低的水平,不超过系统需要。较低的数据速率可降低发出的噪声和功耗。
  • 对于隔离电源上的 CPU 连接,我使用隔离 IC(光学或其他适合实例的)

不太了解您的需求我会建议一个非常强大的解决方案,因为这似乎是一个问题:


  • 如果 >3m/10ft = RS-422 用于 MCU-MCU,或 RS485 用于 >2 个节点(如果在 1ft 以下的同一 PCB 上,则一切正常(SPI/I2C/TTL_UART...)。
  • 使用带有 CRC 的协议(选择可能取决于传输的数据量,以及需要多高效的协议)
  • 使用屏蔽电缆
  • 确保两个 MCU 有一个共同的接地(连接电源的接地,但要小心“接地环路”……研究这个术语)
举报

更多回帖

发帖
×
20
完善资料,
赚取积分