SPI 接口简介

更新时间:2022-03-22 09:34:47下载pdf

本文主要介绍了 SPI 接口通信设计时的相关事项。

SPI 总线概述

SPI 通信是一种全双工通信,它的最大特点是具有同步时钟,带有片选功能,数据传输速率可达几 Mb/s,比 I2C 快,但没有应答机制,一般是在时钟上升沿主机采样数据,时钟下降沿从机提供新数据。

SPI 采用主从模式(Master Slave)架构,支持多 slave 模式应用,一般仅支持单 Master。时钟由 Master 控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后(MSB first),总线结构如下图所示。

SPI 接口简介

SPI 接口简介

SPI 接口共有 4 根信号线,分别是:

  • MISO(Master Input Slave Output):主设备数据输入,从设备数据输出。
  • MOSI(Master Output Slave Input):主设备数据输出,从设备数据输入。
  • SCLK ( Serial Clock):时钟信号,由主设备产生。
  • CS (Chip Select):从设备使能信号,由主设备控制。

使用时需要注意以下几点:

  • 在 SPI 操作中,有两项比较重要的设置,就是时钟极性(CPOL 或 UCCKPL)和时钟相位(CPHA 或 UCCKPH)。时钟极性设置时钟空闲时的电平,时钟相位设置读取数据和发送数据的时钟沿。

    SPI 模式 CPOL CPHA 空闲状态下的时钟极性 用于采样和移位数据的时钟相位
    0 0 0 逻辑低电平 数据在上升沿采样,在下降沿移出
    1 0 1 逻辑低电平 数据在下降沿采样,在上升沿移出
    2 1 1 逻辑高电平 数据在下降沿采样,在上升沿移出
    3 1 0 逻辑高电平 数据在上升沿采样,在下降沿移出
  • 4 根信号线可串联 10~50 欧姆的小电阻,可以适当增加信号线阻抗,满足终端阻抗匹配,以抑制信号终端反射。

  • 当只有一个 slave 设备,且 I/O 口资源紧张的条件下,可直接将 CS 引脚拉低。这样可以节省出一个 I/O 口,下拉电阻阻值可选择 10K 左右。

多从机结构

常规多从模式

在常规模式下,主机需要为每个从机提供单独的片选信号。一旦主机使能(拉低)片选信号,MOSI/MISO 线上的时钟和数据便可用于所选的从机。如果使能多个片选信号,则 MISO 线上的数据会被破坏,因为主机无法识别哪个从机正在传输数据。

随着从机数量的增加,来自主机的片选线的数量也增加。这会快速增加主机需要提供的输入和输出数量,并限制可以使用的从机数量。可以使用其他技术来增加常规模式下的从机数量,例如使用多路复用器产生片选信号。

SPI 接口简介

菊花链模式

在菊花链模式下,所有从机的片选信号连接在一起,数据从一个从机传播到下一个从机。在此配置中,所有从机同时接收同一 SPI 时钟。来自主机的数据直接送到第一个从机,该从机将数据提供给下一个从机,依此类推。

使用该方法时,由于数据是从一个从机传播到下一个从机,所以传输数据所需的时钟周期数与菊花链中的从机位置成比例。例如为使第 3 个从机能够获得数据,需要 24 个时钟脉冲,而常规 SPI 模式下只需 8 个时钟脉冲。

并非所有 SPI 器件都支持菊花链模式,请参阅产品数据手册以确认菊花链是否可用。

SPI 接口简介