通信协议UART, I2C和SPI

1.什么是通信协议
白话点说,通信协议就是通信时候双方约定的规则。打个类比,就像你跟另外一个人交流,你们之间需要一种交流的约定,就是语言。要么都说中文,要么都说英文。通信协议就类似于硬件之间交流的语言。
2.串行通信和并行通信
串行就是数据一个接一个的发送;并行就是所有数据都同时发出。
UART, I2C和SPI三种通信协议都属于串口通信。
3.串行数据的传输方向
单工:
是指数据传输仅能沿一个方向,不能实现反向传输。
半双工:
是指数据传输可以沿两个方向,但不能同时进行传输。
全双工:
是指数据可以同时进行双向传输。
4.串行数据传输方式
同步通信和异步通信。
同步通信:
同步通信是指发送端和接收端必须使用同一时钟,是一种连续传送数据的通信方式。由于发送和接收的双方都采用同一时钟,这样接收方就可以通过时钟信号来确定每个信息位。

异步通信:异步通信不需要双方使用同一时钟,并且它是一种不连续的传输通信方式,一次通信只能传输一个字符数据(字符帧)。而字符帧之间的间隙可以是任意的。但由于不知道对方什么时候发送数据,所以发送方要在数据的开始后结束都要加一些辅助的信息,比如开始要有起始位,结束要有结束位等。

优缺点:步通信的通信效率比异步通信高,可以传输较大的数据量但对于时钟同步要求比较高,而异步通信不需要同步时钟,通信实现简单,设备相对简单,但是传输速率不高,某些通讯中还需要双方约定数据的传输速率,以便更好地同步。

5.UART协议
UART是异步串行通信的。利用UART协议传输数据时,需要两个数据引脚,一个用于传输数据的TX,另一个用于接收的RX。
使用方法如下:
在这里插入图片描述
6.I2C协议
I2C最常被应用于模块或者传感器之间的通信,因为I2C基于二根传输线,同步通信的半双工协议,而且协议也非常简单可靠。I2C使用两根传输线实现一个主设备与多个从设备,甚至是多个主设备与对应从设备之间的通信。 这两根通讯线一根为控制时钟线,称之为SCL,用于同步设备间的数据传输时钟; 另一根为数据线,称之为SDA,用于携带数据。理论上,一条I2C总线上能支持挂载128台设备。
在这里插入图片描述
7.SPI协议
SPI类似I2C也是同步通信的协议,但是全双工,支持数据的同时输出和输入。这两个特征使SPI的传输速率比UART和I2C都高,这对于像SD卡、或者屏幕等数据型模块来说,是非常具有优势的。
在这里插入图片描述
SPI支持一主多从的模式,但SPI也是三种协议中需要线最多的协议,一共需要4条信号线:
SCLK(串行时钟):功能说明,同步数据传输
MOSI(主进从进):功能说明,主机输出从机输入数据线
MISO(主进从出):功能说明,主机输入从机输出数据线
SS(从机选择):功能说明,丛集引脚设置为低电平
8.总结
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_46777053/article/details/113567594