UART 是一种点对点 (P2P) 硬件通信协议,其中一端可以是 MCU(微控制器),另一端可以是另一个 MCU、传感器或 PC(通过 USB 转 UART 转换器)。
所有 Nordic 开发板都集成了 USB 转 UART 转换器,以便与 PC 进行串行通信。
数据传输以串行方式进行。它以起始位开始,通常通过将逻辑电平拉低一个时钟周期来实现。在接下来的 n 个时钟周期内,n 位数据从发送端按顺序发送(n 通常为 8)。可选地,可以添加 1 个奇偶校验位以提高传输可靠性。最后,数据线通常被拉高以表示传输结束。
奇偶校验位: 奇偶校验位描述了数据的奇偶性,是接收方判断数据在传输过程中是否发生变化的一种方式。
UART 有一个用于发送数据的连接引脚(通常称为 TX)和另一个用于接收数据的引脚(称为 RX)。这些连接在发送器和接收器之间交叉耦合。因此,一台设备上的 TX 连接到远程设备上的 RX,反之亦然。GND 代表地线。

RX 引脚感应起始位何时启动,并自动同步时钟以存储新字。接收器和发送器运行的数据速率必须预先选择;这被称为波特率。UART 常用的波特率值为 115200 或 9600 bits/s,或称波特。
UART 硬件流控制是一种技术,使具有不同处理速度的设备能够通过 UART 连接可靠地通信,而不会丢失数据。
例如,当设备 A 向设备 B 发送连续的字节流,而设备 B 的运行速度慢于设备 A 时。在这种情况下,设备 B 可以向设备 A 发出信号以暂时暂停传输,从而为自己争取处理已接收数据的时间并释放接收缓冲区。流控制通过提供额外的信号来指示设备 A 根据需要暂停或恢复数据传输,从而使这成为可能。这些额外的信号被称为 RTS(请求发送)和 CTS(清除发送)。

这些信号在两个设备之间互连,其中一个设备上的 RTS 连接到另一个设备上的 CTS,反之亦然。每个设备写入其 RTS 以指示已准备好接收新数据,同时读取 CTS 以确定是否可以向对方设备发送数据。只要设备准备好接受额外数据,它就会保持 RTS 线路处于有效状态,并在其接收缓冲区达到容量之前不久将 RTS 置为无效。硬件流控制在两个方向上运行,这意味着每个设备(设备 A 或设备 B)都可以发出暂停传输的信号。
Nordic SoC 上的 UART 外设支持自动硬件流控制,这在每个 SoC 的数据手册(产品规范)中有详细说明。请参阅外设 -> UART -> 发送与接收章节。