发布时间:2026/8/31 15:48:58
协议解析—SPI篇 以下内容是我对于学习笔记的整理和补充仅代表我个人还比较浅薄的认知观点如有错误还请指出感谢各位。基础介绍MOSI –主机输出 / 从机输入数据线共用。MISO –主机输入 / 从机输出数据线共用。SCK –时钟线主设备输出时钟信号至从设备常态低电平共用。CS –从设备选择线。也叫 SS、CSB、CSN、EN 等低电平有效单独发送数据的过程低位先行还是高位先行都是可以自由决定的不受限制。标准速率可达10-50MHz高速SPI可以达到100M以上SPI 的工作时序模式由 CPOL时钟极性决定数据有效的高低和 CPHA时钟相位边缘检测组合决定。这两者都是针对于SCK而设定极性决定了总线在空闲情况下的电平相位则是决定了在第一还是第二个跳变沿采样也就是我们熟悉的上下沿。如表所示时钟的相位和极性的不同可以组合出四种情况。基本情况下我们都是用的0模式但是有一些设备会出现强制要求某一模式或者默认不是0模式的情况我们就需要注意主从模式的一致不然所有的数据都会混乱。模式CPOLCPHA空闲电平数据采样边沿说明模式0 (MODE 0)00低电平上升沿最常用。空闲低上升沿采样。模式1 (MODE 1)01低电平下降沿空闲低下降沿采样。模式2 (MODE 2)10高电平下降沿空闲高下降沿采样。模式3 (MODE 3)11高电平上升沿空闲高上升沿采样。协议解析对于有单独的CS片选信号引脚的SPI协议而言起始与终止信号就显得朴实无华主机只需要拉低对应的从机CS引脚就代表选中高电平就是结束通信主机始终握有通信的掌握权从机无法干预。图中是两个SPI的移位寄存器(Shift Register)两者数据传输的过程就像是一个回环寄存器中数据左移一位最高位被移动到MOSI上寄存器空出最低位同时从机寄存器中数据也是左移一位最高位放置于MISO发送也空出来最低位一轮交换两者的数据都左移了一位同时最低位被对方最高位给补上重复以上交换8次两者的寄存器就完整交换了对方的数据过来寄存器的数据再被读取保存写入新的数据就可以开始下一轮的数据交换。需要注意移位寄存器并非由我们写入而是由发送缓冲寄存器(Tx Buffer)被硬件自动移入后者才是我们去写入的对象同理移位寄存器的读取也不是由我们完成而是被硬件自动送入接收缓冲寄存器(Rx Buffer)具体的发送内容与其他的协议大同小异都是先发送操作指令对于不同的外设其厂家提供的指令集不尽相同在此不做赘述只需要知道应该怎么发送即可发送内容需要看具体的外设操作手册。最常见的模式0由于空闲时是低电平又在上升沿采样就需要我们在CS图中是NSS拉低到第一个时钟周期来之前提前把我们的数据写入发送缓冲器。对于模式2也是如此两者都是在SCL第一个跳变的边缘就需要准备好发送缓冲寄存器的内容准备时间上相对于其余两者其余两者都是第二个跳变沿时间上更为充足而言要更短如果是硬件SPI则没有太大问题但是对于软件SPI而言就需要注意延时了。在高电平期间MOSI读取移位寄存器中的内容并发送MISO则是读取和接收在一个字节的发送过程中移位寄存器做的一直都是左移操作如果你是低位先行则是右移不需要准备新的数据只有在发送完以后寄存器的数据被读取读取由硬件电路自动读取到接收缓冲器而不是由CPU主动读取所以并不是CPU不去读取数据就不会被新的数据覆盖下文有解释才会被内部总线并行地传入新的数据。数据接收之后主要考虑的是接收缓冲器数据保存问题硬件设计上移位寄存器全部移位完成后就会被接收缓冲器自动搬运就会导致如果你在没来得及拿走缓冲器中的数据新的数据就会自动转运旧数据就会被覆盖无法找回。由于SPI的速率高多数情况下我们都会配合DMA来进行数据的转运不需要CPU的频繁数据读取。DMA在此只做简单的了解DMA涉及的范围会比较广。Direct Memory Access见名知义直接内存访问。MCU工作过程中除了自身的大量数据需要处理还会有很多的外设挂载他们也会产生数据需要进行处理每次我们去操作外设搬运数据的时候都是我们CPU在操作如果挂载的外设过多或者数据量大CPU在处理、转运外设数据上就会消耗量的时间反而我们系统原本的工作没人去做了这肯定是不行的。DMA由此而生很多数据其实CPU是不需要直接去进行操作的我们只是读取即可那么DMA就可以帮助我们把总线上的数据自动搬运到我们指定的地方全程硬件自动完成不需要CPU操作极大缓解了CPU的负担。这样哪怕是大量数据的情况比如SPI的寄存器数据不及时取走就会丢失DMA就可以帮我们存到指定的地址CPU要用的时候就再去操作不需要频繁响应这些外设的请求了。杂项标准SPI不只是可以全双工运行还可以分为两种情况两根数据线MOSIMISO半双工模式。一根数据线单工模式。也就是说没法让两根线同时收或者发这种情况是DSPI的场景需要注意不是所有的SPI都可以变成DSPIDSPI需要主机和从机都支持才可以切换。DSPI就是特化写或者读的能力比如对于存储芯片而言我只要他的读那就可以使用DSPI速率是的SPI两倍代价就是失去了写的能力。更高的带宽只能是考虑加线DSPIDual SPI Flash就是让两根线变为输出从而变成半双工但是数据量倍增而QSPI则是多了两个数据线速度再次倍增。小结对比于IICSPI的优点显而易见十多倍的速度差距独立片选信号不需要担心多从机竞争但是代价也是十分明显的至少两倍的引脚消耗要考虑引脚的使用情况。同时SPI对于IIC的协议来说有了更多的模式选择时钟相位的不同组合任意的高低位先行全双工设计不需要收发都挤占一根信号线也不需要IIC那么复杂的协议流程这也是SPI的速度要远高于IIC的原因。因此在实际的使用中大多数SPI的使用情况都是屏幕或者存储一类大数据量需求的IIC主要就是一些传感器之类的小数据需求情况。

相关新闻

2026/8/31 15:48:58

联想向AI基础设施靠拢:深度拆解算力平台与落地实践

如果只看新闻标题,很多人会把“联想向AI基础设施公司靠拢”理解成一次常规的战略改名:联想想多卖点服务器,所以给自己贴一个更时髦的标签。 这个判断只对了一半。 过去一年,我们看到了大量和AI基础设施相关的讨论:智…

2026/8/31 15:43:57

Python天气数据爬取与可视化:从API调用到交互式图表实战

简介:本资源是一份面向Python初学者与课程设计实践者的天气数据爬取与可视化项目,聚焦网络数据获取、清洗及图表呈现全流程,适用于高校编程入门、数据分析基础课或小型课程设计作业。压缩包为单文件ZIP,内含1个核心Python脚本&…

2026/8/31 15:43:57

Matlab Simulink非线性空气悬架建模与仿真全流程解析

简介:本资源是一套面向车辆动力学建模初学者与进阶学习者的空气悬架Simulink仿真建模实践资料,聚焦非线性系统建模核心难点,适用于整车动力学仿真、主动悬架控制算法验证及高校课程设计等场景。压缩包共10个文件(707KB&#xff09…

2026/8/31 16:04:01

中文排版神器:横排文本转竖排PDF方案

软件介绍 这款由吾爱论坛makent原创开发的文本格式转换工具,专注于将TXT文件快速生成竖排PDF文档。 它突破常规排版限制,通过智能处理技术,将横排简体中文文本自动转换为竖排繁体格式,同时内置封面模板,为用户打造…

2026/8/31 16:04:01

网易有道测开笔试全复盘:能力模型、题型解析与备考要点

想进大厂做测开的同学,网易校招笔试基本是绕不开的一关。尤其是网易有道的测开岗位,题目风格和互联网公司里常见的“八股文算法测试设计”组合不太一样,更看重实际工程经验和场景拆解能力。我去年参加过2023校招有道的正式第二批笔试&#xf…

2026/8/31 16:04:01

Java电影院购票系统从零搭建:核心逻辑与代码实现

简介:这是一套基于SpringBoot开发的电影院购票系统完整源码,面向计算机、电子信息工程等专业学生,适用于毕业设计、课程设计及期末大作业等实践场景。系统采用B/S架构与MVC模式,整合Java、MySQL、MyBatis、Vue、Ajax等主流技术栈&…

2026/8/31 16:04:01

办公必备!支持Word/Excel的批量打印解决方案

软件介绍 文档批量打印工具「电脑」是一款专为Windows系统打造的轻量级办公辅助工具,专注于解决多文档快速打印难题。它支持批量处理Word、Excel、WPS等格式的文档和表格,集成双面打印、黑白模式等实用功能,帮助用户大幅提升办公效率。 极…

2026/8/31 16:04:01

克劳德核心词汇:提示词工程与Claude Code实战指南

“Show HN:克劳德的核心词汇”,名字听起来像是个提示词收藏夹,但实际上它更接近一份“Claude 使用频率最高的关键词清单 提示词工程模板”。这类项目在 Hacker News 上出现,通常不是为了介绍模型本身,而是帮你解决一个…

2026/8/31 15:59:00

Delphi 12.3 Athens中DISQLite3嵌入式SQLite数据库实战

简介:本资源是面向Delphi中高级开发者的一套SQLite数据库集成控件解决方案,专为适配Delphi 11至12 Athens版本(含12.3)设计,解决原生数据库组件在轻量级嵌入式场景下性能与部署灵活性不足的问题。压缩包共169个文件&am…

2026/8/31 1:05:20

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/8/31 2:14:20

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/8/31 1:41:28

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/8/31 0:07:32

STM32C5设备支持包(IAR DFP)安装指南与常见坑

上一阵子在IAR里折腾一块基于STM32C5系列的新板子,工程从STM32CubeMX导出来之后怎么都编译不过。报错信息很干脆:找不到设备描述文件。跟着错误路径去查,发现指向的是一个让我愣了一下的名字:STMicroelectronics.stm32c5xx.2.1.0.…

2026/8/31 0:07:32

STM32N657 SWO引脚矛盾:CubeMX显示PB3,数据手册为PB5

拿到STM32N657这颗料的第一天,我就撞上了一个让人原地懵圈的引脚矛盾:CubeMX里清清楚楚显示SWO在PB3,翻开数据手册的引脚说明表,却赫然写着PB5。对于一个靠SWO输出调试日志吃饭的人而言,这种"工具和手册打架"…

2026/8/31 12:44:45

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/31 9:19:59

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/31 6:53:02

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…