3、SPI通信协议回顾:SPI四线制(SCLK、MOSI、MISO、CS)时序详解,CPOL/CPHA模式配置,多从机拓扑

在低温补偿系统中,SPI(Serial Peripheral Interface)是传感器与主控器之间最常用的同步串行接口。低温环境下,信号沿变缓、时钟抖动增加,理解SPI的底层时序与模式配置是进行协同优化的前提。本节系统回顾SPI四线制的基本时序、CPOL/CPHA四种工作模式,以及多从机拓扑的硬件连接策略。

3.1 SPI四线制信号定义与基本时序

标准SPI使用四条信号线实现全双工同步通信:

信号线 全称 方向(主→从) 功能描述
SCLK Serial Clock 主→从 由主设备产生的同步时钟,决定数据采样与跳变时刻
MOSI Master Out Slave In 主→从 主设备发送数据至从设备
MISO Master In Slave Out 从→主 从设备发送数据至主设备
CS Chip Select 主→从 片选信号,低电平有效,选中特定从设备进行通信

基本传输过程:

  1. 主设备将目标从设备的CS引脚拉低,激活该从设备。
  2. 主设备在SCLK上产生连续的时钟脉冲。
  3. 在每个时钟周期内,主设备通过MOSI线发送1位数据,同时从设备通过MISO线返回1位数据(全双工)。
  4. 传输完成后,主设备将CS拉高,释放从设备。
低温关键点: 低温会导致SCLK上升/下降时间变长,MOSI/MISO数据建立时间(tSU)和保持时间(tH)余量缩小。调试时需重点测量SCLK过零点与数据跳变沿之间的相对延迟。

3.2 CPOL/CPHA模式配置详解

SPI协议通过时钟极性(CPOL)和时钟相位(CPHA)的组合定义四种工作模式。主从设备必须工作在相同模式下才能正确通信。

模式 CPOL CPHA SCLK空闲电平 数据采样沿 数据跳变沿
模式0 0 0 低电平 上升沿 下降沿
模式1 0 1 低电平 下降沿 上升沿
模式2 1 0 高电平 下降沿 上升沿
模式3 1 1 高电平 上升沿 下降沿

CPOL(Clock Polarity): 决定SCLK在空闲状态(CS无效期间)的电平。CPOL=0为空闲低电平,CPOL=1为空闲高电平。

CPHA(Clock Phase): 决定数据采样发生在SCLK的第一个边沿还是第二个边沿。CPHA=0表示在第一个边沿采样,CPHA=1表示在第二个边沿采样。

调试建议: 低温环境下,建议优先选择模式0或模式3。这两种模式的数据跳变沿与采样沿之间间隔半个时钟周期,对信号边沿退化有更好的容忍度。模式1和模式2的采样沿紧邻跳变沿,在低温下更容易发生建立时间违规。
SPI四种模式时序对比图 SPI 四种模式时序对比(CPOL/CPHA) 模式0 (CPOL=0, CPHA=0) SCLK ▲ 采样 ▲ 采样 ▲ 采样 ▲ 采样 ▲ 采样 ▲ 采样 ▲ 采样 ▲ 采样 模式1 (CPOL=0, CPHA=1) SCLK ▼ 采样 ▼ 采样 ▼ 采样 ▼ 采样 ▼ 采样 ▼ 采样 ▼ 采样 模式2 (CPOL=1, CPHA=0) SCLK ▼ 采样 ▼ 采样 ▼ 采样 ▼ 采样 ▼ 采样 ▼ 采样 ▼ 采样 ▼ 采样 模式3 (CPOL=1, CPHA=1) SCLK ▲ 采样 ▲ 采样 ▲ 采样 ▲ 采样 ▲ 采样 ▲ 采样 ▲ 采样 SCLK 波形 ▲/▼ 数据采样点 低温调试:优先选用模式0或模式3 采样沿与跳变沿间隔半周期,抗边沿退化能力强

3.3 多从机拓扑结构

实际低温补偿系统中,主控器通常需要与多个传感器(温度、压力、加速度)通信。SPI支持两种多从机拓扑:

3.3.1 独立片选拓扑(Parallel CS)

每个从设备使用独立的CS引脚,SCLK、MOSI、MISO三线共享。主控器通过拉低目标设备的CS引脚来选择通信对象,未选中的从设备将其MISO引脚置为高阻态。

  • 优点: 从设备之间完全独立,无地址冲突;通信速率高,无总线争用。
  • 缺点: 占用主控器GPIO资源多(每增加一个从设备需增加一个CS引脚)。
  • 适用场景: 从设备数量较少(≤4个),且对通信速率要求高的系统。

3.3.2 菊花链拓扑(Daisy-Chain)

所有从设备共享SCLK和CS,但MOSI和MISO在设备间串联:主设备的MOSI连接第一个从设备的MOSI输入,第一个从设备的MISO输出连接第二个从设备的MOSI输入,依此类推,最后一个从设备的MISO返回主设备。

  • 优点: 仅需一个CS引脚,节省GPIO资源。
  • 缺点: 数据传输延迟随链长度增加而累积;所有从设备必须支持菊花链模式;通信速率受限于最慢设备。
  • 适用场景: 从设备数量多(≥5个),且对速率要求不高的系统。
低温风险提示: 菊花链拓扑在低温下延迟累积效应加剧。每个从设备的内部移位寄存器在低温下传播延迟增加,导致链末端的MISO数据相对于SCLK的相位偏移更大。建议在-40°C以下环境优先使用独立片选拓扑,或降低SPI时钟频率以补偿链延迟。
SPI多从机拓扑结构图 SPI 多从机拓扑结构对比 独立片选拓扑 主设备 (MCU) 从设备 1 从设备 2 从设备 3 CS1 CS2 CS3 SCLK, MOSI, MISO 共享 菊花链拓扑 主设备 (MCU) 从设备 A 从设备 B 从设备 C MISO→MOSI MISO→MOSI MISO返回 独立片选:每个从设备独立CS,速率高 适合从设备少、低温高速场景 菊花链:共享CS,节省GPIO 低温下延迟累积,需降频使用

3.4 低温环境下的SPI时序退化分析

低温对SPI通信的主要影响体现在以下三个参数上:

参数 常温(25°C)典型值 低温(-40°C)典型变化 对通信的影响
tR / tF(上升/下降时间) 2~5 ns 增加 30%~80% 信号边沿变缓,采样窗口缩小
tSU(建立时间) 3~10 ns 增加 20%~50% 数据需更早稳定,否则采样错误
tH(保持时间) 2~5 ns 增加 10%~30% 数据需保持更久,否则被后续跳变破坏
协同优化思路: 低温补偿与SPI调试的协同点在于——通过温度传感器实时采集环境温度,动态调整SPI时钟频率和采样点位置(通过调整CPOL/CPHA或插入软件延迟),在保证通信可靠性的前提下最大化数据吞吐量。后续章节将详细展开这一协同策略的具体实现方法。

3.5 本节要点总结

  • SPI四线制(SCLK、MOSI、MISO、CS)实现全双工同步通信,CS低电平有效选中从设备。
  • CPOL决定空闲时钟电平,CPHA决定采样边沿位置,四种模式中模式0和模式3在低温下更具鲁棒性。
  • 多从机拓扑分为独立片选(高速、多GPIO)和菊花链(省GPIO、延迟累积)两种,低温环境推荐独立片选。
  • 低温导致信号上升/下降时间变长、建立/保持时间增加,是SPI通信失效的主要物理根源。