
本文概述
SPI是嵌入式系统中最常用的串行外设接口之一,硬件设计质量直接影响通信稳定性。本文从面试角度系统讲解SPI总线信号定义、时钟模式配置、上拉下拉电阻、电平兼容、PCB布局、多从机扩展以及常见通信故障排查方法。
核心要点速览
SPI四线制:SCLK、MOSI、MISO、CS,全双工同步串行通信
4种工作模式由CPOL和CPHA组合决定,必须与从机匹配
CS片选信号建议上拉,防止上电期间误触发从机
高速SPI需考虑信号完整性,走线等长、阻抗控制
多从机扩展有独立片选和菊花链两种方式
面试真题
面试官问:你设计过SPI接口电路吗?请描述一下SPI的硬件设计要点,以及遇到过什么问题,怎么解决的。
面试官考察点
SPI虽然是基础接口,但面试中经常作为切入点考察候选人的硬件功底。面试官想看的不是你能不能说出四根线,而是:第一,是否理解CPOL/CPHA四种模式及其匹配关系;第二,是否考虑过片选信号的上下拉、电平兼容等细节;第三,是否有实际调试经验,能分析通信失败的可能原因。
回答思路:SPI硬件设计五步走
明确主从关系,列出四根基本信号。从从机数据手册中确定SPI模式(CPOL和CPHA的组合),确保主机端配置一致。常见模式0和模式3使用最多。
核对主从芯片IO电平是否一致,不一致需加电平转换。CS片选必须上拉到VCC,阻值10k-100kΩ,防止上电期间CS不稳定导致从机误接收数据。MISO在多从机时为高阻态,必要时加下拉防止浮动。
从机数量少(2-4个)时用独立片选线,每个从机一根CS,最简单可靠。从机数量多时可考虑用译码器(如74HC138)扩展片选,或采用菊花链方式串联。菊花链适合对所有从机写相同配置的场景。
SPI时钟频率较高时(>10MHz),走线要尽量短且等长。时钟线下方要有完整地平面做参考。避免SPI走线靠近敏感模拟电路。速率超过20MHz时建议做阻抗控制,一般50Ω单端。
SPI接口如果引出到板边连接器,需加ESD保护器件(如TVS阵列)。靠近芯片电源引脚放0.1μF去耦电容。时钟线上可视情况加小电阻(22-33Ω)做端接,减少振铃。
面试官可能追问的问题
SPI全双工、速率高、无协议开销、引脚多;I2C半双工、速率较低、有地址协议、仅两根线。选型看:速率要求高选SPI,器件多选I2C省引脚,需要双向通信且对速度不敏感选I2C。
分三步:先用示波器确认SCLK和CS波形是否正常,再抓MOSI数据看时序对不对,最后检查MISO返回。常见原因有模式不匹配、片选时序不对、电平不够、接触不良、从机未初始化。
主要限制因素:从机芯片的最高SPI时钟频率、主控制器SPI外设能力、PCB走线长度和信号质量、电平转换芯片的带宽。实际应用中通常以从机规格书中的最大时钟频率为上限。
三线SPI指只有SCLK、CS和一根双向数据线(SDA或SIOSO),MOSI和MISO合并为一根半双工线。省一根引脚但失去全双工能力,常见于某些低引脚数的传感器芯片。
上电期间主控IO状态不确定,如果CS没有上拉,可能出现低电平导致从机误动作。上拉电阻确保上电复位期间CS为高电平,从机处于未选中状态,等待主机正常初始化后再操作。
容易失分的表达
"SPI就是四根线,很简单"——轻视基础接口,暴露经验不足
分不清CPOL和CPHA的含义,说反模式定义
"片选不用上拉也能用"——忽视可靠性设计
只讲协议,完全不提硬件电路和PCB层面的设计要点
面试前准备动作
画一张SPI四种模式的时钟相位图,理解CPOL/CPHA含义
准备一个实际项目中SPI调试的案例,包含问题和解决过程
对比整理SPI、I2C、UART三种串行接口的差异表格
了解几款常用的电平转换芯片型号和适用场景
核心关键词
SPI总线设计、SPI硬件接口、CPOL CPHA、SPI四种模式、片选上拉、SPI多从机、SPI电平转换、SPI信号完整性、SPI调试、串行外设接口、硬件工程师面试

扫码关注





























