UART,即通用异步收发传输器,作为异步串口通信协议的重要一员,在应用程序开发领域是使用频率颇高的数据总线。其工作原理是将传输数据的每个字符一位接一位地传输,采用异步形式的串行数据传输模式。
基于 UART 的串行数据传输具有独特的优势,它无需使用时钟信号来同步发送端和接收端,而是依赖发送设备和接收设备之间预定义的配置。这意味着在不同设备之间进行通信时,只要双方的串行通信配置(波特率、单位字的位数、奇偶校验、起始位数与结束位、流量控制)设置完全相同,就可以实现稳定的数据传输。为了指示通信的开始与结束,会在数据流中插入特定的比特序列。当发送一个字节数据时,会在比特流的开头加上起始位,末尾加上结束位,并且数据字节的位紧接在起始位之后。
UART 串口的显著特点是将数据一位一位地顺序传送,仅需 2 根传输线就可以实现双向通信,一根线用于发送数据,另一根线用于接收数据,这种简单的线路结构大大降低了硬件成本和布线复杂度。
UART 串口通信有几个至关重要的参数,对于两个使用 UART 串口通信的端口,这些参数必须匹配,否则通信将无法正常进行。
起始位:其电平逻辑为 “0”,用于表示数据传输的开始。当接收端检测到起始位时,就知道后续将开始接收数据。
数据位:可能的值有 5、6、7、8、9,代表传输的 bit 位数据数量。一般取值为 8,这是因为一个 ASCII 字符值为 8 位,这样可以方便地传输字符数据。
奇偶校验位:用于接收方对接收到的数据进行校验。它可以校验 “1” 的位数为偶数(偶校验)或奇数(奇校验),从而判断数据传送的正确性。在某些对数据准确性要求不高的场景中,也可以不使用此位。
停止位:电平逻辑为 “1”,表示一帧数据的结束。它的作用是让接收端知道当前这一帧数据已经传输完毕。
波特率:它代表串口通信时的速率,用单位时间内传输的二进制代码的有效位(bit)数来表示,单位为每秒比特数 bit/s(bps)。常见的波特率值有 4800、9600、14400、38400、115200 等,数值越大,数据传输速度越快。例如,波特率为 115200 表示每秒钟传输 115200 位数据。
在实际应用中,UART 通信广泛应用于各种嵌入式系统、工业控制、智能家居等领域,为不同设备之间的数据交互提供了可靠的解决方案。
