SPI通信本质
SPI内部功能框图
摘自参考手册的原理图
简化后的图
宏观示意图
主从机通信示意图
SPI_DR寄存器
如果只有一个 DR 寄存器,那么就无法实现全双工通信,所以,SPI 在设计的时候,就会让 DR 寄存器对应两个缓冲区(其实也是两个不可显寄存器),一个用来写 (发送缓冲),一个用来读 (接收缓冲)。
只有一个DR寄存器是如何处理两个缓冲区的数据的呢?
意法半导体的做法是采用一种 "地址复用" 策略,用同一个地址,根据不同的操作类型,访问不同的缓冲区,从而达到节省物理地址的目的。
我们可以这样理解,在DR寄存器处有一个开关,当你要进行写操作的时候,就接到写缓冲区,当你要进行读操作的时候,就接到读缓冲区。
发送过程
数据移入移位寄存器
注意看红色框部分
发送一位
接收
如此循环
对SPI通信的本质建模(可直接看这个)
Master和Slave的数据组成了一个队列。
SPI 通信的本质,就是一个队列,从队列头部移出数据,移出的数据,再入到队列尾部,循环移位 8 次,就可以完成 8 与 8 比特位的数据交换。 这个过程需要两步:
- 移出队列头部的数据
- 将数据移动到队列尾部 时钟 SCK 是指挥棒,所以一个周期需要两个边沿来控制这个步调
结论
由动态通信过程我们能感受到,全双工是 SPI 的基本特性,数据交换是 SPI 的通信本质。
相关新闻
AI科技热点日报 | 2026年11月1日
文章目录 AI科技热点日报 | 2026年11月1日 📌 今日摘要 一、资本面换挡:OpenAI 融资目标缩水 100 亿美元,苹果市值反超英伟达 事件概要 来源 / Sources 二、算力金融化:英伟达为 Nscale 460 兆瓦数据中心提供超 50 亿美元信用担保 事件概要 来源 / Sources 三、模型能力与…
MySQL:库与表的操作
2. 库的操作 在 MySQL 中,数据是按 库(database)→ 表(table)→ 行(row) 的层级组织的。库是最高一级的逻辑容器,一个 MySQL 服务端可以有多个库,一个库可以有多个表。所…
当画面走到“足够好”:游戏业的下一个付费点,是世界能否回应你
想象一下,当你搁置一个游戏一段时间,再打开时里面的世界变天了,你的归来被AI NPC视为救世主再临。一个容易被误读的趋势是:玩家并不是不爱画面了,而是画面继续堆叠的边际收益,已经小于它吃掉的开发成本。 2…
最新新闻
Spark 3.2.0 + Hadoop 3.2 预编译包部署避坑指南
简介:本资源为 Apache Spark 3.2.0 官方二进制发行版(Hadoop 3.2 兼容构建),面向大数据开发工程师、数据科学家及高校学习者,用于快速部署本地或集群环境下的分布式计算平台,支撑批处理、实时流计算、SQL分…
单机VT调试器从入门到避坑:VMXON、EPT与内核观测实战
简介:「滴水单机VT调试器」是面向虚拟化环境的专业调试工具,适合排查虚拟机底层问题的软件开发者、系统管理员与安全研究人员,可支撑代码级单步调试、CPU/内存与I/O资源监测、异常故障定位及多平台兼容性验证等场景,专业性强、上手…
单机VT调试器实战:VMX/VMCS与EPT断点调试
简介:滴水单机VT调试器面向虚拟化环境下的软件开发者与系统管理员,围绕代码级调试、性能分析、故障排查、兼容性测试和安全观察等场景,帮助读者在正式采用前评估工具的可用性与运行表现。压缩包为rar格式,共143个文件,…
GV7704 Linux驱动安装实战:固件路径与内核兼容性避坑指南
简介:本资源为海思Hisi3531A平台专用的gv7704 SDI视频采集驱动源码包,面向嵌入式Linux驱动开发工程师、音视频设备集成商及广电级视频处理系统开发者,解决SDI高清视频信号在国产SoC平台上的稳定接入、参数查询与底层控制问题。压缩包共10个文…
GV7704驱动深度解析:寄存器映射、I²C时序劫持与硬件复位避坑指南
简介:本资源是面向嵌入式Linux驱动开发工程师与海思平台系统集成人员的GV7704视频采集设备驱动实现,专为Hisi3531A芯片平台定制,解决SDI高清视频信号接入、解析与状态监控等核心问题,适用于广播级视频采集、安防监控前端及多媒体边…
K8s离线环境CoreDNS v1.8.0安装与避坑指南
简介:面向 Kubernetes 集群部署与运维场景的 CoreDNS v1.8.0 镜像离线包,主要服务于需要在 k8s v1.21.2 环境中搭建或修复集群 DNS 服务的工程师,尤其适合内网、离线环境或镜像拉取受限时使用,可解决集群初始化阶段 DNS 组件无法正…
日新闻
STM32嵌入式C++开发:GDB调试与Renode仿真实战指南
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
嵌入式C语言优化陷阱:ESP32切O2后崩溃排查与修复实战
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
芯驰E3118 MCAL XIP工程FEE Demo实战:从配置到掉电恢复
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
周新闻
DRV8818+MK20DX128步进电机驱动方案:从电路到固件实战
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
DRV8818PWPR+PIC18LF46K40双极步进电机驱动实战指南
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
DRV8818PWPR与MK20DX128VFM5工业级双极步进控制协同设计
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
月新闻
DRV8818+MK20DX128步进电机驱动方案:从电路到固件实战
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
DRV8818PWPR+PIC18LF46K40双极步进电机驱动实战指南
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
DRV8818PWPR与MK20DX128VFM5工业级双极步进控制协同设计
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …