UART通信总线

什么是总线协议(通信协议):

总线其实就是两个模块之间通信的线路
协议是遵循的规则
总线协议就是两个模块在通信线路上传输信息需要遵守的规则,双方按照协议来收发信息


总线本质就是一些导线或者电线

作用:用于在计算机不同部件之间去传输数据或者信息。

总线传输本质是传输一些高低电平的信号(即电信号)

通信:用于不同计算机之间进行数据或信息交互的时候使用


目录

UART 

并行和串行

单工和双工

波特率

UART帧格式

硬件连接

同步通信和异步通信

UART控制器


UART 

Universal Asynchronous Receiver Transmitter 即通用异步收发器,是一种通用的串行异步通信总线。该总线有两条数据线,可以实现全双工的发送和接收。在嵌入式系统中常用于主机与辅助设备之间的通信。


UATR:是一种总线协议/通信协议

串口协议(UART):--》点对点通信(只有收发双方)


并行和串行

并行通信 (八个位同时发送)

UART通信总线_第1张图片

串行通信(八个位按顺序一个一个发送)

UART通信总线_第2张图片


单工和双工

单工: 数据传输只支持数据在一个方向上传输

UART通信总线_第3张图片

半双工: 允许数据在两个方向上传输,但是,在某一时刻只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;

UART通信总线_第4张图片

全双工: 允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。

UART通信总线_第5张图片


只有一条数据线一般是半双工(如iic),如果有两条数据线一般是全双工(如串口、SPI)


波特率

 波特率用于描述UART通信时的通信速度,其单位为bps(bit per second)即每秒钟传送的bit的数量

 波特率 每秒钟传输的码元

 比特率 每秒钟传送的二进制(bit)的数据


如果发送方发送01或 0011(时序图时一样的)

接收方如果确定是哪一个呢--》通过掐时间(即波特率:规定每一秒钟发送多少个数据)


UART帧格式

UART通信总线_第6张图片

串口协议规定:数据线在空闲时为高电平

此规定决定了串口收发数据时起始位一般为0,否则区分不了什么时候为数据位的开始。

串口协议规定:发送数据时一般先发低位再发高位

串口一次可以发5-8位(只是我们习惯性认为是8位,因为我们学习时,遇到的基本都是8位)

串口一次最多只能发送一个字节(为什么这么规定:防止累积误差的发生)

如果想要发送10个字节,必须得是一个字节一个字节发送。

前一个字节到停止位后再去发起始位,重复这个过程。


硬件连接

 UART通信总线_第7张图片


同步通信和异步通信

同步通信 : 带时钟同步信号传输。

    -SPI,IIC通信接口

异步通信:不带时钟同步信号。

    -UART(通用异步收发器),单总线


UART控制器

一般情况下处理器中都会集成UART控制器

我们使用UART进行通信时候只需对其内部的相关寄存器进行设置即可UART通信总线_第8张图片

串口控制器本质就是一个硬件电路 里面就有自己发送器和接收器 


我们如何去控制外围设备呢?

通过对内部的相关寄存器进行设置即可


UART存在的问题

电气接口不统一

  • UART只是对信号的时序进行了定义,而未定义接口的电气特性;
  • UART通信时一般直接使用处理器使用的电平,即TTL电平,但不同的处理器使用的电平存在差异,所以不同的而处理器使用uart通信时一般不能直接相连;
  • UART没有规定不同器件连接时连接器的标准,所以不同器件之间通过UART通信时连接很不方便。

抗干扰能力差

  • UART一般直接使用TTL信号来表示0和1,但TTL信号的抗干扰能力差,数据在传输过程中很容易出错。

通信距离短:

  • 因为TTL信号的抗干扰能力较差,所以其通信距离很短,一般只能用于一个电路板上的两个不同芯片之间的通信。

如何解决这一问题

RS485/RS232通信协议并不是单独协议,只是电气层的协议,依赖于串口。

RS232、RS485电气层/物理层协议--》依赖于串口,收发器还是串口,编程时还是用UART

在串口后接模块RS232、RS485:提高抗干扰能力、提高传输距离、提高传输速度

你可能感兴趣的:(通信协议,stm32,单片机,网络)