当前位置: 首页 > news >正文

嵌入式笔记系列——UART:TTL-UART、RS-232、RS-422、RS-485

文章目录

  • 一、UART
    • 1. 物理连接
    • 2. 数据帧格式(Frame Structure)
      • 典型 8N1 帧格式(最常见):
    • 3. 传输时序与波特率
    • 4. 配置参数(通信双方必须一致)
    • 5. 工作流程(以 8N1 为例)
    • 6. 优缺点
    • 7. 实际应用示例
    • 8.TTL-UART、RS-232、RS-422、RS-485介绍
      • ①核心:UART - 通信的“协议”
      • ②TTL-UART - 芯片级的“语言”
      • ③RS-232 - 老而弥坚的“标准串口”
      • ④RS-422 - 走向“平衡传输”
      • ⑤RS-485 - 工业应用的“王者”
      • ⑥总结与类比
        • a. RS-485 与 RS-422区别
          • a.1 最核心的区别:发送器的数量和能力
          • a.2 RS-485 与 RS-422 详细对比表
          • a.3 核心区别详解与类比
            • a.3.1 发送器数量:这是“万恶之源”
            • a.3.2 通信模式:由核心区别自然衍生
            • a.3.3 电路实现:使能引脚(DE/RE)
          • a.4 如何选择?
          • a.5 总结
      • ⑦学习与实践建议
    • 9. 小结(一句话记忆)

一、UART

UART(Universal Asynchronous Receiver/Transmitter)是一种异步串行通信协议,广泛应用于嵌入式系统、单片机、FPGA、PC 与外设之间的通信。以下从物理连接、数据帧格式、传输时序、配置参数、优缺点等方面详细解析 UART 协议。


1. 物理连接

  • 仅需两根数据线
    • TX(Transmit):发送端
    • RX(Receive):接收端
  • 全双工通信:TX 和 RX 是独立的,可同时收发数据。
  • 无需时钟线:属于异步通信,通信双方需预先约定好波特率。

2. 数据帧格式(Frame Structure)

字段位数电平说明
起始位1 bit逻辑 0表示数据帧开始
数据位5~9 bits逻辑 0/1实际传输数据(常用 8 bits)
校验位0/1 bit逻辑 0/1可选,奇/偶校验
停止位1~2 bits逻辑 1表示数据帧结束

典型 8N1 帧格式(最常见):

| 起始位 | 数据位 | 校验位 | 停止位 |
|---------|---------|----------|---------|
|    1    |    8    |    无    |    1    |

3. 传输时序与波特率

  • 波特率(Baud Rate):每秒传输的 bit 数,单位为 bps(bits per second)。
    • 常见值:9600、19200、38400、57600、115200、921600 等。
    • 示例:115200bps 表示每秒传输 115200 个 bit,每个 bit 持续约 8.68μs。
  • 异步传输:每帧独立,帧间空闲线为高电平(逻辑 1)。

4. 配置参数(通信双方必须一致)

参数说明
波特率通信速率(如 9600、115200)
数据位每帧数据位数(5~9,常用 8)
校验位无校验、奇校验、偶校验
停止位1 位、1.5 位或 2 位(常用 1 位)
流控无流控、硬件流控(RTS/CTS)

5. 工作流程(以 8N1 为例)

  1. 空闲状态:线路保持高电平(逻辑 1)。
  2. 起始位:发送端拉低线路(逻辑 0),接收端检测到下降沿后启动接收。
  3. 数据位:按低位到高位顺序发送 8 位数据。
  4. 校验位(可选):发送端计算奇偶校验位并附加。
  5. 停止位:发送端拉高线路(逻辑 1),接收端校验数据并准备接收下一帧。

6. 优缺点

优点缺点
硬件简单,仅两根线无多主从机制,仅点对点
全双工通信无硬件流控时易丢数据
成本低,易实现抗干扰能力弱,距离受限(RS-232 约 15 米)

7. 实际应用示例

  • MCU ↔ PC:通过 USB-to-UART 芯片(如 CH340、FT232)连接电脑串口助手。

  • MCU ↔ 传感器:如 GPS 模块、蓝牙模块(HC-05)等。

  • 调试打印:嵌入式开发中常用 UART 输出日志信息。

  • 传输示例:以9600,8-N-1(9600波特率,8个数据位,没有校验位,1位停止位)为例,这是目前最常用的串口配置,现在我们传输“O”“K”两个ASCII值,“O”的ASCII为79,对应的二进制数据为01001111,“K”对应的二进制数据为01001011,传输的格式数据如下图所示:

在这里插入图片描述


8.TTL-UART、RS-232、RS-422、RS-485介绍

①核心:UART - 通信的“协议”

首先要明白最重要的一点:UART是核心协议,而RS-232、RS-422、RS-485是物理层的电气标准。它们的关系就像“交通规则”和“道路类型”。

  • UART:中文叫通用异步收发传输器。它是一种异步串行通信协议
    • “异步”:指通信双方没有统一的时钟信号线,而是各自使用自己的时钟,并通过事先约定好的波特率(每秒传输的比特数)来同步。
    • “串行”:数据一位一位地按顺序在一条线上传输。
    • 它做什么:UART负责将单片机内部的并行数据(比如8位、32位的数据总线)转换成串行数据流一位一位地发出去,同时也把接收到的串行数据流转换回并行数据给CPU处理。
    • 它在哪里:UART通常是微控制器(MCU)内部的一个外设模块。你通过配置它的寄存器来设置波特率、数据位、停止位、校验位等参数。
    • 它的信号:UART通常使用TTL电平

②TTL-UART - 芯片级的“语言”

  • TTL:是“Transistor-Transistor Logic”的缩写,是一种电平标准。
  • 电平:指用什么电压范围代表逻辑1和逻辑0
    • TTL电平:逻辑 1 -> +3.3V 或 +5V;逻辑 0 -> 0V
  • TTL-UART:就是指信号电平为TTL电平的UART通信
    • 特点
      • 传输距离很短(通常<0.5米 ),因为高电平(3.3V/5V)很容易受到外界干扰导致信号衰减和失真。
      • 抗干扰能力差。
      • 点对点通信(一对一)。
    • 你在哪能看到它单片机开发板的引脚上! 比如ESP32、STM32、Arduino Uno上的 TX (发送) 和 RX (接收) 引脚。你绝对不能把这两个引脚直接接到电脑的RS-232串口上,会烧坏芯片! 因为电平不匹配。
特性TTL-UART
电平标准TTL (3.3V/5V)
通信方式全双工 (发送和接收可同时进行)
拓扑结构点对点
传输距离非常短 (<0.5m)
常见场景MCU内部、板级器件间通信(如GPS、蓝牙模块)

③RS-232 - 老而弥坚的“标准串口”

为了解决TTL电平距离短、抗干扰差的问题,人们制定了RS-232标准。

  • 它是什么:一种串行通信的电气标准,它规定了电平、连接器形状、引脚定义等。
  • 电平
    • 逻辑 1 -> -3V ~ -15V (称为“负逻辑”)
    • 逻辑 0 -> +3V ~ +15V
  • 特点
    • 传输距离显著延长(可达15米左右)。
    • 抗干扰能力比TTL强,因为使用了更高的电压和负电压,噪声容限更大。
    • 仍然是点对点全双工通信。
    • 接口通常为DB9DB25针式连接器。
  • 你在哪能看到它老式电脑的COM口、工控设备、一些医疗仪器等。现在的新电脑基本没有这个接口了。
  • 重要提示:MCU的TTL-UART信号必须通过一个“电平转换芯片”(如MAX3232)转换成RS-232电平,才能与标准的RS-232设备连接。
特性RS-232
电平标准±3~15V (负逻辑)
通信方式全双工
拓扑结构点对点
传输距离~15米
常见场景电脑COM口、工控设备、调制解调器

④RS-422 - 走向“平衡传输”

RS-232虽然解决了距离问题,但速度还是上不去,距离再远也不行。于是有了更先进的RS-422。

  • 核心改进:采用了差分信号(平衡传输)。

    • 差分信号:用两条线 AB 来传输一个信号,通过检测这两条线之间的电压差来判断逻辑。
      • 逻辑 1 -> (A-B) < -0.2V
      • 逻辑 0 -> (A-B) > +0.2V

    在这里插入图片描述

  • 优点

    • 极强的抗共模干扰能力。外界干扰会同时作用于两条线,电压差基本不变,从而被抵消。
    • 传输距离更远(可达1200米)。
    • 速度更高
  • 通信方式单工全双工。通常是一对多,但同一时刻只能有一个发送器工作。

  • 拓扑结构点对多(单主多从)。

特性RS-422
电平标准差分信号 (±0.2V以上)
通信方式全双工 (4线制) 或 半双工 (2线制)
拓扑结构点对多点(单主多从)
传输距离可达1200米 (速率较低时)
常见场景工业环境、长距离布线

⑤RS-485 - 工业应用的“王者”

RS-485是RS-422的扩展和增强,是当今工业领域应用最广泛的串行通信标准。

  • 与RS-422的关系:RS-485几乎继承了RS-422的所有优点(差分传输、长距离、高抗扰)。

  • 关键增强

    • 真正的多点总线:允许在一条总线上挂接多达32个甚至128个收发器(通过增加中继器可更多)。
    • 所有设备都可以作为发送器,但需要遵循“一问一答”的协议(如Modbus),避免冲突。
  • 通信方式半双工(2线制,最常用)或全双工(4线制)。

  • 特点

    • 多节点组网能力。
    • 极佳的抗干扰性和长距离传输特性。
    • 需要软件协议来管理总线访问(如Modbus RTU)。
  • 你在哪能看到它工业自动化(PLC、传感器、变频器)、楼宇自动化、安防系统(门禁、摄像头)等。

    在这里插入图片描述

特性RS-485
电平标准差分信号 (±0.2V以上)
通信方式半双工 (2线制,最常用) 或 全双工 (4线制)
拓扑结构多点总线(多主或多从)
传输距离可达1200米 (速率较低时)
常见场景工业控制网络、多设备通信

⑥总结与类比

这里有一个简单的类比:

标准类比特点
TTL-UART两个人面对面小声说话距离极近,只能一对一,容易听错
RS-232两个人拿着喇叭喊话距离远了,但还是一对一,噪声大时听不清
RS-422一个人用麦克风讲话,很多人用耳机听距离很远,一对多,抗干扰强,但听众不能发言
RS-485一群人共用一对讲频道距离远,多对多,抗干扰强,但要按规则轮流发言
a. RS-485 与 RS-422区别
a.1 最核心的区别:发送器的数量和能力
  • RS-422:规定总线上只能有一个发送器(Transmitter),但可以有多个接收器(Receiver)。这是一个单主(1个发送器)多从(多个接收器) 的系统。
  • RS-485:规定总线上可以有多个发送器(通常最多32个),每个设备都可以作为发送器或接收器。这是一个多主或多从的系统。

这个硬件上的根本差异,像一颗种子,生长出了它们所有的其他区别。用一个详细的对比表格和解释来展开。

a.2 RS-485 与 RS-422 详细对比表
特性RS-422RS-485
官方名称TIA/EIA-422TIA/EIA-485
核心区别只能有1个发送器允许多个发送器 (e.g., 32, 128)
通信模式全双工 (4线制)
• 一对线只用于发送 (A-B)
• 另一对线只用于接收 (Y-Z)
半双工 (2线制, 最常用)
• 一对线轮流用于发送和接收 (A-B)
全双工 (4线制)
拓扑结构点对多点 (1主发,多从收)多点总线 (多主或多从,所有设备都可发可收)
差分电压逻辑 1: (A - B) < -0.2V
逻辑 0: (A - B) > +0.2V
逻辑 1: (A - B) < -0.2V
逻辑 0: (A - B) > +0.2V
传输距离可达 1200米 (在较低速率下)可达 1200米 (在较低速率下)
数据速率距离短时可达 10 Mbps距离短时可达 10 Mbps
典型应用场景• 点对点高速传输
• 一主设备广播数据,多从设备接收
• 工业摄像头、高速数据记录
工业自动化 (PLC, 传感器, 变频器)
• 楼宇自控、安防系统
• 任何需要组网的场合

a.3 核心区别详解与类比
a.3.1 发送器数量:这是“万恶之源”
  • RS-422 的设计初衷是延长通信距离和提高抗干扰能力,并支持一个信号源驱动多个接收端。它像一个广播站

    • 有一个广播塔(主设备发送器)
    • 成千上万的收音机(从设备接收器) 可以收听。
    • 收音机不能反向对广播塔说话。如果要双向通信,RS-422需要单独再建立一条“返回通道”(即4线全双工),但返回通道同样只能有一个发送器。
  • RS-485 的设计初衷是创建真正的多点通信网络。它像一个对讲机频道

    • 很多人都拥有对讲机(每个设备都可发可收)。
    • 大家共用同一个频道(总线)。
    • 规则是:同一时刻只能有一个人按下按键讲话(作为发送器),其他人只能听(作为接收器)。讲完后要说“完毕”,然后松开按键,其他人才能接着讲。
    • 这个“规则”就是软件协议(如Modbus),它来协调谁在什么时候“发言”,避免冲突。
a.3.2 通信模式:由核心区别自然衍生
  • RS-422 因为发送和接收通道是独立的(各有1对差分线),所以可以轻松实现全双工(同时收和发)。
  • RS-485 为了实现多设备挂接在一对线上,通常采用半双工模式。这样布线更简单,成本更低,是绝大多数应用的首选。RS-485也支持全双工(4线制),但这需要两对线,并且实际上创建了两个独立的信道(一个主发从收,一个从发主收),失去了2线制简单布线的优势。
a.3.3 电路实现:使能引脚(DE/RE)
  • 由于RS-485设备需要随时在发送和接收模式之间切换,所以RS-485收发器芯片(如MAX485、SP3485)都有一个独有的发送使能(DE)接收使能(RE) 引脚(有时合并为一个引脚控制)。
  • 当你的设备要发送数据时,MCU必须先将DE引脚拉高,激活发送器,然后再通过TX引脚发送数据。发送完成后,再将DE拉低,切换回接收模式,监听总线。
  • RS-422不需要这个功能,因为它的发送器和接收器是独立且一直工作的。
a.4 如何选择?
  • 选择 RS-422:当你需要高速、长距离、单向传输全双工点对点通信时。例如,一台计算机同时向多个显示器发送数据。
  • 选择 RS-485:当你需要构建一个多设备的网络,设备之间需要双向通信时。这是工业环境中的绝对主流。几乎所有需要联网的工业设备(PLC、仪表、传感器)都首选RS-485接口
a.5 总结

一句话概括:
RS-422是一个优秀的“广播系统”,而RS-485是一个强大的“局域网”。

RS-485在RS-422的基础上,通过允许“多个发送器”这一革命性改进,成为了构建分布式设备网络的首选标准,这也是它在工业领域远比RS-422更常见的原因。

⑦学习与实践建议

  1. 从TTL-UART入手:在你学习的初期,最常打交道的就是TTL-UART。用一根USB转TTL串口线(CH340、CP2102、FT232等芯片)连接你的电脑和开发板,通过串口助手工具进行打印调试(printf)和收发数据。这是嵌入式开发的“printf调试大法”,至关重要。
  2. 理解电平转换:做一个实验,尝试用MAX3232芯片将你的开发板TTL信号转换成RS-232电平,连接一个老设备(如果有的话)。
  3. 深入了解RS-485:当你需要做项目,比如连接多个传感器或控制多个电机时,RS-485将是你的首选。学习如何使用MAX485这类收发器芯片,并了解其使能引脚(DE/RE) 的控制时序(切换发送和接收模式)。同时,学习一种运行在RS-485之上的应用层协议,如Modbus,这是工业领域的必修课。

9. 小结(一句话记忆)

UART 是“两根线、异步、全双工”的串口协议,以“起始位+数据位+校验位+停止位”为帧格式,通信前需约定波特率、数据位、校验位、停止位等参数。


文章转载自:

http://agO7YxJQ.thrgp.cn
http://U9THfgqd.thrgp.cn
http://tK7Nzht1.thrgp.cn
http://gaCAyVL4.thrgp.cn
http://KnTb5Lxx.thrgp.cn
http://EXUcmJvY.thrgp.cn
http://2lv2gPDV.thrgp.cn
http://xhhD85iB.thrgp.cn
http://AcWH8Evz.thrgp.cn
http://1QRKjXs6.thrgp.cn
http://ImWujEHs.thrgp.cn
http://tYAhb5in.thrgp.cn
http://c6OvCbex.thrgp.cn
http://Hh1ZK9bN.thrgp.cn
http://rifJ61bS.thrgp.cn
http://jMFfSl9d.thrgp.cn
http://3xKFNq6Q.thrgp.cn
http://t9jxyJSF.thrgp.cn
http://ZJAsg3w2.thrgp.cn
http://USjcu9au.thrgp.cn
http://r5ibi810.thrgp.cn
http://Jtk2iYyZ.thrgp.cn
http://tbBKdaYV.thrgp.cn
http://F9BSaNaT.thrgp.cn
http://0SPSgyDs.thrgp.cn
http://PRWXjiyg.thrgp.cn
http://OpMJKsZQ.thrgp.cn
http://LZCcCGBS.thrgp.cn
http://nXkcixIg.thrgp.cn
http://grJTDI9I.thrgp.cn
http://www.dtcms.com/a/370522.html

相关文章:

  • Week 15: 深度学习补遗:集成学习初步
  • 计算机CPU的工作原理介绍
  • 科学研究系统性思维的方法体系:个人研究项目管理
  • macbook intel 打开cursor会闪退
  • Day22_【机器学习—集成学习(2)—Bagging—随机森林算法】
  • 2025年大数据专业人士认证发展路径分析
  • 【CV】Opencv图像处理——①几何变换 (1)
  • dify+Qwen2.5-vl+deepseek打造属于自己的作业帮
  • 待定系数法分解分式
  • WordPress过滤文章插入链接rel属性noopener noreferrer值
  • AwesomeBump Windows上编译细则
  • 2026届大数据毕业设计选题推荐-基于大数据旅游数据分析与推荐系统 爬虫数据可视化分析
  • NIOS ii工程移植路径问题
  • Redis中的List数据类型
  • 设计一个 AB 测试平台
  • MATLAB2025-安装Embedded Code Support Pacjage for STM32 Processors
  • 去中心化投票系统开发教程 第三章:智能合约设计与开发
  • 基于Matlab的MEMS陀螺仪Allan方差分析与随机误差参数识别
  • 植物大战僵尸融合版安装包,下载安装教程
  • 基于STM32的智能宠物屋系统设计
  • SQL 入门指南:排序与分页查询(ORDER BY 多字段排序、LIMIT 分页实战)
  • (算法 哈希表)【LeetCode 349】两个数组的交集 思路笔记自留
  • 【PCIe EP 设备入门学习专栏 -- 8.1.3 PCIe EP AXI Bridge Module】
  • MySQL集群高可用架构(MHA高可用架构)
  • 多线程任务执行窗体框架jjychengTaskWinForm
  • GPIO介绍
  • 浅析Linux内核scatter-gather list实现
  • MotionSound-简单易用的文本转语音工具
  • 【左程云算法03】对数器算法和数据结构大致分类
  • 2.2 Web和Http