SPI总线

SPI总线


一 SPI简介

SPI全称为Serial Peripheral Interface即串行总线接口,是一种高速的,全双工,同步的通信总线。SPI以主从方式进行工作,一主多从。SPI设备共有的线为:

  • SDI (Serial Data In)串行数据输入
  • SDO (Serial Data Out)串行数据输出
  • SCLK (Serial Clock)时钟信号,由主设备控制
  • CS (Chip Select)片选信号,由主设备控制。

二 SPI总线的特点

1.典型特征
  • 全双工、高速、同步、非差分、总线、主从通信
2.优点
  • 支持全双工
  • 通信方式简单
  • 数据传输速率高
3.缺点
  • 无流控
  • 非应答(可靠性较低)
流控制含义:

数据在传输过程中容易出现数据丢失的现象,例如:两台计算机通过串口传输数据时,或者台式机与单片机之间进行通信时,可能由于两端计算机的处理速度不同,出现接收端的数据缓冲区已满,而发送端依然继续发送数据,则导致数据丢失。流控制的出现就是为了解决这种数据丢失的问题。
当接收端的数据缓冲区已满,无法处理数据来时,就发出”不再接收”的信号,发送端则停止发送,直到发送端收到”可以继续发送”的信号再发送数据。计算机中常用的两种流控制分别是硬件流控制(RTS/CTS、DTR/DSR等)和软件流控制(XON/XOFF)。

三 SPI通讯模式

1.时钟极性(CPOL)

时钟极性CPOL是用来配置SCLK的空闲态或者有效态。

  • CPOL=0,表示当SCLK=0时处于空闲态,当SCLK=1时处于有效态。
  • CPOL=1,表示当SCLK=1时处于空闲态,当SCLK=0时处于有效态。

2.时钟相位(CPHA)

时钟相位CPHA是用来配置数据采样是在第几个边沿。

  • CPHA=0,表示数据采样是在第1个边沿,数据发送在第2个边沿。
  • CPHA=1,表示数据采样是在第2个边沿,数据发送在第1个边沿。

3.MSB first和LSB first

SPI为串行协议,其涉及到是先传高位MSB(Most Significant Bit)还是先传低位LSB(Least Significant Bit)。

4.模式0-3

  • Mode 0 CPOL=0, CPHA=0
  • Mode 1 CPOL=0, CPHA=1
  • Mode 2 CPOL=1, CPHA=0
  • Mode 3 CPOL=1, CPHA=1

四 备注

  • 有的SPI具有CRC校验功能,即发送完数据后会发送CRC校验码,例如STM32的SPI就具有该功能,但值得注意的是该功能需要开启后才可以使用,否者即使设置SPI_InitStructure.SPI_CRCPolynomial也无用。

你可能感兴趣的:(总线)