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

学习笔记——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,波特率可变)的配置

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

http://www.jsqmd.com/news/245438/

相关文章:

  • List、Set的相似性
  • RAGFlow 全面接入 MinerU 2.0,支持 pipeline、vlm-transformers、vlm-sglang 三种模式,解析精度大幅度up
  • 一文彻底搞懂算力计算:CPU与GPU的核心方法全解析
  • 突然发现 AI Agent设计思路真的好清晰
  • 论文与期刊的级别
  • 终于有人把数据血缘说明白了
  • 24家科技巨头参与,美国“创世纪计划”有什么样的野心?
  • sql 如果字段为空就用另一个字段
  • Android 基础入门教程2.5.2 GridView(网格视图)的基本使用
  • AI赋能央企数智化转型研究报告:AI赋能央企转型应用现状、AI赋能央企转型路径与挑战、AI赋能央企转型服务商体系、未来展望
  • Android 基础入门教程2.5.3 Spinner(列表选项框)的基本使用
  • 大模型推理框架对比:SGLang 与 vLLM 的核心差异解析
  • ​ Android 基础入门教程​2.5.4 AutoCompleteTextView(自动完成文本框)的基本使用
  • Agent搭建-超详细教程,存一下吧
  • 事务中的隔离性是如何保证的呢?(你解释一下MVCC)
  • 如何在liunx环境安装PageAdmin Cms系统
  • 数据治理到底应该怎么治理?治理什么?在哪治理?治理路径是什么?治理流程又是什么?附案例及解决方案
  • 既然强转会报错,java为啥不封装处理好,避免强转报错?
  • 2026常见的企业网站建设系统推荐
  • 帧同步游戏设置一个“固定输入延迟”它背后的逻辑
  • mkcert 本地 HTTPS 证书全平台教程
  • 合集(WORD+PPT):AI大模型赋能数字政府智慧政务、智慧党建、社会治理、基层治理、市域治理等
  • Day01-07.搭建项目环境-测试部署的微服务14:20
  • VR禁毒知识信息平台:科技赋能全民禁毒教育新载体
  • A17-300余份AI大模型赋能教育、数字校园、智慧高校、智慧教育、教育大脑、高校大脑、智慧职教、智慧幼教(PPT+WORD,见文末)
  • 【原创】使用langchain与MCP 与 Chrome DevTools 打造可调用浏览器工具的 Chat Agent
  • 22.C++进阶:⼆叉搜索树|手撕二叉搜索树
  • 搞定JAX高效并行训练
  • Spring家族生态深度剖析:从厨房新手到餐饮帝国的演进史
  • 写了5年C++才发现:new背后藏着两个函数,placement new让我能控制其中一个