串口通信UART、I2C、SPI

串口通信UART、I2C、SPI

文章目录

1.SPI

​ SPI(Serial Peripheral Interface,串行外设接口),是Motorola公司提出的一种同步串行数据传输标准。

首先讲讲同步的概念,

串口通信UART、I2C、SPI

​ 上图中,左边的为主机,右边的为从机。SPI接口经常被称为4线串行总线,以主从方式输出,正如上图中,主、从机由四条数据线相连。

​ 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。

1.四条数据线的介绍:

(1).SCLK为串行时钟,用来同步数据传输,由主机输出;

(2).MOSI为主机输出从机输入数据线,通常优先传输MSB;

(3).MISO为主机输入从机输出数据线,通常优先传输LSB;

(4).SS为片选线,低电平有效,由主机输出,简而言之是通过选定片选线来选定从机。

2.数据传输:

串口通信UART、I2C、SPI

​ 正如上图中,主机通过MOSI线发送1位数据给从机接收,从机则通过MISO发送一位数据给主机接收(通过移位寄存器实现),主、从二者形成循环,当寄存器中的内容全部移除时,相当于完成了两个移位寄存器之间内容的交换。

3.时钟极性和时钟相位

​ 时钟极性(CPOL或UCCKPL),时钟相位(CPHA或UCCKPH)。

时钟极性:时钟空闲时所处的极性。

时钟相位:设置读取数据和发送数据的时钟沿(上升、下降沿同时也)。

4.优缺点:

优:

​ (1).支持全双工(即主、从数据可同时进行数据传输,互不干扰)

​ (2).操作相对简单

​ (3).数据的传输效率较高

缺:

​ (1).需要占用主机较多的I/O口线,没个从机都需要一根。

​ (2).只支持单个主机

2.I2C

​ I2C包括时钟线(SCL)和数据线(SDA)。这两条线都是漏极开路或者集电极开路结构,使用时需要外加上拉电阻,可以挂载多个设备(如下图),每个设备都有属于自己的地址,主机通过选择不同的地址来选择不同的设备。

(此处因为博主对模、数电的知识还未彻底掌握,所以就不介绍漏极开路和集电极开路了,总而言之,开漏输出只能输出低,或者关闭输出,因此开漏输出总是要配一个上拉电阻使用。)

串口通信UART、I2C、SPI

1.一般操作:

​ 主机给从机发送数据

​ 1.发送开始条件START和从机地址;

​ 2.发送数据;

​ 3.发送停止条件STOP结束。

​ 主机从从机读取数据

​ 1.发送开始条件START和从机地址;

​ 2.发送要读取的地址;

​ 3.读取数据;

​ 4.发送停止条件STOP结束。

2.开始和结束条件:

​ 当SCL保持为高电平时,SDA从高电平变成低电平,即为START。

​ 当SCL保持为低电平时,SDA从低电平变成高电平,即为STOP。

​ 当读取数据时,发送完发送开始条件START和从机地址后,不发送STOP,则可以重复开始读取数据。 数据传输时先传MSB。接收者在每个字节后的第9个时钟周期将SDA保持低电平进行确认数据接收成功;而在第9个时钟周期将SDA保持高电平表示数据传输出错,或者主机不再想接收数据。

3.优缺点:

​ 优点:
​ (1).只使用两条信号线;
​ (2).支持多主机多从机;
​ (3).有应答机制。
​ 缺点:
​ (1).速率比SPI慢。

3.UART通信

​ UART是一种异步传输接口,不需要时钟线,通过起始位和停止位及波特率进行数据识别。

​ 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。

串口通信UART、I2C、SPI

​ 如图:RX(接收数据)、TX(发出数据),一个设备的TX需要与另一个设备的RX相连,同样的一个设备的RX要与另一个设备的TX相连,完成数据的接收与发送。

1.数据格式:

(1)起始位
数据线空闲状态为高电平,要发送数据时将其拉低一个时钟周期表示起始位。
(2)数据位
使用校验位时,数据位可以有5~8位,一般为8位(保证ASCII值的正确性),如果不使用校验位,数据位可以达9位。
(3)校验位
奇偶校验,保证包括校验位和数据位在内的所有位中1的个数为奇数或偶数。
(4)停止位
为了表示数据包的结束,发送端需要将信号线从低电平变为高电平,并至少保持2个时钟周期。

2.优缺点:

优点:

(1).只使用两个信号线

(2).不需要时钟信号

缺点:

在内的所有位中1的个数为奇数或偶数。
(4)停止位
为了表示数据包的结束,发送端需要将信号线从低电平变为高电平,并至少保持2个时钟周期。

2.优缺点:

优点:

(1).只使用两个信号线

(2).不需要时钟信号

缺点:

​ 传输速率比较低。

上一篇:LCD240x320 spi接口屏幕


下一篇:SPI协议