SPISerial Peripheral Interface串行外设接口是 Motorola现 NXP1980 年代推出的高速、全双工、同步串行通信协议广泛用于板级短距离芯片互连MCU、传感器、Flash、显示屏等。一、核心特点同步主设备提供时钟 SCLK双方严格按时钟边沿收发。全双工MOSI主→从与 MISO从→主独立可同时收发。主从架构单主多从主设备控制时序与片选不支持多主。高速速率可达几 MHz上百 MHz远快于 I2C/UART。简单灵活无起始 / 停止 / 校验位可自定义帧长常见 8 bit。二、硬件接口4 线制信号线全称方向功能SCLKSerial Clock主→从同步时钟主机产生MOSIMaster Out, Slave In主→从主机发送、从机接收MISOMaster In, Slave Out从→主从机发送、主机接收CS/SSChip Select / Slave Select主→从片选低电平有效选择通信从机所有SPI设备的SCK、MOSI、MISO分别连在一起主机另外引出多条SS控制线分别接到各从机的SS引脚输出引脚配置为推挽输出输入引脚配置为浮空或上拉输入一主多从每个从机独立 CS 线同一时间仅一个从机被选中。简化 3 线制半双工时可 MOSI/MISO 合并为一根双向数据线。三、通信原理1. 基本流程主机拉低目标从机 CS选中设备。主机输出SCLK 时钟同时在 MOSI 发数据、在 MISO 收数据全双工同步移位。每发 / 收 1 bit 对应 1 个时钟边沿通常高位MSB优先。传输完成后主机停止 SCLK、拉高 CS释放从机MISO 高阻。2. 全双工移位SPI 本质是两个 8 位移位寄存器环回主机移位寄存器 → MOSI → 从机移位寄存器从机移位寄存器 → MISO → 主机移位寄存器每时钟边沿双方同时移位 1 bit实现交换一个字节(位)。四、四种工作模式CPOLCPHA模式由时钟极性 CPOL与时钟相位 CPHA组合决定主从必须配置相同模式。1. CPOLClock Polarity时钟极性CPOL0SCLK 空闲为低电平有效高电平。CPOL1SCLK 空闲为高电平有效低电平。2. CPHAClock Phase时钟相位CPHA0第一个边沿采样、第二个边沿更新。CPHA1第二个边沿采样、第一个边沿更新。3. 模式速查表模式CPOLCPHA空闲电平采样边沿典型应用Mode 000低上升沿最常用Flash、ADCMode 101低下降沿部分传感器Mode 210高下降沿部分 SPI 设备Mode 311高上升沿常见于 LCD、OLEDMode 0最常用空闲低上升沿采样、下降沿更新。Mode 3空闲高上升沿采样、下降沿更新与 Mode 0 时序对称。 记住90% 外设默认 SPI Mode0硬件匹配不对直接收乱码。五、时序详解以 Mode 0 为例空闲SCLK0CS 高未选中。起始CS 拉低 → 第一个上升沿主机输出 MOSI、从机采样 MOSI。传输上升沿采样数据读下降沿更新数据写结束8 个时钟后收完 1 字节 → CS 拉高SCLK 保持低。六、帧格式无起始位、停止位、校验位仅纯数据位效率高但无内置检错。帧长可配置416 bit默认 8 bit1 字节。位顺序默认MSB 优先部分设备支持 LSB 优先主从需一致。七、优缺点优点✅全双工高速速率远超 I2C/UART适合大数据吞吐。✅简单可靠无仲裁、无应答机制硬件实现简单。✅灵活帧长、模式、位顺序均可配置。缺点❌无内置校验需软件 CRC / 奇偶校验保证可靠性。❌一主多从需独立 CS从机多时占用 GPIO 多。❌仅短距离板级通信长距离易受干扰。❌不支持多主总线控制权唯一。八、与 I2C/UART 对比特性SPII2CUART拓扑单主多从多主多从点对点线数4或 322双工全双工半双工全双工时钟同步主机提供同步主机提供异步波特率匹配速率最高中等较低寻址片选7/10 位地址无校验无无可选九、常见应用存储SPI FlashW25Qxx、SD 卡。传感器ADC/DAC、陀螺仪、加速度计。显示LCD、OLED、TFT 屏。通信以太网 PHY、CAN 控制器。其他RTC、EEPROM、FPGA 配置接口。十、配置要点模式匹配主从 CPOL/CPHA 必须一致否则通信失败。时钟速率不超过从机最大支持频率常见 1020 MHz。位顺序MSB 或 LSB 优先主从一致。CS 极性多数低电平有效少数高电平有效。软件校验关键数据建议加 CRC / 奇偶校验。