UART 通信协议

文章目录

    • 一 简介
    • 二 电平标准
    • 三 引脚定义
    • 四 数据格式
    • 五 波特率

一 简介

​ UART (Universal Asynchronous Receiver/Transmitter),通用异步收发器,是一种串行、异步、全双工通信协议。

  • 串行:利用一条传输线,将数据一位一位地传送
  • 异步:不需要时钟信号进行数据同步,而是直接在数据信号中插入一些同步用地信号位,或者把主体数据进行打包,以数据帧的格式传输数据(存在一定的格式,接收端需要解数据帧得到主体数据,本质上还是插入信号位)
  • 全双工:数据的传输可以同时进行,与半双工的本质区别在是半双工通信双方共用一条线路,所以需要分时复用,但是全双工是两条线,一条作为发送一条作为接收。

二 电平标准

​ uart 使用标准的 TTL/CMOS 逻辑电平表示数据,1 表示高电平,0 表示低电平。为了提高抗干扰能力、传输距离,通常会将 TTL/CMOS 逻辑电平转换为 RS232/RS485 逻辑电平

通信接口电平标准特点
TTL逻辑1:2.4 V ~ 5 V
逻辑0:0 V ~ 0.4 V
无需额外电路,直接引脚直连
RS232逻辑1:-3 V ~ -15 V
逻辑0:3 V ~ 15 V
需要电平转换电路,传输距离最大约 15 米
RS422/RS485逻辑1:两线压差 2 V ~ 6 V
逻辑0:两线压差 -2 V ~ -6 V
需要电平转换电路,传输距离大约 1200 米

三 引脚定义

UART 串口通信有 4 个引脚,

名称介绍
TX发送数据引脚
RX接收数据引脚
VCC供电引脚,一般是 3.3 V
GND参考地,通信双方需工地

四 数据格式

​ 在 uart 中,数据以包的形式传输,应用层将数据发给 uart 控制器后,uart 控制器会将数据封装成如下格式的包 在这里插入图片描述

  • 起始位:空闲时,TX 线通常保持高电平。当要开始数据传输时,UART 控制器会将 TX 这条线从高电平拉为低电平,并保持一定的时间用于让接收方感知到。当接收方感受到后,开始以指定波特率对应的频率采样信号

  • 数据位:数据长度可以是 5 位到 8 位。如果不使用奇偶校验位,数据帧长度可以为 9 位。多数情况下,数据以最低有效位优先方式发送

  • 校验位:用于表示主体数据中 1 的个数是奇数个还是偶数个。通过奇偶校验,判断 uart 传输期间是否有数据发送改变。电磁辐射、不一致的波特率或长距离数据传输都可能改变数据位。也可以不插入校验位。

  • 停止位:表示数据包的结束,可以是 1 位、1.5 位、2 位的高电平,同时提供了通信双方校正时钟的机会。

五 波特率

​ UART 不需要时钟信号进行数据同步,也就是说不需要时钟线,那接收方如何接收数据呢?双方事先规定好每两个 bit 之间的时间间隔,双方控制器根据这个时间间隔对数据线进行采样。数据传输速率使用波特率来表示,单位 bps(bits per second),常见的波特率9600bps,115200bps 等。

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

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

相关文章

【七】Hadoop3.3.4基于ubuntu24的分布式集群安装

文章目录 1. 下载和准备工作1.1 安装包下载1.2 前提条件 2. 安装过程STEP 1: 解压并配置Hadoop选择环境变量添加位置的原则检查环境变量是否生效 STEP 2: 配置Hadoop2.1. 修改core-site.xml2.2. 修改hdfs-site.xml2.3. 修改mapred-site.xml2.4. 修改yarn-site.xml2.5. 修改hado…

引用的项目“xxxx/tsconfig.node.json”可能不会禁用发出。

vue3 报错: 引用的项目“xxxx/tsconfig.node.json”可能不会禁用发出。 解决: 进入对应的 json 文件: 修改: "noEmit": false 当 noEmit 设置为 false 时,TypeScript 编译器将根据项目配置生成相应的输出文…

基于Java的微博传播分析系统的设计与实现

1 项目介绍 1.1 摘要 本文致力于展示一项创新的微博传播分析系统设计与应用研究,该系统基于Java技术,巧妙利用大数据环境下的社交媒体——微博的庞大用户群及高度活跃特性,旨在深度探索信息传播的内在逻辑与社会影响机制。研究开篇明确定了…

OpenCV 灰度直方图

一 直方图的定义,意义和特征 1 定义 在统计学中,直方图是一种对数据分布情况的图形表示,是一种二维统计图表,他的两个坐标分别是统计样本(图像、视频帧)和样本的某种属性(亮度,像素…

bugku-web-cookies

进来以后看到一个巨长的字符串, 源码同样,发现url后面是base64编码解码得keys.txt 还有一个line参数,修改并没有发生任何变化。我想不到要改keys.txt成index.php(base64加密格式:aW5kZXgucGhw) line1时: line2时&…

AcWing 802. 区间和

var说明add存储了插入操作,在指定 x x x下标所在位置 a [ x ] c a[x]c a[x]cquery是求 [ L , R ] [L,R] [L,R]区间和用到的数组,最后才用到alls 是存储离散化之后的值 , 对于会访问到的每个下标,统统丢到 a l l s 里面 ,会把 x 和 [ L , R …

【Golang 面试 - 基础题】每日 5 题(七)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…

数据结构----算法复杂度

1.数据结构前言 数据是杂乱无章的,我们要借助结构将数据管理起来 1.1 数据结构 数据结构(Data Structure)是计算机存储、组织数据的⽅式,指相互之间存在⼀种或多种特定关系的数 据元素的集合。没有⼀种单⼀的数据结构对所有⽤途都有⽤,所…

查看路由表 netstat -r

“Kernel IP routing table” 是Linux系统中用于展示和配置IP路由的表。它告诉操作系统如何将数据包从一个网络接口发送到另一个网络或主机。下面是对您给出的路由表条目的解释: Destination:目的地地址,可以是具体的IP地址,也可…

ctfshow解题方法

171 172 爆库名->爆表名->爆字段名->爆字段值 -1 union select 1,database() ,3 -- //返回数据库名 -1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema库名 -- //获取数据库里的表名 -1 union select 1,group_concat(…

Python爬虫入门02:Fiddler下载使用教程

文章目录 手机抓包全攻略:Fiddler 工具深度解析引言Fiddler 工具简介为什么选择 Fiddler? 安装与配置 Fiddler步骤一:下载与安装步骤二:配置浏览器代理步骤三:安装 HTTPS 证书 配置手机以使用 Fiddler步骤一&#xff1…

操作系统面试知识点总结5

#来自ウルトラマンメビウス(梦比优斯) 1 IO管理概述 1.1 I/O 设备 I/O 设备的类型分类。 1.1.1 按使用特性 人机交互类外部设备,例如打印机、显示器等。存储设备,例如磁盘、光盘等。网络通信设备,例如网络接口等。 1…

【计算机网络】IP地址和子网掩码(IP地址篇)

个人主页:【😊个人主页】 系列专栏:【❤️计算机网络】 文章目录 前言IP地址网络地址网络地址的定义与组成作用分类网络地址的分配与管理 广播地址(Broadcast Address)定义构成类型作用注意事项 广播地址功能 组播地址…

HiveSQL题——炸裂+开窗

一、每个学科的成绩第一名是谁? 0 问题描述 基于学生成绩表输出每个科目的第一名是谁呢? 1 数据准备 with t1 as(selectzs as name,[{"Chinese":80},{"Math":70}],{"English"…

CompletableFuture使用详解

简单的任务,用Future获取结果还好,但我们并行提交的多个异步任务,往往并不是独立的,很多 时候业务逻辑处理存在串行[依赖]、并行、聚合的关系。如果要我们手动用 Future 实现,是非常麻烦的。 CompletableFutur…

JMeter基本使用

一、JMeter线程组相关 进程:正在运行的程序。线程:是进程中的执行线索。线程组:进程中有许多线程,为了方便管理,可以对线程按照性质分组,分组的结果就是线程组。PS:三者关系,一个进…

【设计模式】(万字总结)深入理解Java中的创建型设计模式

1. 前言 在软件开发的世界里,设计模式是一种被广泛接受并应用的解决方案。它们不仅仅是代码的设计,更是对问题的思考和解决的方法论。在Java开发中,特别是在面向对象的编程中,设计模式尤为重要。创建型设计模式,作为设…

【初阶数据结构篇】实现顺序结构二叉树(堆的实现方法)

文章目录 实现顺序结构二叉树(堆)前言代码位置堆的概念与结构概念 堆的实现堆初始化和销毁堆的插入堆的判空堆的删除数据取堆顶数据 实现顺序结构二叉树(堆) 前言 ​ ⼀般堆使⽤顺序结构的数组来存储数据,堆是⼀种特…

一键生成惊艳图像:使用Stable Diffusion打造惊人视觉效果

一、简介 Stable Diffusion是一种由Stability AI开发的生成式AI模型,能够将文本提示转换为高质量的图像。作为生成式扩散模型的一部分,Stable Diffusion通过解析和理解输入的文本提示,逐步生成与描述相匹配的图像。这一技术不仅在图像生成和…

MybatisPlus核心用法

MybatisPlus核心用法 目录 MybatisPlus核心用法1.使用MybatisPlus的基本步骤:2.MybatisPlus是如何获取实现CRUD的数据库表信息的?3.MybatisPlus的常用注解有哪些?如果表名称和实体类名称不符合约定该怎么做?IdType的常见类型有哪些…