19.1. SPI 概述

SPI(Serial Peripheral Interface Bus,串行外设接口总线) 是一种同步串行通信协议,由 Motorola 公司在 1970 年代开发。SPI 的设计初衷是取代并行总线,提供一种适用于短距离的高速数据传输解决方案。

作为一种高效、灵活的通信协议,SPI 被广泛应用于嵌入式系统、传感器接口、存储器模块(如 Flash 存储器)以及各种外围设备之间的数据传输。


19.1.1. SPI 的特点

19.1.1.1. 1. 全双工通信

SPI 是一种全双工通信协议,允许数据在主设备与从设备之间同时发送和接收,极大地提高了通信效率。

19.1.1.2. 2. 简单硬件接口

SPI 需要以下四条信号线来完成通信:

  • SCLK(Serial Clock,时钟信号):由主设备生成,提供数据传输的同步时钟。

  • MOSI(Master Out Slave In,主输出/从输入):主设备向从设备发送数据。

  • MISO(Master In Slave Out,主输入/从输出):从设备向主设备发送数据。

  • SS/CS(Slave Select/Chip Select,从设备选择):由主设备控制,用于选择当前活动的从设备。低电平激活。

19.1.1.3. 3. 灵活的多从设备架构

  • 单主多从结构:单个主设备可通过多条独立的从设备选择线(SS)与多个从设备通信。

19.1.1.4. 4. 同步传输

SPI 的数据传输由时钟信号同步,不依赖额外的起始或停止位,因此具有低通信开销和高效率的优点。


19.1.2. SPI 的典型应用

  1. 存储设备:如 EEPROM、Flash 存储器等。

  2. 传感器接口:包括温度传感器、压力传感器等。

  3. 显示模块:如 OLED 和 LCD 显示屏。

  4. 音频设备:如 DAC(数字 - 模拟转换器)和 ADC(模拟 - 数字转换器)。

  5. 通信模块:如无线通信模块、以太网芯片等。