news 2026/8/11 13:19:11

学习笔记——UART(通用异步收发器)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
学习笔记——UART(通用异步收发器)

UART(通用异步收发器)

一、基本概念

  1. UART定义:Universal Asynchronous Receiver Transmitter

    • 通用异步收发器,用于异步通信的硬件接口

    • 包含自己的一套通信规则和协议

    • 特点:异步、全双工、串行通信协议

二、硬件连接

接线方式

MCU <---> 外部设备 TXD <---> RXD (发送线对接收线) RXD <---> TXD (接收线对发送线) VCC <---> VCC (电源正极) GND <---> GND (接地)

注意:必须交叉连接(TXD接RXD,RXD接TXD)

三、通信方式

类型数据线数据传输方向特点
单工1根单向固定一方固定发送,一方固定接收
半双工1根双向分时双方都能收发,但不能同时进行
全双工2根双向同时双方可同时收发数据(UART采用)

四、数据传输特点

1. 发送顺序

LSB优先原则(低位先行)

数据:A6 = 1010 0110 发送顺序:0 → 1 → 1 → 0 → 0 → 1 → 0 → 1 LSB MSB

2. 传输形式比较

类型数据线传输速率硬件成本传输距离抗干扰性
串行1根
并行多根

并行传输问题:距离增加会导致信号偏移和电磁干扰

五、通信时序

数据帧格式

起始位 + 数据位(5-9位) + 校验位(可选) + 停止位(1/1.5/2位)
  • 起始位:1位低电平(0)

  • 停止位:1位或多位高电平(1)

六、奇偶校验

1. 校验类型

类型校验位校验规则局限性
奇校验'1'数据位'1'+校验位=奇数个'1'无法检测偶数个bit错误
偶校验'0'数据位'1'+校验位=偶数个'1'无法检测偶数个bit错误
无校验无校验位无错误检测

2. 校验示例

数据:1010 0110 (有4个'1') 奇校验:校验位=1(总共有5个'1',奇数) 偶校验:校验位=0(总共有4个'1',偶数)

七、通信参数

格式波特率 数据位 校验位 停止位

9600 8 N 1 → 波特率9600,8位数据,无校验,1位停止位 2400 8 E 1 → 波特率2400,8位数据,偶校验,1位停止位 115200 8 O 1 → 波特率115200,8位数据,奇校验,1位停止位

常见波特率:

2400, 4800, 9600, 19200, 38400, 57600, 115200

八、同步与异步

类型时钟线特点
同步有时钟线同步通信频率
异步无时钟线,UART采用此方式

九、串口寄存器配置(以51单片机为例)

1. SCON寄存器配置

SCON &= ~(3 << 6); // 清bit6、bit7(SM0、SM1) SCON |= (1 << 6); // 设置SM0=0,SM1=1 → 模式1:8位UART,波特率可变 SCON |= (1 << 4); // 设置REN=1,允许接收数据

2. SCON重要标志位

  • TI(发送中断标志)

    • 8位数据发送完毕后自动置1

    • 必须用软件清零

    • TI = 0;

  • RI(接收中断标志)

    • 8位数据接收完毕后自动置1

    • 必须用软件清零

    • RI = 0;

3. PCON寄存器配置

PCON |= (1 << 7); // SMOD=1,波特率翻倍 PCON &= ~(1 << 6); // SMOD0=0,通过SM0和SM1确定串口模式

十、波特率计算

定时器1工作模式(8位自动重装)

  • 波特率公式

    波特率 = (2^SMOD × 晶振频率) / (32 × 12 × (256 - TH1))
  • 常用波特率对应的初值(12MHz晶振,SMOD=1):

    9600 → TH1 = 0xFD 4800 → TH1 = 0xFA 2400 → TH1 = 0xF4

十一、主机与从机概念

角色功能特点
主机拥有通信控制权发起通信,发送指令
从机响应主机指令不能主动发起,只能应答

十二、重点内容总结

  1. 串口概念:异步、全双工、串行通信

  2. 通信方式区别:单工(单向)、半双工(双向分时)、全双工(双向同时)

  3. 发送顺序:LSB优先,低位先行

  4. 串行vs并行:串行-单线慢成本低,并行-多线快成本高

  5. 通信时序:起始位+数据位+校验位+停止位

  6. 奇偶校验:奇校验-总'1'数为奇数,偶校验-总'1'数为偶数

  7. 通信参数:波特率、数据位、校验位、停止位

  8. 常见波特率:2400、9600、115200等

  9. 同步vs异步:有无时钟线同步

  10. 波特率产生:依靠定时器1(通常模式2,8位自动重装)

  11. 定时器模式:16位定时器需软件重装,8位自动重装自动重载

  12. 16位vs8位定时器:16位-范围大需软件干预,8位-范围小但自动重装

  13. 主机vs从机:主机主动发起,从机被动响应

  14. Modbus协议:常见的主从式通信协议格式

十三、关键知识点

  • 数据帧结构:理解起始位、数据位、校验位、停止位的组合

  • 波特率计算:掌握定时器初值计算方法

  • 寄存器操作:熟练掌握SCON、PCON的位操作

  • 工作模式:掌握模式1(8位UART,波特率可变)的配置

  • 通信流程:理解数据收发的中断处理流程

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/26 18:49:05

别再纠结哪个AI做PPT靠谱!“轻竹办公AIPPT”一站式解

别再纠结哪个AI做PPT靠谱&#xff01;“轻竹办公AIPPT”一站式解决在职场和校园生活中&#xff0c;制作PPT是一项常见却又让人头疼的任务。很多人都有过这样的经历&#xff1a;内容已经准备好&#xff0c;却不知道如何快速整理成一份结构清晰、重点突出的PPT。从空白页开始搭建…

作者头像 李华
网站建设 2026/8/10 2:43:23

事务中的隔离性是如何保证的呢?(你解释一下MVCC)

事务的隔离性通过锁和多版本并发控制&#xff08;MVCC&#xff09;来保证。MVCC通过维护数据的多个版本来避免读写冲突。底层实现包括隐藏字段、undo log和read view。隐藏字段包括trx_id和roll_pointer。undo log记录了不同版本的数据&#xff0c;通过roll_pointer形成版本链。…

作者头像 李华
网站建设 2026/8/5 12:09:08

既然强转会报错,java为啥不封装处理好,避免强转报错?

✅ 用【大白话 人话】彻底讲懂&#xff0c;不讲原理、只讲结论、保证听懂&#xff0c;0 基础也能明白&#xff01;你不懂太正常了&#xff0c;这个问题本身就是 Java 的反直觉坑&#xff0c;咱们抛开所有专业术语&#xff0c;只说人话、只讲你关心的「为什么」和「怎么办」&am…

作者头像 李华
网站建设 2026/7/30 14:09:49

一文彻底搞懂算力计算:CPU与GPU的核心方法全解析

在AI大模型训练/推理、高性能计算&#xff08;HPC&#xff09;、数据中心运维等场景中&#xff0c;“算力”是衡量硬件性能的核心指标&#xff0c;也是方案选型、成本评估的关键依据。但很多开发者对算力的理解仅停留在“TOPS”“FLOPS”等名词层面&#xff0c;不清楚其具体计算…

作者头像 李华
网站建设 2026/7/28 13:56:28

搞定JAX高效并行训练

&#x1f493; 博客主页&#xff1a;借口的CSDN主页 ⏩ 文章专栏&#xff1a;《热点资讯》 搞定JAX高效并行训练&#xff1a;从理论到实战的深度探索目录搞定JAX高效并行训练&#xff1a;从理论到实战的深度探索 引言&#xff1a;为何JAX并行训练是AI工程的分水岭 一、JAX并行训…

作者头像 李华
网站建设 2026/7/28 4:51:52

如何在liunx环境安装PageAdmin Cms系统

web系统一般建议安装在srv/wwwoot目录下&#xff0c;下面步骤演示如何安装pageadmin版本。 1、进入srv目录&#xff0c;创建wwwroot/demo目录&#xff0c;生产环境demo替换为网站标识或域名标识&#xff0c;方便后期识别。2、上传web文件zip压缩包到 /srv/wwwroot/demo目录下解…

作者头像 李华