SPI/QSPI/OctoSPI/MICROWIRE串行同步通信总线

  • MICROWIRE :SPI 的简化版,少数据线、仅支持单主单从,低成本、低复杂度;
  • SPI基础同步串行标准,2/3/4 线可选,全双工 / 半双工灵活,嵌入式最通用;
  • QSPI4 线高速 SPI,在 SPI 基础上增加 2 条数据线,半双工高速,专为串行 Flash 设计;
  • OctoSPI8 线超高速 SPI,QSPI 的进一步扩展,8 条数据线,超高速半双工,高端 MCU 标配(如 STM32H7/F4),用于超高速 Flash / 外设通信。

四者同属同步串行通信体系 ,核心共性是由主设备提供 SCLK 时钟,收发双方按时钟边沿采样数据,无异步波特率误差 ,底层逻辑高度相似,差异体现在数据线数量、通信时序、硬件复杂度、速率上限上,核心逻辑关系为:

MICROWIRE → SPI(基础标准)→ QSPI(4线SPI,高速扩展)→ OctoSPI(8线SPI,超高速扩展)

核心参数对比

特性 MICROWIRE SPI(标准) QSPI(4 线 SPI) OctoSPI(8 线 SPI)
核心信号线 SCLK、SI、SO(3 线,无 CS) SCLK、MOSI、MISO、NSS(4 线,全双工)可简化为 3/2 线 SCLK、IO0~IO3、NCS(6 线,含 2 根 CS) SCLK、IO0~IO7、NCS0~NCS1(11 线)
数据传输方式 半双工(SI/SO 分时) 全双工 / 半双工可选(默认全双工) 半双工(IO0~IO3 双向) 半双工(IO0~IO7 双向)
主从模式 单主单从(无 CS) 单主多从(通过 NSS 片选) 单主多从(2 路 NCS) 单主多从(2 路 NCS,支持双闪存)
拓扑结构 点对点(唯一) 菊花链 / 星形(主从式) 点对点 / 星形(主从式) 点对点 / 星形(主从式)
时钟极性 / 相位 固定(无配置) 可配置(CPOL/CPHA,4 种组合) 兼容 SPI 配置,新增高速时序 兼容 QSPI,专属超高速时序
工业实际速率 ≤5Mbps(MCU 主频≤80MHz) ≤50Mbps(全双工,MCU 主频 168MHz)≤80Mbps(半双工) ≤100Mbps(STM32)≤180Mbps(高端 MCU) ≤400Mbps(STM32H7)≤800Mbps(超高端)
数据宽度 8 位(固定) 8/16 位(可配置) 8/16/32 位(可配置) 8/16/32 位(可配置)
硬件复杂度 极低(MCU 简易外设) 低(所有 MCU 标配) 中等(中高端 MCU 标配) 高(高端 MCU 专属,如 STM32H7/F7)
核心优势 引脚少、成本低、时序简单 灵活通用、全双工、适配所有外设 高速、引脚少、专为串行 Flash 优化 超高速、大带宽、支持双闪存并行
核心劣势 无片选、仅单主单从、速率低 全双工速率低于 QSPI/OctoSPI 仅半双工、无全双工能力 引脚多、硬件复杂、仅高端 MCU 支持
典型外设 低速传感器、简易 ADC/DAC FLASH、传感器、显示屏、MCU 间通信、ADC/DAC 串行 NOR Flash、SPI RAM、高速传感器 超高速串行 NOR/NAND Flash、高端显示屏、高速数据采集模块
主流 MCU 支持 51 单片机、简易 MCU 所有 MCU(51/STM32/Arduino/ESP32) STM32F1/F4/H7、ESP32-S3、RK3288 STM32H7/F7/G4、NXP i.MX、瑞萨 RZ

关键选型结论

  • 低成本、单主单从、低速 :选MICROWIRE(如 51 单片机对接简易传感器);
  • 通用场景、全双工 / 半双工、多从设备 :选标准 SPI(嵌入式 90% 场景的首选);
  • 高速串行 Flash、中速外设、引脚有限 :选QSPI(如 STM32F4 对接 W25Q 系列 Flash);
  • 超高速数据传输、高端外设、大带宽 :选OctoSPI(如 STM32H7 对接超高速 Flash、高清屏)。

MICROWIRE

MICROWIRE 是 NS(国家半导体)制定的同步串行标准,完全兼容 SPI 的核心时序 ,但做了极致简化,专为单主单从、低速、低成本 场景设计,是嵌入式中引脚最省的同步串行总线。

核心硬件特性
  • 信号线 :仅 3 根,SCLK(主设备输出时钟)、SI(主入从出)、SO(主出从入)无片选线 NSS ,因此仅支持点对点单主单从,无法多从组网;
  • 传输方式固定半双工,SI 和 SO 分时传输,无全双工能力,数据位固定为 8 位;
  • 时序固定:时钟极性 CPOL=0、相位 CPHA=0(无配置项),主设备提供 SCLK,从设备在 SCLK 上升沿采样、下降沿发送;
  • 速率限制:因硬件简易,速率通常≤5Mbps,适配 8 位低速 MCU(如 51 单片机、PIC16)。
拓扑与实操
  • 唯一拓扑点对点直连,主设备 SCLK/SI/SO 直接接从设备对应引脚,无任何分支、无组网可能;
  • 实操要点 :无需配置片选、无需设置 CPOL/CPHA,仅需主设备配置 SCLK 频率,收发双方数据位宽固定为 8 位,直接读写数据寄存器即可,软件极简;
  • 典型应用:51 单片机对接低速温度传感器、简易 ADC(如 AD7811)、低成本 DAC,追求引脚省、开发快。

SPI(Serial Peripheral Interface)

SPI 是摩托罗拉制定的同步串行通信标准 ,嵌入式最通用、最灵活 的同步总线,核心优势是全双工、配置灵活、拓扑多样、适配所有外设,是除 UART 外嵌入式最常用的总线。

核心硬件特性

  • 标准信号线 (4 线全双工):
    • SCLK:同步时钟,主设备唯一输出,从设备输入,频率由主设备配置(通常为 MCU 主频的 1/2/4/8);
    • MOSI(Master Out Slave In):主出从入,主设备发送数据;
    • MISO(Master In Slave Out):主入从出,从设备发送数据;
    • NSS(Slave Select):片选线,主设备输出低电平选中从设备,支持多从组网;
  • 简化模式:可省略 NSS(软件模拟片选)、可将 MOSI/MISO 短接为半双工(2 线),灵活适配不同外设;
  • 时序配置 :核心为CPOL(时钟极性)CPHA(时钟相位) ,各有 2 种选择,组合为 4 种 SPI 模式,需与外设严格匹配(外设手册必标);
    • CPOL=0:SCLK 空闲时为低电平;CPOL=1:空闲时为高电平;
    • CPHA=0:第 1 个时钟边沿采样;CPHA=1:第 2 个时钟边沿采样;
  • 传输方式全双工默认,MOSI 和 MISO 同时传输,可通过硬件配置为半双工(仅一根数据线)。

标准拓扑(两种,工业通用)

SPI 支持单主多从,核心拓扑为以下两种,无其他非标准拓扑:

  1. 星形拓扑(工业主流) :主设备的 SCLK/MOSI/MISO 为公共总线 ,所有从设备的对应引脚并联至公共总线,每个从设备独立接主设备的一根 NSS 片选线 ,主设备通过拉低对应 NSS 选中从设备,其余从设备高阻态,无总线冲突
    • 优势:布线简单、时序稳定、易扩展,嵌入式 99% 场景采用;
    • 限制:从设备数量由主设备 NSS 引脚数决定。
  2. 菊花链拓扑(小众) :所有从设备串联 ,主设备→从设备 1→从设备 2→...→从设备 N,仅需一根 NSS 片选线 ,数据按顺序传输;
    • 优势:节省 NSS 引脚,多从设备时引脚省;
    • 劣势:速率低、数据串行传输、某一设备故障导致整个总线瘫痪,仅适用于特定场景(如多片移位寄存器)。

核心要点

  • 时序匹配 :必须按外设手册配置 CPOL/CPHA,否则通信完全失败(如 W25Q 系列 Flash 为 SPI 模式 0/3);
  • 片选控制 :硬件 NSS 优先(稳定),无硬件 NSS 时用 GPIO 软件模拟,片选拉低后需加短延时(≥1μs)再发送数据,避免时序偏差;
  • 速率匹配 :从设备有最大 SCLK 频率限制(如传感器最大 10Mbps),主设备 SCLK 频率不可超过外设上限
  • 电平匹配:主从设备电平需一致(3.3V/5V),电平不匹配时需加电平转换芯片(如 74HC245);
  • 布线规范 :板内布线 SCLK/MOSI/MISO等长等宽,长度≤20cm,远离时钟线 / 电源线,减少电磁干扰。

QSPI(Quad SPI)

QSPI 是 ST 等半导体厂商在 SPI 基础上推出的4 线高速扩展标准 ,核心是将 SPI 的 1 根发送 + 1 根接收线,扩展为 4 根双向数据线 IO0~IO3 ,牺牲全双工换取数倍速率提升 ,专为串行 NOR Flash设计(如 W25Q128JV、MX25L 系列),是中高端 MCU 的标配。

核心硬件特性

  • 信号线 :6 根核心线,SCLK(时钟)、IO0~IO3(4 根双向数据线)、NCS(片选) ,部分高端 QSPI 支持 2 路 NCS(NCS0/NCS1),可接 2 个 Flash;
    • IO0~IO3:替代 SPI 的 MOSI/MISO,双向半双工,指令 / 地址 / 数据均通过这 4 根线传输,比 SPI 的 2 根线速率提升 2~4 倍;
  • 传输方式固定半双工,无全双工能力,这是为了提升速率的设计取舍(全双工需独立收发线,占用更多引脚);
  • 时序模式 :兼容标准 SPI 模式 (仅用 IO0/IO1,等同于 SPI),新增4 线高速模式 (IO0~IO3 同时传输),支持指令 / 地址 / 数据的不同线宽配置(如指令 1 线、地址 4 线、数据 4 线);
  • 速率优势 :因 4 线同时传输,在相同 SCLK 频率下,数据传输速率是标准 SPI 的4 倍(如 SCLK=50MHz,QSPI 速率 = 200Mbps,SPI 仅 50Mbps)。

拓扑与实操

  • 标准拓扑点对点 (主设备→单 Flash)或双设备星形 (2 路 NCS 接 2 个 Flash),IO0~IO3/SCLK 为公共总线,片选通过 NCS0/NCS1 控制,不支持多从设备扩展(专为 Flash 设计,无需多从);
  • 核心设计优化 :支持地址自动递增、连续读取、突发传输,专为 Flash 的连续数据读取优化,大幅提升 Flash 访问速度(如 STM32F4 通过 QSPI 访问 Flash,速率可达 100Mbps 以上);
  • 实操要点
    • QSPI 外设需先配置模式(SPI 模式 / 4 线模式),再配置指令 / 地址 / 数据的线宽(按 Flash 手册);
    • 片选 NCS 为硬件自动控制,无需软件延时,MCU 外设自动处理时序;
    • 高速下需配置时钟分频采样延时,匹配 Flash 的时序要求,避免数据采样错误;
    • 与标准 SPI 外设完全兼容,无需重新开发驱动,仅需修改线宽配置。

OctoSPI(Octal SPI)

OctoSPI 是 QSPI 的8 线超高速扩展版本 ,由 ST 率先推出并成为行业标准,核心是将 QSPI 的 4 根数据线扩展为 8 根(IO0~IO7) ,进一步提升速率,同时支持双闪存并行 ,是高端 MCU(如 STM32H7/F7)的专属外设,用于超高速串行 Flash、高清显示屏、高速数据采集模块等大带宽场景。

核心硬件特性

  • 信号线 :11 根核心线,SCLK(时钟)、IO0~IO7(8 根双向数据线)、NCS0/NCS1(2 路片选) ,支持差分时钟 SCLK/QSCLK (更高稳定性);
    • IO0~IO7:双向半双工,指令 / 地址 / 数据均通过 8 根线传输,速率为 QSPI 的 2 倍、标准 SPI 的 8 倍;
    • NCS0/NCS1:独立片选 2 个 Flash,支持双闪存并行访问,带宽再翻倍;
  • 传输方式固定半双工 ,支持1/2/4/8 线宽灵活配置,兼容 SPI/QSPI 所有模式,可向下兼容;
  • 速率极限 :工业实际速率可达400Mbps (STM32H7),支持DDR(双倍数据率)模式(时钟上升沿和下降沿均采样数据),速率可至 800Mbps,接近并行 Flash 的速度;
  • 功能扩展 :支持内存映射模式,将串行 Flash 直接映射为 MCU 的片外内存,MCU 可像访问片内 RAM 一样访问 Flash,无需手动读写,开发效率大幅提升。

差分时钟

差分时钟是基于差分信号原理 的时钟传输方式,与单端时钟(如 TTL/CMOS 电平的单端时钟,以 GND 为参考)相对,核心通过一对互补的差分信号线传输时钟信号(如 CLK + 和 CLK-,电平反向、幅度相等),是高速、长距离、高抗干扰的时钟同步方案;

差分时钟的传输核心是检测差分线对的电压差 ,而非单端信号的对地绝对电压,基础规则:

  1. 差分对两路信号相位相反、幅度相同:当 CLK + 为高电平时,CLK - 为低电平;CLK + 跳变时,CLK - 同步反向跳变;
  2. 接收端仅识别CLK+ - CLK - 的电压差:当差值≥阈值时,判定为逻辑 1;差值≤- 阈值时,判定为逻辑 0;差值为 0 时,为中间态;
  3. 共模电压抑制:差分线对的两根线走等长、等距、紧密耦合 的布线(如差分走线),外界的电磁干扰会以相同的共模电压叠加在 CLK + 和 CLK - 上,接收端相减后共模干扰会被抵消,这是差分时钟最核心的抗干扰原理。

拓扑与实操

  • 标准拓扑点对点 (主设备→单超高速 Flash)或双设备并行 (NCS0/NCS1 接 2 个 Flash,并行访问),IO0~IO7/SCLK 为公共总线,无多从设备扩展能力(专为超高速外设设计);
  • 核心优势超高速、大带宽、内存映射模式,解决了串行 Flash 速率低的痛点,同时比并行 Flash 节省大量引脚(并行 Flash 需 16/8 根数据线,OctoSPI 仅 8 根);
  • 实操要点
    1. 仅高端 MCU 支持(如 STM32H7/F7/G4),需配套支持 8 线的超高速 Flash(如 W25Q256JV-IQ、MX25UM 系列);
    2. 支持DDR 模式单端 / 差分时钟,高速下优先用差分时钟,提升抗干扰能力;
    3. 配置内存映射模式后,可直接通过地址指针访问 Flash,无需调用读写函数,大幅简化开发;
    4. 板内布线要求极高 :IO0~IO7/SCLK严格等长(误差≤5mil),长度≤10cm,做地铺铜屏蔽,避免高速下的信号反射 / 干扰。

兼容性与互转

  • OctoSPI → QSPI/SPI/MICROWIRE :OctoSPI 可配置为4 线 QSPI 模式 (仅用 IO0~IO3)、2 线 SPI 模式 (仅用 IO0/IO1)、3 线 MICROWIRE 模式,完全向下兼容,软件仅需修改线宽配置;
  • QSPI → SPI/MICROWIRE :QSPI 可配置为2 线 SPI 模式(IO0=MOSI、IO1=MISO),进一步简化为 MICROWIRE 模式,兼容低速外设;
  • SPI → MICROWIRE :SPI 配置为模式 0(CPOL=0/CPHA=0)、8 位数据、半双工,即可直接对接 MICROWIRE 外设,信号线 SCLK→SCLK、MOSI→SO、MISO→SI;
  • MICROWIRE → SPI/QSPI/OctoSPI:MICROWIRE 外设可直接接 SPI/QSPI/OctoSPI 的对应引脚,主设备配置为兼容的时序即可,无需修改外设硬件。

SPI 与 QSPI 时序核心差异

维度 标准 SPI(全双工模式) QSPI(4 线高速模式)
数据线数量 / 角色 2 根独立线:MOSI(主发从收)、MISO(主收从发),全双工并行传输 4 根双向线:IO0~IO3(替代 MOSI/MISO),半双工分时传输
传输逻辑 时钟每跳变一次,MOSI 和 MISO 各传输 1bit 数据(同时收发) 时钟每跳变一次,IO0~IO3 同时传输 4bit 数据(仅收 / 仅发)
速率效率 SCLK 频率 = 实际传输速率(如 50MHz SCLK=50Mbps) SCLK 频率 ×4 = 实际传输速率(如 50MHz SCLK=200Mbps)
全双工能力 支持(收发同时进行) 不支持(仅半双工,收发分时)
时序兼容性 基础时序,无扩展 兼容 SPI 时序(仅用 IO0/IO1),新增 4 线高速时序

核心结论:相同时钟频率下,QSPI 的单向传输速率是标准 SPI 的 4 倍,代价是失去全双工能力 ------ 这是 QSPI 专为「高速读取 Flash」设计的取舍(Flash 读取远多于写入,半双工足够)。

指令阶段:SPI 固定 1 线,QSPI 可选 1/4 线

标准 SPI
  • 仅支持1 线传输指令:指令通过 MOSI 线串行发送,1 个指令字节(8bit)需要 8 个 SCLK 周期;
  • 时序固定:CPOL/CPHA 决定采样边沿,指令发送完成后才能传输地址 / 数据。
QSPI
  • 支持1 线 / 4 线指令传输 (可配置):
    • 兼容模式:仅用 IO0(等同于 SPI 的 MOSI),1 线发指令,时序与 SPI 完全一致;
    • 高速模式:IO0~IO3 同时发指令,1 个指令字节仅需 2 个 SCLK 周期(4bit / 周期);
  • 工业实操:多数 Flash 默认用「1 线指令 + 4 线地址 + 4 线数据」(平衡兼容性和速率)。

地址阶段:SPI 固定 1 线,QSPI 可选 1/2/4 线

标准 SPI
  • 仅支持1 线传输地址:地址(如 24bit/32bit)通过 MOSI 线串行发送,24bit 地址需要 24 个 SCLK 周期;
  • 无地址自动递增优化,每次读取都需重新发送完整地址。
QSPI
  • 支持1/2/4 线地址传输 (按 Flash 手册配置):
    • 4 线模式下,24bit 地址仅需 6 个 SCLK 周期(4bit / 周期),耗时仅为 SPI 的 1/4;
  • 硬件支持地址自动递增:发送一次起始地址后,后续数据读取无需重复发地址,时钟连续,进一步提升速率。

数据阶段:SPI 全双工 1/2 线,QSPI 半双工 4 线

这是二者时序差异最大的阶段,也是 QSPI 速率优势的核心来源:

标准 SPI
  • 全双工模式:MOSI 发数据、MISO 收数据,同时进行,1 个 SCLK 周期仅传输 1bit(单向);
  • 半双工模式:MOSI/MISO 短接为 1 根线,1 个 SCLK 周期传输 1bit(单向),无速率提升;
  • 数据读取:Flash 通过 MISO 线串行输出数据,8bit 数据需 8 个 SCLK 周期。
QSPI
  • 固定半双工 4 线:IO0~IO3 双向传输,1 个 SCLK 周期同时传输 4bit 数据(单向);
  • 数据读取:Flash 通过 IO0~IO3 并行输出数据,8bit 数据仅需 2 个 SCLK 周期;
  • 新增「快速读取时序」:支持「dummy cycle(空周期)」配置,适配 Flash 的内部地址解码延时,无需软件插延时,硬件自动对齐时序。
相关推荐
fffzd1 小时前
STM32:OLED原理
stm32·单片机·嵌入式硬件·iic·oled·嵌入式软件
清风66666612 小时前
基于单片机与DAC0832的双路波形信号发生系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
azwsm13 小时前
电路元器件和GPIO控制器
单片机·嵌入式硬件
kebidaixu16 小时前
FreeRTOS 移植到 STM32F407VETX 记录(一)
stm32·单片机·嵌入式硬件
CSDN官方博客16 小时前
「谁说嵌入式只是调包和焊板子?」—— 2026嵌入式全栈技术征锋令
嵌入式硬件·物联网·embedding
点灯小铭17 小时前
基于单片机的数码管定时插座设计与定时开关功能实现
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
云栖梦泽17 小时前
玩转RK3506SDK
linux·嵌入式硬件
数智工坊19 小时前
机器人四大主控板系统分层选型指南:树莓派、ESP32、STM32与Arduino的能力边界与实战定位
stm32·嵌入式硬件·机器人
进击的小头20 小时前
第8篇:IGBT 从零到精通:核心原理、关键参数、选型指南与工业级应用要点
经验分享·嵌入式硬件·学习
点灯小铭20 小时前
基于单片机的多模式智能洗衣机设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业