三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

BMS系统专栏:彻底搞懂!UART、RS232、RS485 三者区别

BMS系统专栏:彻底搞懂!UART、RS232、RS485 三者区别

🎬渡水无言:个人主页渡水无言

❄专栏传送门:《linux专栏》《嵌入式linux驱动开发》《linux系统移植专栏》

❄专栏传送门:《freertos专栏》 《STM32 HAL库专栏》《linux裸机开发专栏》

❄专栏传送门:《产品测评专栏》 《Ai智能体专栏) 《ROS开发专栏》
⭐️流水不争先,争的是滔滔不绝

📚博主简介:第二十届中国研究生电子设计竞赛全国二等奖 |国家奖学金 | 省级三好学生

| 省级优秀毕业生获得者 | csdn新星杯TOP18 | 半导纵横专栏博主 | 211在读研究生

在这里主要分享自己学习的linux嵌入式领域知识;有分享错误或者不足的地方欢迎大佬指导,也欢迎各位大佬互相三连

​

目录

前言

一、UART-TTL 串口通信核心基础知识

1.1 物理层连接规则

1.2 数据帧格式

1.3 波特率

1.4、优缺点

二、RS232通信

1.1 物理层连接规则

1.2、数据帧格式

1.3、优缺点

三、RS485 通信

3.1、RS485通信连接方式

3.2、RS485数据帧格式

四、三者横向对比汇总表

总结


前言

在嵌入式开发中,UART (TTL 串口)、RS232、RS485 都共用同一套UART 异步串口帧协议(起始位 + 数据位 + 停止位),三者软件协议一模一样,只有底层电气电平、传输架构不同,这也是初学者最容易混淆的点。本文分层拆解三种通信原理,横向对比优缺点。


一、UART-TTL 串口通信核心基础知识

1.1 物理层连接规则

串口(UART/USART)通信是单片机与外设、电脑通信最常用的方式,UART 只定义时序协议,不规定电气电平标准,单片机默认 TTL 电平:

逻辑 1:高电平(3.3V/5V)。
逻辑 0:低电平(0V)。

核心是通过两根线(Tx/Rx)实现异步数据传输:

Tx(Transmit):发送引脚,负责向外输出数据;
Rx(Receive):接收引脚,负责接收外部数据;
仅点对点:设备 A 的 Tx ↔ 设备 B 的 Rx,设备 A 的 Rx ↔ 设备 B 的 Tx(必须交叉,否则数据收不到)。无法挂载多个从设备。

具体连线如下图所示:

1.2 数据帧格式

串口传输的数据不是裸数据,而是按固定格式打包的 "帧",如下图所示:

常用的四种数据帧格式(打绿勾的更常用):

起始位:1 位低电平,标记数据开始;
数据位:8/9 位(8 位最常用),实际要传输的有效数据;
校验位(可选):奇校验 / 偶校验 / 无校验,用于验证数据传输是否出错;

奇校验:整个帧中 "1" 的个数必须是奇数(不足则校验位补 1);
偶校验:整个帧中 "1" 的个数必须是偶数;
示例:传输10101010(4 个 1),奇校验会自动补 1,使总 1 的个数为 5(奇数);若传输中数据变为10111010(5 个 1),校验位仍为 1,总个数 6(偶数),校验失败,判定数据出错。

1.3 波特率

波特率越高,数据的传输速度越快

波特率 = 每秒传输的二进制位数 如下图所示:

1.4、优缺点

优点:电路最简单,单片机外设自带控制器,编程最简;
缺点:
单端信号传输,抗干扰极差,容易受电机、电源电磁干扰;
传输距离极短,仅限同 PCB 板内、几米以内短距离;
无统一硬件接口标准,设备对接兼容性差;
只能点对点,不支持一主多从组网。

适用场景
芯片间板内通信、单片机与蓝牙 / WIFI 模块短距离通信、调试打印。

二、RS232通信

1.1 物理层连接规则

连线方式:点对点接线,RXD、TXD、GND 三线连接,同样不支持多设备总线挂载。如下图所示:

RS232的通信方式是在串口通信的基础上,增加一个232转换芯片。

将TTL电平转换成232电平进行通信。如下图所示:

1.2、数据帧格式

帧格式完全沿用 UART,仅电平标准重新定义,在串口通信中,一般将+5V视为逻辑”1“,将0V视为逻辑”0“,经过232转换芯片将TTL电平转换为232电平后,可将+12V视为逻辑”1“,将-12V视为逻辑”0“。

逻辑 0:-3V~-15V(常规 - 12V)
逻辑 1:+3V~+15V(常规 + 12V)
如下图所示:

232电平相比于TTL电平,抗干扰能力增强,即使干扰信号会使电平发生波动,但它的高低电平仍有较大的改变余量。通信如下图所示:

1.3、优缺点

优点:电平压差大,抗干扰优于 TTL 串口,通信距离相比UART有所提升,极限传输达到15m。

缺点:
±12V 高压容易击穿 3.3V 单片机外设;
单端共地传输,共模干扰无法抑制,极限传输距离仅 15m;
只能点对点,不能总线组网。

三、RS485 通信

为了解决串口通信及RS232通信所存在的问题,又提出了RS485协议。因RS-485接口具有良好的抗噪声干扰性,传输距离长和多站能力等上述优点就使其成为首选的串行接口。因为RS485接口组成的半双工网络一般只需二根连线,所以RS485接口均采用屏蔽双绞线传输。

3.1、RS485通信连接方式

RS485=UART 协议 + TTL 转差分电平,软件串口协议不变,核心革新:差分信号传输。

485转换芯片可以把串口TTL信号转换成差分信号,也可以反向把差分信号转换成串口TTL信号

依靠 A、B 两根线的电压差值判断逻辑:

A>B,压差 - 2V~-6V → 逻辑 0

A<B,压差 + 2V~+6V → 逻辑 1
外界干扰会同等叠加在 A、B 双线上,差值不受干扰影响,从硬件根源抑制共模干扰。

AB线采用双绞线的方式,这样外界干扰会同等叠加在 A、B 双线上,差值不受干扰影响,从硬件根源抑制共模干扰。

并且硬件为半双工:A/B 总线共用收发,同一时刻只能收 / 只能发。这样便能实现总线型一主多从拓扑,如下图所示:

3.2、RS485数据帧格式

RS485也是基于串口的,帧格式与串口的相同。与串口和RS232只是电气的特性不同,软件的编程都是差不多的。如下图所示:

四、三者横向对比汇总表

通信方式电平类型传输方式最大距离拓扑结构抗干扰
UART-TTL3.3V/5V 单端单端对地几米点对点很差
RS232±12V 单端单端对地15m点对点一般
RS485差分电压 (A/B 差值)双线差分1200m一主多从总线优秀

总结

本期博客对UART、RS232、RS485三种通信协议进行了完整的介绍。

← 返回列表