当前位置: 首页 > news >正文

嵌入式测试学习第 26 天:SPI通信协议基础、主从模式、速度特点

SPI通信协议基础、主从模式、速率特点

    • 一、SPI协议基础认知
      • 1. 协议定义
      • 2. SPI四线引脚定义(标准4线SPI,嵌入式最通用)
      • 3. SPI四种时钟模式
    • 二、SPI主从拓扑结构
      • 1. 星型拓扑(最常用,独立片选)
        • 实物接线实拍(开发板+多外设)
      • 2. 菊花链拓扑(级联,节省CS引脚)
    • 三、SPI速度特点
    • 四、SPI全双工读写通信逻辑(结合逻辑分析仪波形)
      • 1. 写流程(主机发、从机收)
      • 2. 读流程(主机下发读指令,从机回传数据)
    • 五、嵌入式测试常见故障排查(硬件+协议)
    • 六、总结

一、SPI协议基础认知

1. 协议定义

SPI(Serial Peripheral Interface,串行外设接口),高速同步全双工串行总线,摩托罗拉推出,嵌入式板间高速通信首选协议。

  • 核心特性:全双工收发、无设备地址、靠独立片选选中从机、传输速率远高于I2C
  • 适用场景:W25Q串行Flash、SPI液晶屏、ADC模数芯片、TF卡、射频模块、FPGA外设;
  • 通信距离:板内短距离(1米以内),长线易受干扰。

2. SPI四线引脚定义(标准4线SPI,嵌入式最通用)

图片特征:标注Master(主机)、Slave(从机),4根信号线两两对接,清晰区分MOSI/MISO/SCLK/CS走向。

  1. SCLK(串行时钟)仅主机输出时钟,决定通信速率,同步收发时序;
  2. MOSI:主机发→从机收(Master Out Slave In);
  3. MISO:从机发→主机收(Master In Slave Out);
  4. CS/NSS(片选):独立IO控制,低电平有效,拉低=选中对应从机,拉高=设备休眠断开总线。

对比I2C:I2C靠7位地址寻址,SPI无地址,每个从机独占1路CS片选线

3. SPI四种时钟模式

时钟极性CPOL、时钟相位CPHA组合出4种时序,硬件通信必须主从模式一致,否则数据错乱。

图片特征:分4组CS/SCLK/MOSI波形,标注采样边沿,区分Mode0~Mode3(Mode0使用最多)。

  • CPOL:空闲SCLK电平,0=空闲低电平,1=空闲高电平;
  • CPHA:数据采样边沿,0=第一个时钟沿采样,1=第二个时钟沿采样;
  • 工程默认:Mode0(CPOL=0,CPHA=0),W25Q、SPI屏幕默认该模式。

二、SPI主从拓扑结构

SPI固定架构:单主机+多从机,一条总线同一时刻只能1个主机产生SCLK时钟。

1. 星型拓扑(最常用,独立片选)

所有从机SCLK、MOSI、MISO三线全部并联每个从机单独引出CS接主机不同GPIO引脚,主机通过拉低某一路CS,单独选中单个设备通信。

图片特征:主控MCU引出一组SCLK/MOSI/MISO并联全部从机,每个从机自带独立CS接线。

实物接线实拍(开发板+多外设)

图片特征:开发板PCB走线,SCLK/MOSI/MISO共用,W25Q芯片CS引脚单独接主控IO,3.3V供电。

图片特征:主控排针通过4根杜邦线连接W25Q模块VCC/GND/SCK/MOSI/MISO/CS,实物直观体现四线接线规范。

2. 菊花链拓扑(级联,节省CS引脚)

从机首尾串联:主机MOSI→从机1输入,从机1输出→从机2输入,所有从机共用一组SCLK+1根公共CS,多用于DA/ADC阵列、LED驱动芯片,嵌入式测试较少用。

三、SPI速度特点

  1. 速率区间
  • 低速:几十KHz~1MHz(传感器、低速ADC);
  • 标准:1~20MHz(W25Q Flash、SPI液晶屏,工程最常用);
  • 高速SPI:50MHz~100MHz+(FPGA、DDR、高速射频模块);

I2C最高400KHz,SPI速率是I2C几十~上百倍,高速传输首选SPI。

  1. 影响速率因素:走线长短、是否加屏蔽线、从机芯片规格、电平3.3V/5V;
  2. 实测现象:速率过高出现乱码=时序不匹配、走线干扰,降频即可修复(测试高频故障)。

四、SPI全双工读写通信逻辑(结合逻辑分析仪波形)

SPI全双工同步收发:CS拉低选中设备后,SCLK每来1个时钟脉冲,MOSI发1bit、MISO同步收1bit,8bit组成1字节,收发同步完成。

1. 写流程(主机发、从机收)

CS拉低→SCLK输出时钟→MOSI逐位下发指令/数据→MISO同步接收从机返回数据→数据传输完毕→CS拉高结束通信。

2. 读流程(主机下发读指令,从机回传数据)

CS拉低→MOSI发送读寄存器指令→SCLK持续输出时钟→MISO逐位接收从机上传数据→CS拉高终止。

配图6:SPI读写逻辑分析仪抓取波形实拍

图片特征:四通道波形从上至下CS/SCLK/MOSI/MISO,能直观看到CS下降沿启动通信、SCLK脉冲、MOSI下发指令、MISO回传数据。

五、嵌入式测试常见故障排查(硬件+协议)

  1. 完全无通信(MISO无数据)
    原因:CS没拉低、SCLK/MOSI/MISO接反、从机未上电、主从SPI四种模式不一致;
    排查:逻辑分析仪抓CS电平、核对CPOL/CPHA配置。
  2. 数据随机错乱
    原因:SPI时钟速率过高、杜邦线过长引入干扰、电源纹波大;
    解决:降低SCLK频率、缩短接线。
  3. 能写不能读/能读不能写
    原因:MISO虚焊、从机寄存器只读配置错误、模式配置单边不匹配。

六、总结

  1. 硬件:4线(SCLK+MOSI+MISO+独立CS),全双工,无地址
  2. 拓扑:星型(独立CS)为主,一主多从;
  3. 时序:4种CPOL+CPHA模式,工程默认Mode0;
  4. 速率:MHz级别,远快于I2C;
  5. 测试排查顺序:CS电平→接线方向→SPI模式→时钟速率。
http://www.jsqmd.com/news/939197/

相关文章:

  • CentOS 7下SFTP连接报错‘bad ownership’?手把手教你排查OpenSSH的chroot目录权限
  • 防火墙为什么能根据 IP 地址过滤?IP 不是会变的吗?
  • 自指螺旋与电子内禀自旋的对应关系推导(世毫九实验室原创研究)
  • IO练习题
  • 告警准确率从61%跃升至98.7%:基于LSTM-Attention双模态异常检测的工业级落地实践
  • ArcGIS Pro 3.0 下 Linkage Mapper 报错全攻略:从‘No module named lm_config’到‘Circuitscape failed’的20+个坑我都帮你踩了
  • Nvidia cuDNN 面试准备
  • 徐珊新歌《六月的简历和情书》上线:用2086年的嗓音,唱哭2026年的每一个你
  • 什么是CDN?小学生也能听懂的网络加速魔法
  • Cursor 插件,才是 AI 编程的真正终局
  • 别再傻傻分不清了!用Python实战案例帮你彻底搞懂准确率、召回率和精确度
  • ripgrep 15.1.0 官方版下载(夸克网盘+百度网盘,SHA256校验)
  • 113.手写Linux刷机自动化工具|适配小米一加,自动检设备、防翻车、批量刷分区
  • 量子模拟技术解析:非简谐振荡器的VQE实现
  • 别再手动调参了!盘点10个开箱即用的相机标定工具(含OpenCV/Kalibr/Matlab保姆级对比)
  • 深度实战:Python爬取今日头条关键词搜索结果的完整指南(Ajax接口与signature签名破解)爬取今日头条关键词搜索结果o 技术点:Ajax接口、signature签名破解(进阶)
  • AnywhereVLA框架:语言驱动的机器人移动操作系统
  • AI时代下,Java程序员还要看源码吗?
  • 为什么很多硬件工程师工作10年,能力却只增长了2年?
  • Transformer模型在表格数据合成中的性能优化与实践
  • PyTorch轴承故障识别实战包:含CWRU一维振动数据、LSTM/1D-CNN模型权重与训练可视化图表
  • 3分钟掌握Topit:macOS窗口置顶的终极解决方案
  • LinkSwift:八大网盘直链解析神器,告别限速烦恼
  • 从SVD到RANSAC:点云平面拟合的数学原理与Python代码逐行解析(避坑参数设置)
  • 基于I2C与Arduino的模块化街机按钮控制器设计与实现
  • defer性能陷阱:我是如何解决内存逃逸问题的
  • 在线 UML 制图神器:用例图、时序图、流程图一键生成非常好用
  • WzComparerR2 终极指南:冒险岛WZ文件提取器的完整使用教程
  • 终极B站广告跳过工具:小电视空降助手完整使用指南
  • Translumo:Windows平台实时屏幕翻译工具完全指南