SPI 协议的解析

article/2025/8/26 22:50:22

        

目录

1、SPI 的硬件层

1.1、SPI接口的信号线

1.2、SPI通信常见的连接方式

2、SPI的通信协议

2.1、起始信号

2.2、停止信号

2.3、数据有效性

2.4、时钟的同步

3、SPI的四种工作模式


        SPI协议是由摩托罗拉公司提出的一种串行外围设备通信接口,是一种高速全双工的通信总线。它被广泛地使用在ADC、LCD、存储器等设备中,包括一些需要与MCU之间有较高通讯速率要求的场合中。

1、SPI 的硬件层

        SPI是采用主从模式的一种通信方式,它支持一主一从、一主多从,但是不支持多主机模式。

常见的一主多从的连接方式如下:

1.1、SPI接口的信号线

        SPI接口共有四根信号线,它们分别如下:

        SCLK:时钟信号线。由主机产生并控制。

        MOSI:主机数据输出,从机数据输入。(主出从入)

        MISO:主机数据输入,从机数据输出。(主入从出)

        NSS:从机片选使能信号线。该信号由主机进行控制。在一主对多从的模式下,每一个从机都需要一个NSS,用于主机选择和那个从机进行通信(一般为低电平有效)。当一个SPI设备需要发送广播数据,它必须拉低NSS信号,以通知所有其它的设备它是主设备。

1.2、SPI通信常见的连接方式

(1)SPI通信配置为全双工的连接方式:

        这种连接方式允许主从机之间互相进行通信,时钟均由主机产生。

(2)单工模式 —— 主机接收,从机发送

        这种模式下由主机产生时钟SCK,主机只能收到从机上报的数据,不能向从机下发数据。

(3)单工模式 —— 主机发送,从机接收

        这种模式下由主机产生时钟SCK,主机只能向从机下发数据,不能接收从机上报的数据。常见的应用有带SPI接口的LCD显示屏。

(4)双向通信的连接方式

2、SPI的通信协议

        SPI的协议定义了通信的起始信号、停止信号、数据有效性、时钟同步等。它的通讯时序如下:

图:SPI通信时序图

        这是一个主机的通信时序,信号线 NSS、SCK、MOSI 都是由主机控制,MISO 是由从机进行控制。其中 MOSI 和 MISO 上的数据仅在 NSS 为低时才有效,并且每个SCK 时钟周期只交换一位数据。

2.1、起始信号

        SPI通信时序图中的①为通信的起始信号,由主机控制NSS从高电平到低电平,从而选择要进行通信的从机,再通过主机产生时钟信号SCK,启动一次数据的传输。

2.2、停止信号

        SPI通信时序图中的⑥为通信的起始信号,由主机控制NSS从低电平到高电平,从而结束一次数据的传输。

2.3、数据有效性

        SPI 在 SCK 时钟的同步下进行数据的准备和采样,如通信时序图的②③④⑤所示。在 NSS 为低的情况时,在 SCK 的上升沿时 MISO 和 MOSI 进行数据准备,SCK 的下降沿时读取 MISO 和 MOSI 上的数据。在 NSS 为高时,MISO 和MOSI 上的数据无效。

2.4、时钟的同步

        SPI 的数据传输是需要 SCK 时钟信号严格同步的,每一个 SCK 周期只传输一位数据,这一个周期里要完成数据的准备和采样,且数据的输入和输出是同时进行的。

        SPI中数据是MSB 先行或 LSB先行,在协议中是没有硬性规定,只需通信双方保持统一即可。

        SPI 一次数据传输可以是 8 位或 16 位为单位,每次传输的单位数不受限制。

3、SPI的四种工作模式

        SPI 一共有四种工作模式。它们的区别是:

        1)总线空闲时 SCK 的电平状态

        2)数据开始采样的时刻。

        这四种模式是通过 “时钟极性 CPOL” 和 “时钟相位 CPHA” 的电平来实现和区分的。如下:

        1)CPOL=0 时,SCK 引脚在空闲状态保持低电平;

        2)CPOL=1 时,SCK 引脚在空闲状态保持高电平;

        3)CPHA=0 时,SCK 时钟的第一个边沿进行采样;

        4)CPHA =1 时,SCK 时钟的第二个边沿进行采样。

        时钟相位CPHA =1 ,数据在SCK 时钟的第二个边沿采样的时序图如下:

        时钟相位CPHA =0 ,数据在SCK 时钟的第一个边沿采样的时序图如下:

        对嵌入式开发感兴趣的话,欢迎关注微信公众号“嵌入式之入坑笔记”,一块学习交流吧!

 


http://chatgpt.dhexx.cn/article/MasF5fZ0.shtml

相关文章

SPI协议详解

1.SPI协议简介 1.1.SPI协议概括 SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器&a…

一文看懂SPI协议

文章目录 SPI协议简介4线还是3线?4种工作模式多种传输速率SPI协议的基本时序SPI协议的升级版FPGA实现SPI协议SPI和IIC的对比总结 SPI协议简介 板卡内不同芯片间通讯最常用的三种串行协议:UART、I2C、SPI,之前写过串口协议及其FPGA实现&#…

SPI协议简单介绍

导言 SPI是串行扩展总线。 串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时系统的更改和扩充极为容易。 常用的串行扩展总线有:I2C(Inter IC Bus)总线、单总线(1-WIRE BUS)、SPI(Serial Peripher…

SPI通信协议详解

SPI协议基本概念 SPI接口 (1)SPI(Serial Peripheral interface)是一种同步串行传输规范,也是单片机外设芯片串行外设扩展接口,该接口是一种高速,全双工,同步的通信总线,…

SPI 协议详解

SPI 协议详解 1、SPI 简介2、SPI四线3、SPI四种工作模式4、SPI时序图 1、SPI 简介 SPI 全称是 Serial Perripheral Interface,也就是串行外围设备接口。 SPI 是 Motorola 公司推出的一种同步串行接口技术,是一种高速、全双工的同步通信总线,…

SPI协议简介—学习笔记

SPI协议简介—学习笔记 1、SPI百度百科 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚&…

一文搞懂SPI通信协议

目录 1、简介 2、通信原理 3、通信特性 3.1、设备选择 3.2、设备时钟 3.2.1、时钟速率 3.2.2、时钟极性 3.2.3、时钟相位 3.3、四种模式 4、多从机模式 5、SPI优缺点 1、简介 SPI是串行外设接口(Serial Peripheral Interface)的缩写&#xf…

SPI协议详解(图文并茂+超详细)

加入技术交流群 领取资料 文章目录 先说串口SPI通讯协议SPI特性时钟频率时钟极性 CKP/Clock Polarity时钟相位 CKE /Clock Phase (Edge)时钟配置总结 模式编号多从机模式优缺点SPI通讯的优势SPI的缺点 编程实现 先说串口 因为之前写过一篇UART,通用串行异步通讯协…

Xms Xmx Xss 释义

Xms 是指设定程序启动时占用内存大小。一般来讲,大点,程序会启动的快一点,但是也可能会导致机器暂时间变慢。 Xmx 是指设定程序运行期间最大可占用的内存大小。如果程序运行需要占用更多的内存,超出了这个设置值,就会…

JVM中的Xms和Xmx

JVM内存参数 -Xms和-Xmx 参考资料:(1) JVM常用内存参数配置 (2)深入理解Java虚拟机 -Xms和-Xmx (1)这两个参数老是搞混,特地记一下。-Xms 为JVM启动时申请的初始Heap值,默认为操作系统物理内存的1/64但小于1G。默认当…

通过两个小例子,更快了解-Xms -Xmx

我们偶尔就会遇到OutOfMemoryError,面试的时候总是能够被问道,可明明背好的面试题临时又不会了,答出来也很生硬,自己都想让自己快点“回家等通知”,那我们就通过下面的两个例子了解一下吧。 开发环境:ide…

程序员都需要会的JVM调优总结 -Xms -Xmx -Xmn -Xss,附idea配置实战(程序员必学)

目录 1.堆大小设置 2.JVM回收器和其他参数 3.JVM常见配置汇总 4.JVM在idea配置实战 5.JVM优化总结 1.堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制&#x…

Xms Xmx size 调整java虚拟机堆大小

-Xms 设置堆空间(年轻代)的初始内存大小,等价于 -XX:InitialHeapSize -Xmx 设置堆空间(老年代)的最大内存大小,等价于 -XX:MaxHeapSize 一旦堆区中的内存大小超过“-Xmx”所指定的最大内存时&#xff0c…

xms应用框架 - 基于.netcore

xms应用框架 - 基于.netcore 背景一、xms是什么二、能干什么三、目标四、框架介绍1、元数据管理2、组织架构3、授权体系4、高度可视化配置5、业务扩展6、流程7、二次开发 五、多图鉴赏六、源码地址 背景 鄙人经过多年开发,数百个项目“打磨(折磨)”,各种…

JVM -XMX与XMS是什么

XMS : JVM初始分配的堆内存XMX : JVM最大允许分配的堆内存,按需分配堆内存分配: 默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制; 空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。 因此服务器一般设置-Xms、-…

xms跨平台基础框架 - 基于.netcore

背景 鄙人经过多年开发,数百个项目“打磨(折磨)”,各种国内外框架平台都有涉及,没有一款称心顺手的,原因有三,一是设计反人类,二是不开源根本无法突破框架限制,三是即使开源也是阉割版&#xff…

C语言常见问题(3):Although the value stored to ‘ret‘ is used in the enclosing expression

就是这个ret返回值是在if里面表达式里赋值的,其他地方没有调用这个ret,相当于这个ret是个多余的!

DVWA靶场XSS(DOM/Reflected/Stored)/XSS+CSRF

目录 一、XSS (DOM) 1.Low 2.Medium 3.High 4.Impossible 二、XSS (Reflected) 1.Low 2.Medium 3.High 4.Impossible 三、XSS (Stored) 1.Low 2.Medium 3.High 4.Impossible 四、XSS(Stored)CSRF组合实验 1.直接访问修改密码URL 2.使用链接访问构造网页修改密码…

DVWA靶机-存储型XSS漏洞(Stored)

DVWA靶机-存储型XSS漏洞(Stored) 前章: DVWA靶机-暴力破解(Brute Force) && DVWA靶机的四个安全等级 DVWA靶机-命令注入漏洞(Command Injection) DVWA靶机-文件包含漏洞(File Inclusion) DVWA靶机-文件上传漏洞(File uploads) DVWA靶机-跨站请求伪造(…

DVWA-XSS(Stored)注入-Low-Medium-Hight

Low 1、进来这里可以看到&#xff0c;好像是有两个入口&#xff0c;先随便填个数据试试水&#xff0c;勒特 payload: <script>alert(1)</script> 2、直接提交&#xff0c;简单拿下。 Medium 1、继续尝试刚才的入口&#xff0c;勒特。 payload: <script>ale…