SPI协议

串行外设接口(SPI) Serial Peripheral Interface

概念

是微控制器与外围IC之间的最广泛使用的接口之一,这些外围IC如传感器,ADC,DAC,移位寄存器,SRAM等。

特点

SPI是一个同步的,基于全双工主从的接口。来自主机或从机的数据在时钟的上升沿或下降沿同步。主机和从机都可以同时传输数据。SPI接口可以是3线或4线。
本篇笔记介绍流行的4线SPI接口。

接口

  • 4线SPI器件具有四个信号:

    • 时钟(SPI CLK,SCLK)            -> 提供时钟脉冲
    • 片选(CS)                                  -> 预先规定使能信号时芯片信号才有效
    • 主机输出,从机输入(MOSI)
    • 从机输出,主机输出(MISO)

 

 

 

产生时钟信号的设备称为主机。主机和从机之间传输的数据与主机产生的时钟同步。与I 2 C接口相比,SPI器件支持更高的时钟频率用户应查阅产品数据表以获取SPI接口的时钟频率规范。

SPI接口只能有一个主机,也可以有一个或多个从机。如下图通过片选CS使能来选择控制多个从机。

来自主机的芯片选择信号用于选择从机。这通常是低电平有效信号,并被拉高以使从机与SPI总线断开连接。当使用多个从机时,需要从主机为每个从机提供单独的芯片选择信号。

MOSI和MISO是数据线。MOSI将数据从主设备传输到从设备,而MISO将数据从从设备传输到主机。

数据传输

要开始SPI通信,主机必须发送时钟信号并通过使能CS信号来选择从机。通常,片选是低电平有效信号。

SPI是一个全双工接口。主机和从机都可以分别通过MOSI和MISO线路同时发送数据。

SPI以一个个bit数据来传输的。对主机来说,上升沿为写一位,下降沿为读一位(模式0/3)。

 

SPI的四种模式

SPI Mode CPOL CPHA
Mode 0 0 0
Mode 1 0 1
Mode 2 1 0
Mode 3 1 1

 

 

 

 总的来说:

  • CPOL表示时钟的初始状态。
    • CPOL=0,初始状态为低电平;CPOL=1,SCK为高电平。
  • CPHA表示相位,表示什么时候采样数据。
    • CPHA=0,第一个时钟沿采样数据,CPHA=1,第二个时钟沿采样数据。

一般常用模式0和3,即时钟上升沿采集数据;具体情况根据芯片手册(外接设备)而定。

 

 

用途

SPI协议主要用于短距离(<1M)的通信系统中,特别是嵌入式系统,比如以下芯片:
  • 存储器:RAM,EEPROM,Flash等
  • 数模转换:A/D,D/A转换器等
  • 驱动接口:LED显示驱动器、I/O接口芯片、UART收发器等

 

 

 

 参考文章:

https://www.analog.com/en/analog-dialogue/articles/introduction-to-spi-interface.html#

posted @ 2020-01-02 16:51  kumata  阅读(362)  评论(0编辑  收藏  举报