一、什么是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://www.toymoban.com/news/detail-818780.html
四、参考
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文章来源地址https://www.toymoban.com/news/detail-818780.html
到了这里,关于UART协议讲解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!