嵌入式常见通信协议——RS232,RS485

RS232

RS232是一种硬件电气标准 ,搭配的通信协议是UART异步串行协议

单片机 UART 串口依靠 IO 口输出高低电平进行数据收发,若单片机工作电压为 5V,IO 口高电平为 5V、低电平为 0V。短距离(1 米内)传输时,导线损耗小,电平完整、通信稳定;但长距离传输时,导线存在寄生电阻、寄生电容,加上外界电磁干扰,会造成:

  1. 线路分压导致电压衰减,发送端 5V 高电平传到接收端电压大幅下降;
  2. 信号畸变、噪声干扰叠加,使接收端无法正确识别高低电平;

最终引发采样错误、数据乱码、通信失败。

想要解决长距离电平衰减与干扰问题,单纯依靠单片机TTL 电平(原生 IO 口直接输出的普通高低电平)无法实现。而RS232 电气标准可以完美解决该问题:它通过电平转换芯片,把单片机微弱的 0~5V 单端电平,转换成 ±12V 左右的高压差分负逻辑电平 。大幅拉高通信电压幅值,抵消线路电阻带来的压降损耗;同时高压制式 + 抗干扰设计,有效抑制工业环境电磁噪声,保证信号经过长距离传输后,电平依旧稳定可被正确识别,从而实现远距离可靠通信。

在这里,-3V 到-15V表示逻辑1,+3V到+15V表示逻辑0。

RS-232 是一种采用 ±3V~±15V 负逻辑电平的电气接口标准,它承载 UART 异步串行协议,可实现最长约 15 米的可靠数据传输。

RS485

RS485 是一种差分电气标准 ,同样承载 UART 异步串行协议,但在抗干扰、距离、组网能力上全面升级。

在这里,A和B两线的电压进行比较:A>B(压差 ≥ 200mV)表示逻辑1,A<B(压差 ≥ 200mV)表示逻辑0。

注意:

  1. 该差分信号在双绞线中传输(最长可达 1000 米),抗干扰能力强;
  2. RS485 主流为半双工通信,同一时间只能单向传输,需控制收发方向。
  3. 一条总线上可挂载多个设备。

设备 A 输出 5V 高电平 → 变成差分信号 → 设备 B 还原成 5V 高电平的完整过程:



RS485 是一种采用差分电平标准的电气接口标准,它承载 UART 异步串行协议,在低速波特率下可实现最长约 1200 米的可靠数据传输,并支持多设备总线组网。

RS232与RS485比较

核心比较:

从电气与信号特性比较:

从通信与组网特性比较:

总结:

RS232:短距离、一对一、全双工、抗干扰弱

RS485:长距离、多设备、半双工、抗干扰强

相关推荐
山木嵌入式8 天前
STM32串口不定长数据接收:超时解析法+DMA+空闲中断法(附完整代码)
stm32·单片机·串口·uart
Strugglingler11 天前
【Linux 用户态操作 UART】
linux·uart
Strugglingler12 天前
【Linux PL011驱动支持RS485】
linux·uart·rs485·pl011
山木嵌入式13 天前
同步通信与异步通信(UART/USART):定义、原理、场景全解析
串口·嵌入式·uart·通信
山木嵌入式17 天前
STM32 UART串口通信协议与3种底层驱动实现(寄存器/标准库/HAL库)
stm32·单片机·串口·uart
W.W.H.1 个月前
嵌入式系统硬件接口全景图
经验分享·uart·iic·gpio·spi
小懒懒️1 个月前
嵌入式常见通信协议学习——UART
stm32·uart·通信协议
嵌入式×边缘AI:打怪升级日志1 个月前
Linux 串口应用编程完全学习笔记(从 API 到 GPS 实战)
串口通信·uart·gps
冷凝雨1 个月前
复旦微FM33 MCU 底层开发指南——UART
stm32·单片机·串口·uart·fm33lc0·复旦微电子