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 的典型应用¶
存储设备:如 EEPROM、Flash 存储器等。
传感器接口:包括温度传感器、压力传感器等。
显示模块:如 OLED 和 LCD 显示屏。
音频设备:如 DAC(数字 - 模拟转换器)和 ADC(模拟 - 数字转换器)。
通信模块:如无线通信模块、以太网芯片等。