UART协议——异步全双工串行通信方式

news2024/11/15 21:34:18

文章目录

  • 前言
  • 一、简介
    • 1、优点
    • 2、缺点
  • 二、数据格式
  • 三、波特率
    • 1、定义
    • 2、波特率和采样频率
  • 四、常见接口电平
    • 1、TTL电平
    • 2、RS232(负逻辑)
    • 3、RS485


前言

2023.4.22 世界地球日


一、简介

UART:Universal Asynchronous Receiver/Transmitter,通用异步收发器

  • 广泛的应用在各类MCU和SOC产品上
  • “不需要额外的时钟线进行数据的同步传输”。即只要信号拉低,即可开始传送数据(不在时钟沿发送数据)
  • 一个数据的发送方和一个数据的接收方

1、优点

  • 通信只需要两条数据线;一个发送,一个接收
  • 无需时钟信号
  • 有奇偶校验位,方便通信的差错检查
  • 只需要接收端和发送端设置好数据包结构,即可稳定通信,要设置好波特率

2、缺点

  • 数据帧最大支持9位数据(没有校验位的时候最大为9个数据)
  • 不支持多主机或多从机的主从系统

二、数据格式

一帧数据由起始位数据位校验位停止位组成,没有数据传输时为空闲位

在这里插入图片描述

起始位:0,接收方检测到低电平时,开始接收数据
(需要起始位的原因:由于UART没有控制线,要让接收方知道什么时候开始接收数据,就在传输时把信号线拉低)

数据位:5、6、7、8位,从数据的最低位开始传输
(数据位可变的原因:UART是一种低速总线,每多发一位都占用不少的时间(由传输波特率决定),所以可以根据传输数据的特点,采用不同位宽以节约数据传输的时间。)

校验位:可有可无,检查发送数据中1的个数,是包含校验位在内的个数。
偶校验位来说,如果一组给定数据位中1的个数是奇数,补一个bit为1,使得总的1的个数是偶数。
奇校验位来说,如果给定一组数据位中1的个数是奇数,补一个bit为0,使得总的1的个数是奇数。
在这里插入图片描述

停止位:1/1.5/2位的高电平。当发送完停止位之后,UART总线进入空闲

空闲位:1,无数据传输

三、波特率

1、定义

每秒钟传输的数据位数:bit/s
传输1bit所需时间:bit_width = 1/(baud rate)

clk=100 MHz,波特率=9600,T=10 ns
1s/9600 = 104166 ns,也就是传输1bit需要104166ns,也就是10416个时钟周期,所以需要对时钟进行分频

2、波特率和采样频率

两者是不同的概念,在数据的传输中,信号可能受到一些干扰而产生一些抖动(比如说电磁兼容性设计中的近端串扰),如果接收端只对这些信号进行一次采样,那么它有可能采样到的是不准确的数据,所以接收端在采样时,通常都要采样多次,然后通过处理获得准确的数据。(波特率是采样多次后得到的准确数据,采样数据可能会发生错误

16倍数据波特率的时钟:每个数据有16个时钟采样,取中间值

四、常见接口电平

1、TTL电平

晶体管-晶体管逻辑集成电路:Transistor-Transistor Logic

  • 低电平:0 ~ -5V
  • 高电平:0 ~ 5V
  • 输入高电平最小2V,输出高电平最小2.4V,典型值3.4V
  • 输入低电平最大0.8V,输出低电平最大0.4V,典型值0.2V

2、RS232(负逻辑)

  • 高电平:-3V~-15V
  • 低电平:+3~+15V

下面是传输数据01010101,从最低位开始传输
在这里插入图片描述

3、RS485

差分信号,可以抑制共模干扰,因此在恶劣的环境中拥有很好的抗干扰性,比较稳定

  • 高电平:+2 ~ 6V
  • 低电平:-2 ~ -6V

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

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

相关文章

数据驱动+AI引擎,为MarTech打开全新的想象空间

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 近年来,随着全球数字化、信息化进程不断提速,企业营销的战场也逐渐转移至线上。一方面,消费者行为的数字化使得企业营销活动更加依赖于线上数字营销;另一方面,包括…

Python3 字符串

Python3 字符串 字符串是 Python 中最常用的数据类型。我们可以使用引号( 或 " )来创建字符串。 创建字符串很简单,只要为变量分配一个值即可。例如: var1 Hello World! var2 "Runoob" Python 访问字符串中的值 Python 不支持单字符…

MySQL-CENTOS7下MySQL单实例安装

MySQL单实例安装 1 版本下载2 MySQL安装2.1 创建目录并解压2.2 安装数据库2.3 安装RPM包2.4 启动服务2.5 连接MYSQL 3 MYSQL卸载卸载4 FAQ 1 版本下载 mysql下载 选择对应的版本。我选择的是的8.0.31的版本。 2 MySQL安装 2.1 创建目录并解压 mkdir /mysql mkdir /mysql/s…

chatgpt智能提效职场办公-ppt怎么转pdf文件

作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!😄 要将PPT转为PDF文件,可以按照以下步骤操作: 1.打开PPT文件,点击“文件”菜单,选择“导出…

浅析商场智能导购系统功能与实施效益

商场智能导购系统是一种基于物联网技术和人工智能算法的解决方案,旨在提供商场内部的智能导购服务,为消费者提供个性化的购物导引和推荐,提升用户购物体验,增加商场的客流量和销售额。 商场智能导购系统的方案一般包括以下主要功能…

react中前端同学如何模拟使用后端接口操作数据?

为什么前端同学需要模拟后端数据 作为一个前端,在实现项目功能的时候,需要在前端写一个静态的json数据,进行测试。 项目中后端的接口往往是较晚才会出来,并且还要写接口文档,于是我们的前端的许多开发都要等到接口给…

pytest中的钩子函数:pytest_addoption(parser)

# python3 # Time : 2023/4/21 9:05 # Author : Jike_Ma # FileName: conftest.pyimport pytesthosts {"dev": "http://dev.com.cn","prod": "http://prod.com.cn","test": "http://test.com.cn" }# 注册一个…

使用WSL在Windows上安装Ubuntu

1. 清理环境 查看当前的wsl 状态&#xff0c;wsl --list 可以列出当前系统中已安装的子系统。 选择需要清理的系统&#xff0c;然后用 wsl --unregister <DistributionName> 即可完成卸载。 将 wsl 默认版本设置为 2&#xff1a; wsl --set-default-version 2 可以通…

taobao.item.carturl.get( 加购URL获取 )

&#xffe5;开放平台免费API可选用户授权 获取加购URL&#xff0c;支持添加商品到购物车 公共参数 请求地址: 公共请求参数: 公共响应参数: 点击获取key和secret 请求参数 请求示例 响应示例 异常示例

matlab笔记总结(4)

https://www.bilibili.com/video/BV1MA4y1d7so/?spm_id_from333.788&vd_source3ef6540f8473c7367625a53b7b77fd66 司守奎老师在B站的讲解视频 https://matlabacademy.mathworks.com/cn/details/matlab-onramp/gettingstarted MATLAB官方的入门之旅&#xff08;英文&…

ChatGPT探索系列之六:思考ChatGPT的未来发展趋势和挑战

文章目录 前言一、未来发展趋势1. ChatGPT重塑数据分析之道2. ChatGPT颠覆企业运用人工智能和机器学习的途径3. ChatGPT颠覆自动化商业流程4. ChatGPT引领企业决策迈向新纪元 二、ChatGPT掀开未来充满机遇和挑战的新篇章总结 前言 ChatGPT发展到目前&#xff0c;其实网上已经有…

如何用Python搭建HTTP服务器,并实现远程访问和下载?

Python是编程语言中的热门语言&#xff0c;具有语法简单、语句清晰的特点。如果你不擅长编程&#xff0c;学习Python是一个不错的选择&#xff0c;初学者在学习阶段可以较为轻松地理解编程对象和思维方法。对于小白用户来说,它具有强大且丰富的库,封装后可以轻松调用,因此也更受…

数学建模第一天:数学建模工具课之MATLAB的入门

目录 一、MATLAB的简介 二、Matlab基础知识 1. 变量 ①命名规则 ②特殊变量名 2、数学符号与函数调用 ①符号 ②数学函数 ③自定义函数 三、数组与矩阵 1、数组 ①创建数组 ②访问数组元素 ③数组运算 2、矩阵 ①定义 ②特殊矩阵 ③矩阵运算 四、控制流 …

pyecharts从入门到精通-地图专题GEO-世界地图和中国城市地图

文章目录 参考安装与查看pyecharts地图实现-Geo完成Geo地理坐标系实现。案例演示拓展-pyecharts中GEO源码 参考 官方文档:https://pyecharts.org/#/zh-cn/quickstart Python使用Pyecharts画Geo地图&#xff0c;如何显示具体地点名称 pyecharts世界地图用&#xff1a;国家中英文…

即使运行高优先级线程,低优先线程也能运行

仅仅因为一个线程具有较高的优先级&#xff0c;并不意味着其他低优先级的线程就不会得到机会运行。 这怎么理解&#xff1f; 有时候&#xff0c;我看到人们编写多线程代码&#xff0c;将一个线程的优先级置于另一个线程之上&#xff0c;他们认为这将防止优先级较低的线程干扰…

Qt编写网络摄像头推流(4路1080P主码流只占用0.2%CPU/极低延时极速响应)

一、前言说明 将从网络摄像头拉流过来的视频流重新推流出去&#xff0c;是目前一个很常规的做法&#xff0c;尤其是推流到流媒体服务中心&#xff0c;这样流媒体服务中心就把散落在各个区域的监控摄像头集中起来统一管理&#xff0c;同时提供对外一致的访问接口。很多时候不仅…

微信小程序开发的基础学习

回顾上篇内容 1、小程序核心理念&#xff1a; 在小程序里面&#xff0c;会把每一个标签看作一个矩阵&#xff0c;该矩阵的宽高会平行x轴、y轴 那么我们只需要知道该矩阵一个左上角的坐标&#xff0c;即可确定该矩阵的位置 2、题外话&#x1f9d0; &#xff08;1&#xff09…

字符串总结

一、最长公共前缀 1.方法一&#xff1a;横向扫描 class Solution { public:string longestCommonPrefix(vector<string>& strs) {if (!strs.size()) {return "";}string prefix strs[0];int count strs.size();for (int i 1; i < count; i) {prefix…

通信行业的企业如何与Synaptics建立EDI连接?

Synaptics 是一家全球领先的移动计算、通信和娱乐设备人机界面交互开发解决方案设计制造公司。该公司为大部份主要电脑及笔记本电脑公司提供触摸板&#xff0c;其中包括了华硕、宏碁、戴尔、惠普、索尼、东芝、Gateway、国际商业机器、联想集团与三星电子等。 Synaptics 推荐其…

【C++】模版初阶

现在我们学习C模版的基本知识&#xff0c;为以后学习STL打下一个坚实的基础 目录 一、泛型编程 二、模版 2.1 函数模版 2.1.1 函数模版的概念 2.1.2 函数模板的使用 2.1.3 函数模板的原理 2.1.4 函数模板的实例化 2.1.5 模板参数的匹配原则 2.2 类模版 2.2.1 类模版…