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

news/2025/9/20 9:01:15/文章来源:https://www.cnblogs.com/wzzkaifa/p/19101997

文章目录

  • 一、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. 物理连接


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-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 发送器数量:这是“万恶之源”
a.3.2 通信模式:由核心区别自然衍生
  • RS-422因为发送和接收通道是独立的(各有1对差分线),所以可以轻松实现全双工(同时收和发)。
  • RS-485为了建立多设备挂接在一对线上,通常采用半双工模式。这样布线更简单,成本更低,是绝大多数应用的首选。RS-485也支持全双工(4线制),但这需要两对线,并且实际上创建了两个独立的信道(一个主发从收,一个从发主收),失去了2线制方便布线的优势。
a.3.3 电路实现:使能引脚(DE/RE)
a.4 如何选择?
  • 选择 RS-422:当你需要高速、长距离、单向传输全双工点对点通信时。例如,一台计算机同时向多个显示器发送数据。
  • 选择 RS-485:当你需要构建一个多设备的网络,设备之间需要双向通信工业环境中的绝对主流。就是时。这几乎所有需要联网的工业设备(PLC、仪表、传感器)都首选RS-485接口
a.5 总结

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

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

⑦学习与实践建议

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

9. 小结(一句话记忆)

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/908219.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实用指南:医院高值耗材智能化管理路径分析(下)

实用指南:医院高值耗材智能化管理路径分析(下)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas",…

Flutter应用自动更新系统:生产环境的挑战与解决方案

Flutter应用自动更新系统:生产环境的挑战与解决方案本文基于BeeCount(蜜蜂记账)项目的实际开发经验,深入探讨Android应用自动更新的完整实现,包括GitHub Releases集成、APK安装、R8混淆问题处理等核心技术难点。项目…

.NET Core中使用SignalR

.NET Core中使用SignalR基本介绍 1.什么是signalRSignalR 是微软开发的一个开源库,它可以让服务器端代码能够即时推送内容到连接的客户端,用来简化向客户端应用程序添加实时功能的过程。大白话的意思就是微软搞了一个…

Django + Vue3 前后端分离工艺实现自动化测试平台从零到有系列 <第一章> 之 注册登录完成

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

实用指南:【保姆级教程】TEXTurePaper运行环境搭建与Stable Diffusion模型本地化

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

实用指南:修复Conda连接异常:CondaHTTPError HTTP 000 CONNECTION FAILED故障排除指南

实用指南:修复Conda连接异常:CondaHTTPError HTTP 000 CONNECTION FAILED故障排除指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important…

高级数据结构手册

LCA //exam:P3379 【模板】最近公共祖先(LCA) #include <iostream> #include <cstdio> #include <vector> #define int long long using namespace std; const int MAXN=5e5+5,MAXM=25; void dfs…

3634501 - [CVE-2025-42944] Insecure Deserialization vulnerability in SAP Netweaver (RMI-P4)

3634501 - [CVE-2025-42944] Insecure Deserialization vulnerability in SAP Netweaver (RMI-P4)Symptom Due to a deserialization vulnerability in SAP NetWeaver, an unauthenticated attacker could exploit the…

【无人艇协同】基于matlab面向海事安全的双体无人艇分布式协同任务规划(目标函数:总时间满意度)【含Matlab源码 14161期】博士论文 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

实用指南:Unity 打包 iOS,Xcode 构建并上传 App Store

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

实用指南:GitHub 热榜项目 - 日榜(2025-09-09)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:【Fiora深度解析】手把手教你用固定公网IP搭建专属聊天系统!

深入解析:【Fiora深度解析】手把手教你用固定公网IP搭建专属聊天系统!2025-09-20 08:13 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: au…

使用JavaScript和CSS创建动态高亮导航栏

本文详细介绍了两种实现动态高亮导航栏的技术方案:第一种使用getBoundingClientRect方法精确计算元素位置和尺寸,第二种利用新兴的View Transition API简化动画实现。文章包含完整的代码示例和实际演示,适合前端开发…

wxt 开发浏览器插件的框架

wxt 开发浏览器插件的框架wxt 开发浏览器插件的框架 支持的特性支持所有浏览器 支持mv2 以及mv3 协议 开发模式支持热更新 基于文件的entrypoints 基于ts 开发 支持自动导入 自动发布 支持vue,react,svelte 等框架说…

Gridspech 全通关

You made it to the end of Gridspech. Thank you for playing!!A1A2A3A4A5A6A7A8A9A10A11A12A13A14

20253320蒋丰任

1.我叫蒋丰任,是一个阳光开朗大男孩,因为有一首我挺喜欢的歌就叫这个,同时我的朋友和我自己都认为我是一个外向的社牛(在广东,到了北京,比起东北大哥的热情,我自愧不如)。 2.办公软件的使用(Excel),一定要谦…

又有两位智驾大牛联手入局具身智能机器人赛道创业,已完成数亿元融资!

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087最新资讯,[元璟资本]投资合伙人、原[理想汽车]CTO王凯已入局具身智…

纯国产GPU性能对比,谁才是国产算力之王?

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 显存规格:存储能力大比拼在显存规格这一块,百度昆仑芯 3 代 P8…

地平线明年发布并争取量产舱驾一体芯片;比亚迪补强智舱团队,斑马智行原 CTO 加入

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 地平线舱驾一体芯片 2026 年发布与量产汽车智能芯片的竞赛还在继续…