UART协议讲解

一、什么是UART协议

UART全称是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),它通常称作UART,是一种异步收发传输器,是设备间进行异步通信的关键模块。UART负责处理数据总线和串行口之间的串/并、并/串转换,并规定了帧格式;通信双方只要采用相同的帧格式和波特率,就能在未共享时钟信号的情况下,仅用两根信号线(RX 和TX)就可以完成通信过程,因此也称为异步串行通信

UART它可以实现全双工传输和接收。
我们现在可以大概了解什么是UART协议了,那我们下面就应该来详细了解一下它,在这个之前我们先了解一下通信方式的分类,它们是怎样分类的。

二、通信方式的分类

通信方式是指通信双方之间的工作方式或信号传输方式。
在这里插入图片描述

1、串行通信

串行通信我的理解就是它利用一条传输线将资料一位位地顺序传送。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。也就是说串行通信它就是只有一个传输线,上面的数据是一个一个通过这个线来传输的。
在这里插入图片描述

根据通讯的数据同步方式,又分为同步和异步两种。可以根据通讯过程中是否有使用到时钟信号进行简单的区分。

(一)、同步通信和异步通信

同步通信:
在同步通讯中,收发设备双方会使用一根信号线表示时钟信号,在时钟信号的驱动下双方进行协调,同步数据。通讯中通常双方会统一规定在时钟信号的上升沿或下降沿对数据线进行采样。

异步通信:
在异步通讯中,不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些同步用的信号位,或者把主体数据进行打包,以数据帧的格式传输数据。例如规定由起始位、数据位、奇偶校验位、停止位等。
某些通讯中还需要双方约定数据的传输速率,以便更好地同步 。波特率(bps)是衡量数据传送速率的指标。

(二)、单工和半双工以及全双工

串行通信又称为点对点通信,对于点对点之间的通信,根据数据的传输方向与时间关系,又可分为单工通信、半双工通信及全双工通信三种方式。
单工方式:
只允许数据按照一个固定的方向传送,在任何时刻都只能进行一个方向的通信,一个设备固定为发送设备,一个设备固定为接收设备。

半双工方式:
两个设备之间可以收发数据,但是不能在同一时刻进行,每次只能有一个设备发送,另一个站接收。

全双工方式:
在同一时刻,两个设备之间可以同时进行发送和接收数据。

打个比方,单工的这种模式就是,假如说有两个人,其中一个人A 和另一个人B要进行通信,A只能打电话找B,B只能接电话。而B他假如有事的话也只能等着A给他打电话,他不能打打电话给A;也就是说A只能发送数据,B只能接收数据。半双工就是说A他既可以打电话也可以接电话,B也是既可以打电话也可以接电话,但是呢;这两个过程不能同时进行,就是A打电话给B,B接A的电话,这个时间,B是不可以给A打电话的,必须得等到这个过程结束才可以。全双工模式那我们就很好理解了,就是A在打电话的同时还能接B的电话,B在接A电话时还能给A打电话,也就是说它们可以同时进行了;全双工和半双工的区别就是可不可以同时发送和接收数据。

2、并行通信

**并行通信:**利用多条传输线将一个数据的各位同时传送。
在这里插入图片描述

三、UART协议具体介绍

1、UART数据传输的格式

在这里插入图片描述
在这里插入图片描述

**起始位:**UART数据传输线在空闲状态时时保持高电平。当主机先发出一个逻辑”0”的信号时,表示传输数据的开始。

数据位:可以选择的值有5,6,7,8这四个值,可以传输这么多个值为0或者1的bit位。这个参数最好为8,因为如果此值为其他的值时当你传输的是ASCII值时一般解析肯定会出问题。理由很简单,一个ASCII字符值为8位,如果一帧的数据位为7,那么还有一位就是不确定的值,这样就会出错。

校验位:在串口通信中一种简单的检错方式。有下面四种检错方式:偶校验、奇校验、高校验和低校验。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用1bit确保传输的数据有偶个或者奇个逻辑高位。
奇偶校验位:
  数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。校验位其实是调整个数,串口校验分几种方式:
在这里插入图片描述
停止位:
  它是一个字符数据的结束标志。可以是
1位、1.5位、2位
的高电平。 由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备之间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟的机会。停止位个数越多,数据传输越稳定,但是数据传输速度也越慢。

数据传输速率
数据的传输速率用波特率表示,即每秒钟传输的的二进制位数。每秒传输的字符数乘以位数即为波特率。只要传输的信号是二进制的,波特率与比特率的概念就是相同的。

波特率和比特率的区别
1、波特率就是每秒传输多少符号
2、比特率就是每秒传输多少比特。
二进制一个符号所含信息量为1比特,因此二进制下波特率=比特率。 计算机处理的都是二进制数,在这个环境下波特率和比特率都一样。

2、UART电平标准

UART使用标准的TTL/CMOS逻辑电平(0-5v,0-3.3v,0-2.5v或0-1.8v)来表示数据,1表示高电平,0表示低电平。为了提高抗干扰能力、提高传输的距离,通常也会TTL/CMOS逻辑电平转换为RS-232逻辑电平,3-15表示0,-3~-15V表示1。

举个例子,对于传输数据0x55,即二进制的01010101,RS232和TTL的区别如下:
在这里插入图片描述

三、UART的优缺点

优点:
1、通信只需要两条数据线。
2、无需时钟信号。
3、有奇偶校验位,方便通信的差错检查。
4、只需要接收端和发送端设置好数据包结构,即可稳定通信。
缺点:
1、传输速率较低。
2、接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
3、传输距离有限,数据帧最大支持9位数据。

四、参考

https://blog.csdn.net/Rocher_22/article/details/116590629
https://blog.csdn.net/ybhuangfugui/article/details/109465401
https://www.elecfans.com/d/1851379.html
https://blog.csdn.net/qq_21438461/article/details/125663245
https://blog.csdn.net/zxc126534/article/details/124173207

  • 32
    点赞
  • 206
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一讲:开发板和软件的操作使用 1、 介绍配件。 2、 安装软件(ICC AVR 和AVR STUDIO)及其使用,包括新建工程、程序下载,仿真调试;整板测试;板上资源。 3、 着重介绍一下USB接口的仿真器。 第二讲:AVR单片机的概述和C语言的基础知识 1、 AVR单片机的概述包括它的优点、片上资源。 2、 C语言的基础包括电平特性、2进制与16进制的表示及转换、二进制数的逻辑运算,数据类型,运算符。 3、 着重讲一下特有的BIT()操作,C中的各种语句。 4、 介绍一下AVR单片机IO口的配置。 第三讲:点亮发光二极管、驱动蜂鸣器、继电器 1、首先讲解一下原理图上开关电路、复位电路、时钟电路; 2、讲解573工作原理, 3、首先点亮一个发光二极管,然后让一个二极管亮灭变化。 4、编写函数证明573的工作原理:锁住后不导通就不能再更新数据。 5、编写延时函数,软件仿真查看延时的精确时间 6、子函数的编写(分带形参和不带形参)。 7、编写流水灯函数。 8、蜂鸣器,继电器的工作原理并编写程序。 第四讲:数码管工作原理 1、 共阴共阳数码管内部结构,显示原理。 2、 用数字万用表标定数码管的段选和位选 3、 编写程序使1个数码管上显示数字 4、 编写程序在6个数码管上滚动显示数字 5、 重点讲解动态显示,保持时间,以及扫描频率对闪烁和亮暗程度的影响。 第五讲:键盘检测原理(比较复杂) 1、 键盘作用,检测原理,如何消抖,独立键盘检测程序编写。 2、 矩阵键盘检测程序编写,涉及到返回值函数调用。 第六讲:1602液晶的使用 1、 看手册,管脚、写指令和数据、时序图。 2、 编写程序,显示光标 3、 编写程序显示字, 4、 编写程序,滚动显示字符 第七讲:中断、定时器的原理和应用(比较复杂) 1、 中断的概念,AVR单片机的中断 2、 定时/计数器1几种模式的寄存器配置 3、 定时器1普通模式下实现秒表 4、 CTC模式输出方波 5、 快速PWM模式输出PWM信号 6、 相位修正PWM模式输出PWM信号 第八讲:AD、DA简介及其应用 1、 AD简介,AVR内部AD寄存器设置 2、 编写程序控制AD读写电位器输出的模拟电压 3、 SPI串行通信简介 4、 DA简介,AD5300时序图 5、 编写程序控制DA输出模拟电压使发光二极管亮度变化 第九讲:TWI(IIC) 1、 TWI(IIC)协议简介 2、 AVR单片机内部TWI寄存器简介,操作流程 3、 具有IIC协议的数字电位器芯片AD5161的简介 4、 编写程序用独立键盘控制AD5161输出不同的阻值 第十讲:异步串口UART的简介和程序的编写 1、 UART简介 2、 AVR单片机内部与UART相关的寄存器的配置 3、 编写程序控制AVR单片机和电脑进行通信 4、 讲解串行通信时数字和字符之间的区别 第十一讲:PS2键盘、DS1302的工作原理和程序的编写 1、 AVR单片机外部中断的介绍 2、 PS2键盘的工作原理 3、 编写程序读取PS2键盘的按键值并在1602液晶上显示 4、 DS1302的工作原理 5、 编写程序控制1302工作并在1602液晶上显示时间

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值