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也无用。
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值