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

news2024/9/23 9:28:12

文章目录

  • 前言
  • 一、简介
    • 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
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/447221.html

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

相关文章

Albert-Z-Guo/Deep-Reinforcement-Stock-Trading

深加固股票交易 该项目打算在投资组合管理中利用深度强化学习。框架结构的灵感来自Q-Trader。代理人的奖励是在每个行动步骤评估的未实现净利润(意味着股票仍在投资组合中且尚未兑现)。对于每一步的不作为,投资组合中都会增加负惩罚&#xf…

USMART 函数错误解决方法

身为电子工程师,看了马斯克的星舰飞船,真是太帅了; 深知一个良好的测试环境对产品性能的影响,对工作效率的提升。 小资源MCU调试代码的工具USMART 使用起来。 移植的文章网上有很多,但是对移植过程中使用错误的文章…

mybatisPlus拦截器使用demo

概述 顾名思义,就是一个拦截器,和springmvc的拦截器,servlet的过滤器差不多,就是在执行前拦了一道,里面可以做一些自己的事情。 平时用的mybatisPlus较多,直接以com.baomidou.mybatisplus.extension.plug…

VUE中使用element-china-area-data

使用element-china-area-data的中国省市区级联数据编写城市选择器。以下为解决效果图: (1)安装 npm install element-china-area-data -S (2)引入 import { regionData, CodeToText, TextToCode } from ‘element-ch…

LDO系列--LDO并联扩容

1、不能简单并联(无法电流均衡) 两个LDO的内部的带隙基准源(参考电压),FET的特性,以及误差放大器的噪声不同(如失调电压),实际LDO输出的目标电压依旧是有差异的。 这就导致了,LDO-High的目标输出电压高一些…

STM32F103基于标准库+I2C SSD1306仿数码管RTC时钟显示

STM32F103基于标准库I2C SSD1306仿数码管RTC时钟显示 ✨申明:本文章仅发表在CSDN网站,任何其他网站,未注明来源,见此内容均为盗链和爬取。 🍁对于文中所提供的相关资源链接将作不定期更换。 📺显示效果&a…

UWB芯片DW300之CRC模式介绍及代码实现

SPI CRC模式 当启用SPI CRC模式时,可以为SPI传输提供循环冗余校验序列的额外保护。这种操作模式在默认情况下是禁用的,但可以通过SYS_CFG寄存器中的SPI_CRCEN位启用(和禁用)。 虽然SPI CRC检查在主机微处理器必须为每个SPI写入和读取事务计算CRC的附加软件开销方面有缺点,但…

SOFA Weekly|SOFARPC 5.10.0 版本发布、SOFA 五周年回顾、Layotto 社区会议回顾与预告...

SOFA WEEKLY | 每周精选 筛选每周精华问答,同步开源进展 欢迎留言互动~ SOFAStack(Scalable Open Financial Architecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件&am…

【Mysql】分库分表

【Mysql】分库分表 文章目录 【Mysql】分库分表1. 介绍2. 拆分策略2.1 垂直拆分2.1.1 垂直分库2.1.2 垂直分表 2.2 水平拆分2.2.1 水平分库2.2.2 水平分表 3. MyCat3.1 概述 1. 介绍 采用单数据库进行数据存储存在以下瓶颈: IO瓶颈:热点数据太多&#x…

项目管理必备!20个实用技巧全掌握!

即使在最完美的条件下,管理一个项目也是很困难的。 ​项目管理的成败好坏与优秀项目团队密不可分的,建设一个好的团队将会更团结、更坚强、更具有竞争力, 更能适应无限变化的环境。 ​不幸的是,还是有很多项目经理实质上没有没有总结出自己思维方法和运…

进程状态

理念上的状态 新建 子面意思运行 task_struct在运行队列中排队,就叫做运行态阻塞 等待非CPU资源就绪挂起 当内存不足的时候,OS通过适当的置换进程的代码和数据到磁盘,进程的状态就叫做挂起退出 子面意思 实际上的状态 …

ARM Coresight 及 DS-5 介绍 5 - DS-5 断点设置及常用Debug 命令

文章目录 1.1 DS-5 Debug 方法梳理1.2.1 DS-5 设置断点 Debug1.2.2 DS-5 常用 Debug 命令 1.1 DS-5 Debug 方法梳理 通常在调试过程中需要打断点来进行单步调试,这个时候可以按照下面步骤来进行: 在使用 DS-5 Debug 之前需要先 load 所编译的 elf 文件&…

【css】使用css实现提示框各种弹出效果。

简言 最近工作编写页面时,需要有一个提示框从下到上弹出的效果。 冥想了一下,实现了出来。 记录下实现思路。 实现思路 实现步骤如下: 编写样式。 首页要有承载内容的容器(box)。外层在套一个包装盒子(用来进行定位…

超详细的ubuntu安装opencv2.0//test ok

目录 1. 首先确保在Ubuntu上已经安装了cmake和make 1.1 安装make 1.2 安装cmake 2 安装依赖环境 3 下载opencv源码 4 编译源码并安装 4.1 进入opencv源码目录中,新建build文件夹 4.2 进入build文件夹,打开终端使用cmake生成makefile 4.3 安装ope…

Windows环境下实现设计模式——迭代器模式(JAVA版)

我是荔园微风,作为一名在IT界整整25年的老兵,今天总结一下Windows环境下如何编程实现迭代器模式(设计模式)。 不知道大家有没有这样的感觉,看了一大堆编程和设计模式的书,却还是很难理解设计模式&#xff…

轻松掌握k8s的kubectl使用命令行操作Ingress知识点03

1、Ingress将所有Service统一网关入口 底层也是使用了nginx,所以使用Ingress才是整个项目的统一入口。 官网地址:https://kubernetes.github.io/ingress-nginx/ 1、安装 先下载安装文件 wget https://raw.githubusercontent.com/kubernetes/ingress-…

HTB-Tenet

HTB-Tenet 信息收集80端口/users.txt目录/wordpress/wp-login.php tenet.htb 立足www-data -> neilneil -> root 信息收集 80端口 apache 2.4.49存在的exploit。 目录扫描 /users.txt目录 /wordpress/wp-login.php 在Go to Tenet超链接会出现tenet.htb。 添加至hosts再…

【Linux基础IO之 内存文件操作】

目录: 前言一、引入C语言中的文件操作系统文件操作open 位图权限close、write、readlseek C语言中的文件操作函数与系统文件操作函数的联系 三、文件描述符1.文件描述符是什么2.文件缓冲区再谈重定向 四、文件缓冲区分类语言级缓冲区为什么要有两个缓冲区 五、仿写c…

如何选择CDN加速平台?

现如今全球CDN市场规模逐年攀升,在2017年全球CDN市场规模约为75亿美元,到2021年增长到200亿美元左右。我国CDN行业同样保持高速发展,自2017年的135亿元增长到2022年的300亿元左右。但是国内的CDN市场规模仅为全球市场的15%-20%,海外CDN市场空间巨大。 接…

每日学术速递4.21

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Pretrained Language Models as Visual Planners for Human Assistance 标题:预训练语言模型作为人工协助的视觉规划器 作者:Dhruvesh Patel, Hamid Eghbal…