UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)是一个广泛使用的串行通信协议,通常用于计算机与外设之间的通信。是一种通用的串行、异步通信总线,该总线有两条数据线,可以实现全双工的发送和接收。UART是一种串行通信协议,它将数据字节逐位传输。UART传输时不需要时钟信号,而是使用起始位和停止位来标识数据帧的开始和结束,因此称为“异步”通信。
通信基础—并行和串行
并行通信
比如说发送0x55 数据,转为二进制为 01010101 ,并行八根数据线,可以一次性传输过去。
串行通信
与并行不同,串行只有一根数据线, 需要依次传输八位数据。
并行通信和串行通信是两种不同的数据传输方式,各自具有独特的优缺点。以下是它们的详细对比:
并行通信优缺点
特点:
并行通信同时传输多位数据,每一位数据使用独立的传输线。常见的并行接口包括PCI、ATA(并行ATA)、并行打印机接口(LPT)。
优点:
- 高速传输:由于可以同时传输多位数据,并行通信理论上可以比串行通信更快。
- 低延迟:由于多位数据同时传输,因此延迟较低,适合需要快速响应的应用场景。
缺点:
- 信号干扰:当数据线较多时,线与线之间的电磁干扰(串扰)可能会导致信号质量下降,特别是在高频下更为显著。
- 成本高:需要多条数据线,同时每条线需要精确匹配长度,以防止信号不同步,因此布线复杂,成本较高。
- 距离受限:由于多条线必须保持同步,信号在传输较长距离时容易失真,所以并行通信通常只能用于短距离应用。
串行通信优缺点
特点:
串行通信按顺序逐位传输数据,通常只需要一对传输线(单工时一条)。
优点:
- 布线简单:只需要一对传输线,布线复杂度低,设计和制造成本较低。
- 抗干扰能力强:因为只有一对信号线,线间串扰少,适合长距离传输。差分信号的串行通信(如RS-485、CAN)更具抗干扰能力。
- 数据同步性好:串行通信常伴随时钟信号(如SPI、I2C)或自带同步机制,确保数据的完整传输。
缺点:
- 传输速率相对较低:由于数据逐位传输,单纯比特率通常低于并行通信。但现代高速串行通信(如USB 3.0、PCIe、SATA)通过更高的时钟频率和编码技术提升了速度。
- 较高延迟:由于逐位传输,相对于并行通信,可能会引入较高的延迟,尤其是在处理大数据量时。
通信基础—单工和全工
单工通信
通信双方,区分发送器和接收器,只能由发送器到接收器 ,单向传递,比如收音机例子,只能接收
双工通信
半双工:
半双工通信允许数据在两个方向上传输,但在同一时间内只能在一个方向上传输。换句话说,通信双方可以轮流发送和接收数据,但不能同时进行。比如说对讲机,同时只能一个人传输数据。
全双工:
全双工通信允许数据在两个方向上同时传输。发送和接收可以同时进行,双方可以在不干扰对方的情况下同时发送和接收数据。比如手机,可以双向通讯
通信基础—波特率
波特率(Baud Rate)是通信系统中的一个关键参数,表示每秒传输的符号数或调制信号的变化次数。它通常用于描述串行通信中的数据传输速率。
在串行通信中,如UART、RS-232、SPI等,波特率的单位是bps,全称是bit per second,意为每秒钟传输的bit数量。波特率决定了数据传输的速度。例如,波特率为9600的UART通信表示每秒可以传输9600个比特。
串行通信中常用的波特率有以下几种:
- 9600
- 19200
- 38400
- 57600
- 115200
- 230400
- 460800
UART帧格式
- 起始位:发送1位逻辑0(低电平),开始传输数据。
- 数据位:可以是5~8位的数据,先发低位,再发高位,一般常见的就是8位(1个字节),其他的如7位的ASCII码。
- 校验位:奇偶校验,将数据位加上校验位,1的位数为偶数(偶校验),1的位数为奇数(奇校验)。
- 停止位:停止位是数据传输结束的标志,可以是1/1.5/2位的逻辑1(高电平)。
- 空闲位:空闲时数据线为高电平状态,代表无数据传输。
如果传输数据0X33(00110011),那么对应的波形就是如下这样,因为是LSB在前,所以8位数据依次是11001100