文章目录
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
UART存在的问题
电气接口不统一
在不同的设备或系统中,UART接口的电气特性可能不一致。主要原因是UART并没有严格规定其使用的电气标准,导致不同设备间在实际连接时可能不兼容。具体表现包括:
-
电压电平差异:UART的信号电平在不同设备上可能有所不同,例如:
- RS-232 标准的电压范围通常在 -12V 到 +12V 之间。
- TTL(Transistor-Transistor Logic) UART 通常使用 0V(低电平)和 3.3V 或 5V(高电平)。
- 一些嵌入式设备甚至可能使用 1.8V 的信号电平。
不同电压标准的设备直接连接可能导致通信失败,甚至损坏设备。
-
接地参考不一致:不同设备可能对电气接地参考的定义不同,特别是在长距离通信时,接地不匹配可能引发噪声或干扰。
-
连接器差异:UART没有规定统一的连接器类型,因此不同设备可能使用不同的引脚定义和接口形式(如DB9、DB25、IDC排线等),导致物理连接上也存在不兼容性。
RS2-32协议
RS-232协议 是一种标准的串行通信协议,全称为 “Recommended Standard 232”,用于定义在串行数据通信中如何传输数据。RS-232曾广泛用于计算机和外围设备(如调制解调器、打印机等)之间的通信,尤其是在上世纪80年代和90年代。在嵌入式系统中,RS-232仍然用于一些低速、短距离通信场合。
RS-232协议的主要特性
-
电气特性:
- 信号电压:RS-232使用高电压电平来表示逻辑状态。标准规定:
- 逻辑“1”(空闲状态,通常为负电平)电压在 -3V 到 -15V 之间。
- 逻辑“0”(有效状态,通常为正电平)电压在 +3V 到 +15V 之间。
- RS-232的电压范围较大,因此抗干扰性好,但与现代的低电压逻辑电路(如TTL电平)直接不兼容,需要转换电平。
**电平转换:**一般会在处理器外部添加电路对信号的电平进行转换。比如说MAX232芯片
- 信号电压:RS-232使用高电压电平来表示逻辑状态。标准规定:
-
信号方向和功能:
- 全双工通信:RS-232支持全双工通信,意味着发送和接收数据可以同时进行。
- 单端信号传输:信号通过一根线传输(带有公共接地),而不像RS-485等协议使用差分信号。
- 常见的信号线包括:
- TXD (Transmit Data):发送数据线。
- RXD (Receive Data):接收数据线。
- RTS (Request to Send):请求发送。
- CTS (Clear to Send):清除发送(握手信号)。
- DTR (Data Terminal Ready):数据终端就绪。
- DSR (Data Set Ready):数据设置就绪。
- GND (Ground):接地信号。
-
传输方式:
- 异步通信:RS-232采用异步通信方式,即无需额外的时钟信号来同步发送和接收端的传输,使用起始位、数据位和停止位来标记数据帧的开始和结束。
- 波特率:定义每秒传输的比特数。常见波特率有 9600, 19200, 38400, 115200 bps 等。
-
连接器类型:
- 最常见的连接器类型是 DB9 和 DB25。这些数字表示连接器上的引脚数量。
- 在标准的 DB9 引脚中,常用的引脚包括:
- 引脚2:RXD
- 引脚3:TXD
- 引脚5:GND
-
通信距离和速率:
- 通常,RS-232适合短距离(一般小于 15米)通信,因为电压信号会随距离增加而衰减。
- 传输速率一般在 20 kbps 以下。
-
帧结构:
- 起始位:1位,标记数据帧的开始,通常是低电平(逻辑0)。
- 数据位:5-9位,表示实际传输的数据。
- 校验位(可选):1位,用于检测错误。
- 停止位:1-2位,标记数据帧的结束,通常是高电平(逻辑1)。
现在用的比较多的就是常见的三根线 RX TX GND
RS-232的常见应用
- 计算机串行端口通信:早期的个人电脑通常带有RS-232接口,用于连接调制解调器、鼠标、打印机等外围设备。
- 嵌入式系统:在一些嵌入式系统和工业控制中,RS-232用于低速、短距离通信。
- 调试接口:RS-232作为一种简单且易于实现的通信协议,常用于嵌入式系统的调试和固件更新。
RS-232存在的问题
尽管 RS-232 在早期广泛用于串行通信,但随着技术进步,其也逐渐暴露出一些问题和局限性,尤其是在现代通信需求下。以下是 RS-232 存在的主要问题:
1. 传输距离有限
- RS-232的传输距离通常不超过 15米。随着距离增加,电压信号逐渐衰减,容易导致数据传输不稳定或丢失。
- 在长距离传输中,信号可能受到干扰或产生误码,因此它不适合用于远程通信场景。
2. 传输速率低
- RS-232的传输速率较低,通常在 20 kbps 以下,最大支持 115.2 kbps。与现代接口相比,如 USB、Ethernet 等,RS-232无法满足高带宽的应用需求。
- 对于需要高速数据传输的应用(如视频、音频数据),RS-232的带宽限制显得尤为明显。
3. 信号是单端传输,易受干扰
- RS-232采用 单端信号 传输,信号通过一根线传输,另一根线是接地参考。这种方式容易受噪声和电磁干扰的影响,尤其是在工业环境或长距离传输中。
- 相比之下,像 RS-485 使用差分信号传输方式,抗干扰能力更强,适用于长距离通信。
4. 接口不统一
- RS-232有多个连接器标准,例如 DB9、DB25 等,不同设备之间的引脚定义可能不同。因此在使用时,可能需要特殊的转接线或适配器,增加了连接复杂性。
- 此外,由于没有统一的电气接口标准,不同设备的电平电压(-12V到+12V)不一致,直接连接可能会导致通信失败甚至损坏设备。
5. 点对点通信
- RS-232仅支持 点对点 通信,意味着只能连接两台设备。这在多设备通信场景下显得局限,难以扩展。
- 现代通信需求通常涉及多个设备间的网络通信,而像 RS-485 等协议可以支持多点通信。
RS-485协议
RS-485协议 是一种常用于工业通信的串行通信标准,特别适合需要长距离、高速、可靠数据传输的场景。全称为 “Recommended Standard 485”,RS-485克服了RS-232的一些局限,尤其在多点通信、抗干扰和传输距离等方面有明显优势。
RS-485协议的主要特性
1. 差分信号传输
- RS-485 使用 差分信号传输,即通过两根信号线(标记为 A 和 B)传输数据,信号是两根线的电压差。
- 当A线的电压高于B线时表示逻辑“1”,反之则表示逻辑“0”。
- 这种差分传输方式比单端传输(如RS-232)抗干扰能力强,能够有效抵御电磁干扰(EMI),特别适合在噪声环境中使用。
2. 长距离通信
- RS-485 的通信距离远远超过RS-232,最大传输距离可达 1200米,这在工业控制、楼宇自动化、交通系统等需要远程通信的应用中非常重要。
- 即便在较远的距离上,信号的衰减和噪声影响也较小,保证了数据传输的稳定性。
3. 多点通信
- RS-485 支持多点通信,这意味着多达 32个发送器 和 32个接收器 可以连接在同一总线上。
- 这使得RS-485非常适合用于需要多个设备之间通信的场合,如工厂自动化设备、传感器网络、远程终端控制等。
4. 传输速率
- RS-485的传输速率和距离成反比。传输距离较短时,传输速率可以达到 10 Mbps;随着传输距离的增加,速率会下降。在1200米的距离上,传输速率大约为 100 kbps。
- 它比RS-232的传输速率要高得多,能够适应一些中速数据传输的场景。
5. 半双工和全双工通信
- RS-485 默认是 半双工 通信,即同一时刻只能发送或接收数据,无法同时进行。大多数应用场合下,RS-485是通过一对差分线实现的半双工通信。
- 但如果需要全双工通信,可以使用四线制配置(两对差分线),实现同时发送和接收数据。
6. 信号线
- 常用的信号线有 A 和 B,这两根线组成差分信号对,用于传输数据。
- 另外,还有一根 GND(接地线),用作信号参考。
RS-485的工作原理
1. 差分传输
RS-485通过两根线(A和B)传输差分信号。差分传输的特点在于抗干扰能力强,这是因为它依赖于两条信号线之间的电压差,而非绝对的电压值。由于两条线的信号是相反的,外界的电磁干扰往往同时作用于这两条线,从而被抵消,保证了通信的可靠性。RS485接口信号的电平比RS232降低了,不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便TTL电路连接。但是不一定符合RS485的电气标准,一般仍需要电路转换芯片,将TTL信号转换为差分信号
2. 总线拓扑
- RS-485支持多点通信,这意味着多个设备可以共享同一条通信总线。
- 每个设备可以是主动发送者(Master)或接收者(Slave),主设备和从设备之间可以建立灵活的通信关系。
- 设备通过监听总线上发送的数据,并根据地址或协议识别是否是发给自己的数据。
RS-485与RS-232的对比
特性 | RS-485 | RS-232 |
---|---|---|
信号传输方式 | 差分信号(抗干扰强) | 单端信号(易受干扰) |
最大通信距离 | 1200米 | 15米 |
最大传输速率 | 10 Mbps(短距离) | 115.2 kbps |
通信模式 | 多点(最多32个设备) | 点对点 |
抗干扰能力 | 很强,适用于工业噪声环境 | 较弱 |
全双工支持 | 支持全双工和半双工(视配置而定) | 全双工 |