文章目录
- 总述
- 1.SPI接口
- 2. SPI工作模式
- 3. SPI通信时序
- 4. SPI协议 对比 UART协议(上一篇文章刚介绍过uart协议,这里来对比一下)
总述
SPI(Serial Peripheral Interface)是一种高速的、全双工、同步的串行通信总线;
全双工体现在主从设备间通信时发送数据和接收数据是单独的数据线,能够同时接收和发送数据;
同步体现在主从设备间有时钟线,主设备提供时钟信号通常用于在微控制器和外部设备之间进行通信。
SPI通常由一个主设备(例如微控制器)和一个或多个从设备(例如传感器、存储器等)组成。Spi分为Standard SPI、Dual SPI和Queued SPI,这里主要介绍一下标准SPI。
1.SPI接口
(1)SCLK:时钟线;
(2)MOSI(master output slave input):主设备输出,从设备输入,单向传输;
(3)MISO(master input slave output):主设备输入,从设备输出,单向传输;
(4)CS(chipselect):片选信号,用于主片选中从片;
2. SPI工作模式
(1)相位(CPHA):表示设备从数据线采样的时刻;
(2)极性(CPOL):表示时钟线空闲时的状态;
关于模式选择:
(1)实际的电路中,SPI协议中的主设备就是主控,从设备是外设;
(2)主控的SPI控制中,模式是可以配置的,但是从设备的模式是在出厂的时候就定死了;
总结:查阅外设的数据手册,知道外设的SPI模式,主设备去适配从设备的模式;
3. SPI通信时序
4. SPI协议 对比 UART协议(上一篇文章刚介绍过uart协议,这里来对比一下)
- 通信模式:
uart和spi都是全双工通信,发送数据和接收数据有独立的通道,互不影响。 - 通信线数量:
SPI通常需要四根线(SCLK、MOSI、MISO、CS),但也可以通过使用更多数据线来实现更高的速度(如Quad SPI)。
UART只需要两根线(TX和RX)来进行数据传输。 - 时钟同步:
在SPI中,数据传输是由时钟信号同步的,因此通信双方需要共享一个时钟源。
在UART中,数据传输是异步的,没有共享的时钟信号,因此通信双方使用各自的时钟源,并且需要通过波特率(波特率)来协调数据传输速度。 - 速度:
由于SPI是同步通信,因此可以实现较高的数据传输速率,特别是在Quad SPI等高速模式下。
UART通常具有较低的最大传输速率,通常受限于波特率的选择和串口控制器的性能。 - 应用场景:
SPI通常用于与外部存储器(如Flash存储器)、传感器、显示器等外围设备的高速通信。
UART通常用于与计算机、嵌入式设备、传感器等进行简单的串行通信,例如调试信息输出、数据传输等。