SPI 概览

介绍

  • SPI(Serial Peripheral Interface,串行外围设备接口)是一种高速、全双工的同步串行通信协议
  • 常用于驱动 EEPROM、Flash、RTC、DSP 等硬件

基本特点

优点

  • 支持全双工通信
  • 传输速率快
  • 协议支持字长不限于8bit
  • 通信方式简单

缺点(对比 I2C)

  • 比 I2C 多两根线,需要更多接口
  • 没有寻址机制,依靠片选机制选择从机
  • 没有 ACK 回应,通信稳定性不可靠
  • 仅支持单主机控制

*附注

  1. 实际 SPI 速度未严格定义上限,其速度跟主从设备硬件性能和布线长度有很大相关性
  2. 由于是短距离通信,为了达到高速通信,在 PCB 布局的时候,主机和从机的距离应该尽量靠近

接口定义

  • SCK(Serial Clock):时钟信号线,用于同步通讯数据。由通讯主机产生,决定了通讯的速率,不同的设备支持的最高时钟频率不同
  • MOSI(Master Output, Slave Input):主设备输出/从设备输入引脚。主机的数据从这条信号线输出,从机由这条信号线读入主机发送的数据,数据方向由主机到从机
  • MISO(Master Input,Slave Output):主设备输入/从设备输出引脚。主机从这条信号线读入数据,从机的数据由这条信号线输出到主机,数据方向由从机到主机
  • CS(Chip Select):片选信号线,一般低电平有效。

    SPI 一主多从连接图

    图片缺失: spi_1.png