Linux·UART协议

article/2025/9/17 12:17:45

目录

一、什么是UART?

二、UART的帧格式

2.1 为什么UART的传输需要起始位?

2.2 UART基本的数据形式

2.3 为什么UART的数据位可变?

三、UART的波特率

3.1 什么是波特率

3.2 如何换算波特率

3.3 波特率和采样频率是一样的吗?


一、什么是UART?

UART的全称是通用异步收发器(Universal Asynchronous Receiver/Transmitter)
Universal 通用性体现在UART使用范围广上,作为一个通用的接口协议,UART广泛的应用在各类MCU和SOC产品上。
Asynchronous 异步性体现在“不需要额外的时钟线进行数据的同步传输”即只要信号拉低,即可开始传送数据,而另一些通讯协议,需要引入时钟信号来进行操作,如AMBA,需要在时钟的上升沿发送数据
Receiver/Transmitter:收发器则更好理解,即一个数据的发送方和一个数据的接收方,也意味着在数字IC设计中需要分别设计Receiver和Transmitter

二、UART的帧格式

UART的一帧由起始位、数据位、校验位和停止位组成。数据逐位传输,如下图所示

2.1 为什么UART的传输需要起始位?

因为UART没有控制线,要让接收方知道什么时候开始接收数据,需要一些手段,UART数据的传输中,只有一根线,所以在发送数据之前,先发一位逻辑“0”作为数据发送的起始标志,接收方在空闲时,当检测到有一个低电平,则开始接逐位接收数据。

2.2 UART基本的数据形式

  • 默认无传输数据时,为高电平
  • 当信号拉低,传输线上的电平拉低,意味着开始进行数据传输
  • 紧接着起始位的是数据位,它可以是5、6、7或8位
  • UART的“校验位”紧挨着“数据位”,采用奇偶校验方式,根据设置,校验位可以存在也可以不存在
  • UART将停止位作为停止标志,是在数据位(没有校验位)和校验位(有校验位)之后发送1~2位的逻辑“1”高电平。当发送完停止位之后,UART总线进入空闲。

 

2.3 为什么UART的数据位可变?

因为UART是一种低速总线,每多发一位都占用不少的时间(由传输波特率决定),所以可以根据传输数据的特点,采用不同位宽以节约数据传输的时间

三、UART的波特率

如果从更高的level审视UART传输协议,如嵌入式开发者的角度,我们会发现,在使用具体的UART协议前,我们需要对发送端和接收端进行波特率的同步,以此来确保发射端的数据可以在接收端得到正确的采集。常用的波特率可以是300,1200,2400,9600,19200,38400,115200,这些数意味着什么呢?别着急,我们接下来要讨论这个内容。

3.1 什么是波特率

波特率等于每秒钟传输的数据位数,假如我们的全局时钟频率为100MHz,波特率设置为9600,那么意味着每秒该UART传输协议可以传输9600bits的数据,换句话说传输1比特需时间约为:10^9(ns)/9600=104166(ns)。

3.2 如何换算波特率

书接上文,时钟频率假如为100MHz,这意味着我们的时钟周期为10ns,因此10416个时钟周期我们就可以传输1bit数据,换言之我们需要一个大小为10416的分频电路来对100MHz时钟进行处理,因此在设计UART的过程中,我们需要使用分频电路依据波特率处理全局时钟,依据分频后的时钟节奏来发送数据和接收数据。

3.3 波特率和采样频率是一样的吗?

按照前文所说,好像波特率和采样频率是一个意思,即9600波特率对应接收端1s进行9600次采样,也对应发射端1s进行9600bit的发射,那么请读者思考,真的是这样吗?
答案其实是否定的
这是因为:在数据的传输中,信号可能受到一些干扰而产生一些抖动(比如说电磁兼容性设计中的近端串扰),如果接收端只对这些信号进行一次采样,那么它有可能采样到的是不准确的数据,所以接收端在采样时,通常都要采样多次,然后通过处理获得准确的数据,比如说,我们可以用多数表决的方法来在接收端进行多次采样,得到准确值,下图展现了16倍频采样的多数表决电路结构和它的真值表。

通过对真值表的观察,我们可以发现,使用三个与门与一个异或门,我们实现了多数表决的功能,(即有两bit为1即输出为1,两bit为0则输出为0)


原文链接:https://blog.csdn.net/weixin_43698385/article/details/124689958


http://chatgpt.dhexx.cn/article/I2uKpwll.shtml

相关文章

通信协议(一)——UART协议

1、知识点 基础部分参考:UART串口发送模块设计Verilog_发光中请勿扰的博客-CSDN博客_uart设计verilog (1)什么是串口(UART)? 串口作为常用的三大低速总线(UART、SPI、IIC)之一&#…

uart协议学习,从了解到入门,看这篇文章

uart协议从了解到入门 背景知识介绍:1、并行和串行的意思:2、串转并和并转串传输:3、单工、半双工、全双工区别: uart协议介绍1、uart简介2、uart通信3、uart工作原理 uart的优缺点 背景知识介绍: 1、并行和串行的意思…

FPGA实现uart协议

简介 使用verilog实现uart协议,能够和pc进行通信,实现串口回环功能,各参数设置如下: 波特率:115200数据位:8停止位:任意校验位:无 系统时钟为50M,115200波特率下&…

协议篇之UART协议

协议篇之UART协议 一、写在前面二、UART协议简介三、UART协议数据帧结构3.1 UART发送过程3.2 UART接收过程3.3 UART传输速率 四、UART收发模块设计4.1 UART接收模块设计4.2 UART发送模块设计4.3 UART回环顶层模块4.4 UART回环上板验证 五、写在最后 一、写在前面 由于设计需要&…

UART通信协议

UART通信协议 UART ( universal asynchronous receiver-transmitter)是一种采用异步串行通信方式的通用异步收发传输器;它在发送数据时将并行数据转换成串行数据来传输,在接收数据时将接收到的串行数据转换成并行数据。UART串口通信需要两根信号线来实现…

UART协议讲解

UART协议讲解 一、什么是UART协议二、通信方式的分类1、串行通信(一)、同步通信和异步通信(二)、单工和半双工以及全双工 2、并行通信 三、UART协议具体介绍1、UART数据传输的格式2、UART电平标准 三、UART的优缺点四、参考 一、什…

【数字IC】深入浅出理解UART协议

深入浅出理解UART协议 一、什么是UART?二、UART的帧格式2.1 为什么UART的传输需要起始位?2.2 UART基本的数据形式2.3 为什么UART的数据位可变? 三、UART的波特率3.1 什么是波特率3.2 如何换算波特率3.3 波特率和采样频率是一样的吗&#xff1…

最详细的 UART协议 分析在这里!

1. 协议基础 1.1. 协议简介 UART是“Universal Asynchronous Receiver/Transmitter”,通用异步收发器的缩写。在19世纪60年代,为了解决计算机和电传打字机通信,Bell发明了UART协议,将并行输入信号转换成串行输出信号。因为U…

UART协议

UART协议 简介 UART是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是设备间进行异步通信的关键模块。UART负责处理数据总线和串行口之间的串/并、并/串转换,并规定了帧…

【云域网络社区】云域网络社区APP

【软件名称】云域社区 【功能介绍】资源分享,游戏交流交友 【下载地址】http://sss.shmmec.com/apk.apk 图片

怎么划分领域、子域、核心域、通用域和支撑域

怎么划分领域、子域、核心域、通用域和支撑域 如何理解领域和子域?什么是领域什么是子域怎么划分领域和子域如何理解核心域、通用域和支撑域?为什么要划分核心域、通用域和支撑域 总结 DDD 的知识体系提出了很多的名词,像:领域、子…

网络安全-域服务器(二)

域服务器: 域服务器(一):网络安全-域(一)_IT之一小佬的博客-CSDN博客域服务器(二):网络安全-域服务器(二)_IT之一小佬的博客-CSDN博客 域 11.O…

网课管理系统

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 3. 功能简介 用户中心 1.1用户注册:用户需要注册才能登陆进入web 1.2用户登录:通过判断匹配来进…

如何搭建域服务器

实验名称:如何搭建域服务器 实验环境:wind2003*2 实验过程: 由于Windows Server 2003在默认的安装过程中DNS是不被安装的,所以我们需要手动去添加, 添加方法如下:“开始—设置—控制面板—添加删除程序”&#xff…

搭建域环境(win)

目录 常见域环境是用:win2012 win7 win2003 本blog环境:Windows Server 2012 R2 and Win2008 1.Window Server 2012 R2 服务器配置 1)变更计算机名DC(用于存储活动目录数据库的计算机) 2)设置服务器…

网络教学管理系统

1、项目介绍 网络教学管理系统拥有三种角色 管理员:专业管理、班级管理、学生教师管理、公告管理、留言板管理、学习资料管理、教学视频管理、试题管理等 教师:系统留言、发布作业等 学生:可以查看作业视频、登录注册、下载作业资料等 2、…

域控-笔记二(域权限,域组,域管理,Kerberso 协议)

文章目录 一. 域环境搭建1.1 添加AD功能1.2 安装1.3 部署 二. 如何加入域2.1 加入域2.2 域中主机登录2.3 退出域2.4 添加域用户 三. 域权限3.1 A-G-DL-P策略3.2 组几个比较重要的域本地组几个比较重要的全局组、通用组的权限 四. 域管理4.1 域用户账户的管理4.2 组的管理4.3 组…

中职网络搭建 域用户密码设置

中职网络搭建 密码设置 域密码策略: 进入域控制器组策略(组策略管理) 计算机配置–Windows设置–安全设置–账户策略–密码策略 “密码必须符合复杂性要求”:密码设置必须要有数字、大写字母、小写字母、字符,四种中…

第一讲 数域

1. 引入 数是数学的一个最基本概念, 回顾一下我们曾经学习过的数的发展过程: (1) 代数性质: 关于数的加, 减, 乘 , 除等运算的性质称为数的代数性质. (2) 数集: 数的集合简称数集. 常见的数集: 复试C; 实数R;有理数Q等等. 它们有一个共同的性质就是对加减乘除运算封闭. 2. 数…

域控知识与安全02:初始访问

初始访问 前言信息收集1.Nmap命令参数使用方法 2.Metasploit命令参数使用方法 3.地址解析协议命令参数使用方法 4.ICMP5.Nbtscan命令参数使用方法 6.telnet使用方法 暴力破解1.Hydra命令参数使用方法 2.Hashcat常用参数使用方法 总结系列相关内容 前言 攻击者首先通过初始访问入…