引言
在串行通信领域,UART只是对信号的时序进行了定义,而未定义接口的电气特性。没有规定不同器件连接时连接器的标准。RS232和RS485是两种常用的通信协议。它们广泛应用于工业自动化、仪器仪表和计算机通信等领域。本文将详细介绍这两种协议的基本概念、工作原理、优缺点以及应用场景。欢迎评论区讨论。
RS232协议
RS232协议是一种用于串行通信的标准协议,最初由电子工业联盟(EIA)在1970年发布。它定义了数据终端设备(DTE)和数据通信设备(DCE)之间的通信方式,常用于计算机与外围设备(如调制解调器、打印机)之间的连接。
该标准规定采用一个标准的连接器,标准中对连接器的每个引脚的作用加以规定,还对信号的电平加以规定。
引脚说明
现在工业控制的RS-232接口一般只使用RXD、TXD、GND三条线。该标准规定逻辑"1"
的电平为-5V
到-15V
,逻辑"0"
的电平为+5V
到+15V
,通过选用该电气标准的目的,在于提高抗干扰能力,增大通信距离,其传送距离一般可达15m。
引脚顺序 | 引脚名称 | 引脚作用 |
---|---|---|
1 | DCD | 数据载波检测 |
2 | RXD | 数据接收 |
3 | TXD | 数据发送 |
4 | DTR | 数据终端准备 |
5 | GND | 地 |
6 | DSR | 数据设备准备 |
7 | RTS | 请求发送 |
8 | CTS | 清除发送 |
9 | RI | 振铃指示 |
- 数据载波检测(DCD) - 输入作用:指示是否检测到来自DCE的载波信号。重要性:在调制解调器通信中用于表示远程调制解调器已连接。
- 接收数据(RxD) - 输入作用:DTE设备通过此线接收数据。重要性:这是主要的数据接收线,几乎所有RS232通信都会用到。
- 发送数据(TxD) - 输出作用:DTE设备通过此线发送数据。重要性:与RxD一样,这是主要的数4据传输线,是RS232通信的核心。
- 数据终端就绪(DTR) - 输出作用:表示DTE已准备好进行通信。重要性:用于向DCE表明DTE处于活动状态,常用于唤醒调制解调器。
- 信号地(GND)作用:提供电气参考点。重要性:所有信号都相对于此地电位测量,是正确通信的基础。
- 数据设备就绪(DSR) - 输入作用:表示DCE已准备好接受命令或数据。重要性:与DTR配对使用,用于握手过程。
- 请求发送(RTS) - 输出作用:DTE请求DCE准备接收数据。重要性:用于流控制,特别是在半双工通信中。
- 清除发送(CTS) - 输入作用:指示DCE已准备好接受数据。重要性:与RTS配对使用,用于硬件流控制。
- 振铃指示(RI) - 输入作用:指示DCE检测到振铃信号。重要性:主要用于调制解调器通信,表示有来电。
电平转换
在讨论RS232通信时,一个经常被忽视但至关重要的话题是电平转换。虽然许多现代处理器都集成了UART(通用异步收发器)控制器,但它们输出的通常是TTL(晶体管-晶体管逻辑)电平信号,而不是RS232标准所要求的电平。所以一般还需要在处理器外部去添加电路对信号的电平进行转换。
- TTL电平:
- 逻辑"0":0V到0.8V
- 逻辑"1":2.4V到5V(对于5V TTL)
- RS232电平:
- 逻辑"0":+5V到+15V
- 逻辑"1":-5V到-15V
注意:RS232的电平范围和极性:逻辑"1"对应负电压,而逻辑"0"对应正电压。这与TTL正好相反。
常用的电平转换方法
- 集成电路法:最常用的方法是使用专门的电平转换IC,如MAX232系列。(内置电荷泵,无需额外的电源、可靠性高)
- 分立元件法:使用晶体管或运算放大器构建转换电路。具体实现步骤不过多说明。
- 电压分压法(仅用于简单接收):使用分压电路将RS232信号转换为TTL电平。
RS485协议
RS485(也称为EIA-485)是由电子工业联盟(EIA)开发的串行通信标准。它是RS422的扩展版本,专为创建低成本、长距离、多点通信网络而设计。是一种广泛应用于工业和商业领域的串行通信标准。它以其优秀的抗干扰能力、长距离传输能力和多点通信支持而闻名。
该标准允许连接多个收发器,即具有多站能力,这样可以利用单一的RS485接口方便地建立起一个设备网络。(主从机制,一个主机管理多个从机)
根据RS485标准规范,在不使用中继器的情况下,一个RS485网段最多可以支持32个节点设备
工作原理
RS485使用平衡差分信号传输数据。这意味着信息是通过两条线(通常标记为A和B)之间的电压差来传递的。两线间的电压差为-2V
到-6V
表示逻辑0;两线间的电压差为+2V
到+6V
表示逻辑1。
- 逻辑"1"(或标记状态):A线电压低于B线
- 逻辑"0"(或空闲状态):A线电压高于B线
这种差分信号传输方式大大提高了抗干扰能力,因为外部噪声通常会同时影响两条线路,而接收器只关注两线间的电压差。RS485的通信距离可以达到1200m;RS485接口信号的电平比RS232降低了,所以不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便地与TTL电路连接。
简单点就是两条信号线交错在一起,RS485采用两线制,这种接线方式为总线式拓扑结构,在同一总线上可以同时存在多个节点。
因为采用两线制,数据的发送和接收都要使用这对差分信号线,发送和接收不能同时进行,所以只能采用半双工的方式工作,编程时也需要加以处理。为了防止信号反射和确保信号完整性,RS485总线的两端通常需要添加终端电阻(典型值为120Ω)。
电平转换
RS485使用差分信号传输数据,这与大多数微控制器使用的单端TTL/CMOS逻辑电平不同。因此,在RS485通信中,我们需要进行电平转换。将TTL信号转换成差分信号。如可以使用MAX485芯片
用于转换,和RS232的转换芯片类似,这里不过多说明。
RS232和RS485区别
- 通信方式不同:RS232是点对点通信,全双工(可同时发送和接收);RS485支持多点通信(最多32个标准负载设备),半双工(通常情况下)或全双工(使用四线时)。
- 信号类型:RS232单端信号,使用正负电压表示逻辑电平;RS485差分信号,使用两线间的电压差表示逻辑电平、
- 抗干扰能力:RS232抗干扰能力较弱,易受电磁干扰影响;RS485强抗干扰能力,差分信号有效抵消共模噪声。
- 网络拓扑:RS232仅支持点对点连接;RS485支持总线型网络拓扑。
- 电压电平不同
- 传输距离不同:RS232通常限制在15米以内;RS485可达1200米(取决于传输速率)