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

SPI协议详解(Standard SPI、Dual SPI和Queued SPI)

1、标准SPI

1.1、SPI接口的引脚

在这里插入图片描述

(1)SCLK:时钟线;
(2)MOSI(master output slave input):主设备输出,从设备输入,单向传输;
(3)MISO(master input slave output):主设备输入,从设备输出,单向传输;
(4)CS(chip select):片选信号,用于主片选中从片;

1.2、SPI通信协议

在这里插入图片描述

(1)SPI(serial peripheral interface)是串行外设接口的缩写;
(2)SPI是一种高速的、全双工、同步的串行通信总线; 全双工体现在主从设备间通信时发送数据和接收数据是单独的数据线,能够同时接收和发送数据;同步体现在主从设备间有时钟线,主设备提供时钟信号;
(3)SPI可以实现采用主从方式工作,实现一对多,其中主设备通过多个CS片选引脚来控制和从设备的通信;
(4)SPI总线在传输数据时,先传送高位,后传送地位;数据线为高电平表示逻辑1,低电平表示逻辑0;一个字节传送完成后,无须应答即可开始下一个字节的传送;
(5)主设备/从设备在时钟线的上升沿或者下降沿往数据线上发送数据,在下降沿或者上升沿从数据线上读取数据;

1.3、SPI的四种模式:相位和极性

CPOL=0CPOL=1
CPHA=0时钟线在空闲时为低电平;在每个周期的第一个时钟沿采样时钟线在空闲时为高电平;在每个周期的第一个时钟沿采样
CPHA=1时钟线在空闲时为低电平;在每个周期的第二个时钟沿采样时钟线在空闲时为高电平;在每个周期的第二个时钟沿采样

(1)相位(CPOL):表示时钟线空闲时的状态;
(2)极性(CPHA):表示设备从数据线采样的时刻;

1.4、时序分析

在这里插入图片描述

(1)上面的时序图是CPOL=1 ,CPHA=1的情况;
(2)MSB代表字节数据的高位,LSB代表字节数据的地位,所以SPI协议是先发高位再发低位;
(3)在每个时钟周期发送一个bit的数据,数据在数据线上的发送和接收是在一个时钟周期里完成的,前半个周期A设备往数据线上发数据,后半个周期B设备从数据线上读数据;
(4)分析MOSI线上发送MSB位的时序:空闲时时钟线是高位,在时钟线的下降沿主设备开始往MOSI线发数据,在上升沿时从设备从MOSI线上读数据,这样一个bit就传输完成;
(5)空闲时时钟线是高电平,所以CPOL=1;每个时钟周期都是先有下降沿再有上升沿,设备是在上升沿采样,而上升沿是时钟周期的第二个时钟沿,所以CPHA=1;

1.5、四种模式的选择

(1)实际的电路中,SPI协议中的主设备就是主控,从设备是外设;
(2)主控的SPI控制中,模式是可以配置的,但是从设备的模式是在出厂的时候就定死了;
总结:查阅外设的数据手册,知道外设的SPI模式,主设备去适配从设备的模式;

1.6、SPI协议的优缺点

优点:
(1)没有像I2C这样复杂的从设备寻址系统;
(2)分离的MISO和MOSI信号线,因此可以同时发送和接收数据,支持全双工;
(3)极其灵活的数据传输,不限于8位,它可以是任意大小的字;
(4)数据传输速率比I2C更高(几乎快两倍);
缺点:
(1)使用四根信号线(I2C和UART使用两根信号线);
(2)虽然没有负责的从设备寻址系统,但是要为每个从设备预留一根CS片选线;
(3)没有应答机制,无法确认是否已成功接收数据;
(4)与RS-232和CAN总线相比,只能支持非常短的距离;

2、Dual SPI和QSPI

2.1、使用场景介绍

(1)通常我们说的SPI就是Standard SPI,有4根信号线,分别为CLK、CS、MOSI和MISO,也就是上面介绍的SPI协议;
(2)Dual SPI:只是针对SPI Flash而言,不是针对所有SPI外设。对于SPI Flash,全双工并不常用,因此扩展了mosi和miso的用法,让它们工作在半双工,用以加倍数据传输。也就是对于Dual SPI Flash,可以发送一个命令字节进入dual mode,这样MOSI变成SIO0(serial io 0),MISO变成SIO1(serial io 1),这样一个时钟周期内就能传输2个bit数据,加倍了数据传输;
(3)Queued SPI Flash:在Dual SPI的基础上增加了两根I/O线(SIO2,SIO3),目的是一个时钟内传输4个bit,而QSPI就是Queued SPI的简写;
总结:Dual SPI和Queued SPI是针对flash的接口,根据flash工作的特性,将全双工改为半双工,提高通信的速率;

2.2、QSPI接口分析

在这里插入图片描述
在这里插入图片描述>(1)CS:片选线;
(2)WP(IO2):复用引脚,WP(write protect):当做写保护引脚;IO2就是当做数据传输引脚;
(3)HOLD(IO3):复用引脚,做HOLD功能时是暂停QSPI Flash的操作,IO3就是当做数据传输引脚;
总结:QSPI的引脚是功能复用的,具体时序不去分析,最终要达到的效果是能时序同时4根数据线去传输数据;

2.3、QSPI的电路原理图

在这里插入图片描述

(1)上面是SPI flash的电路原理图;
(2)连接的线:时钟线、复位线、片选线、4根数据传输线;

3、三种SPI协议的总结

(1)标准SPI是通用的,Dual SPI和QSPI只适用于flash;
(2)标准SPI:标准4线连接,全双工,同时收和发;
(3)Dual SPI:标准4线连接,半双工,2根数据线,并线发和收,双方向切换;
(4)QSPI:标准4线连接,半双工,4根数据线,并线发和收,双方向切换;

推荐

给大家推荐一个学校嵌入式知识的网站,博主在大学时候学习嵌入式知识、找工作的时候都在用这个网站,网站里有C语言、Linux等等的笔试题、面试常问问题等等知识,无论是学习基础知识、面试刷题、交流工作经验都是不错的选择。大家一起进步,欢迎留言交流。
链接:学习神器跳转
在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/8456.html

相关文章:

  • 【代码随想录二刷】Day15-二叉树-C++
  • C++为什么能重夺年度语言?
  • 视频监控实时接入——以海康威视为例(2023.2.16)
  • 推荐系统[一]:超详细知识介绍,一份完整的入门指南,解答推荐系统是什么。
  • 新手小白入门必看!如何批量注册Twitter账号?
  • 虚拟环境的创建以及labelme的使用教程
  • CSS中的BFC详细讲解(易懂)
  • 华为3面,官网显示面试通过了...开始泡池子,进入漫长等待期
  • 【新2023】华为OD机试 - 构成的正方形数量(Python)
  • ElasticSearch之RestClient操作索引库和文档
  • Lp正则化
  • 云原生 -- Docker进阶(Docker-compose,Docker网络简单介绍)
  • taskset命令:让进程运行在指定CPU上
  • Pod基本概念与Pod应用生命周期
  • DDL 数据定义语言
  • 设计模式概述
  • 华为OD机试 - 箱子之形摆放(Python)| 真题+思路+考点+代码+岗位
  • 第九章:创建用户和用户权限
  • 如何制定人生目标
  • 用户认证概述
  • XQuery FLWOR + HTML
  • MySQL用户管理
  • C++【模板初阶】
  • 华为OD机试 - 磁盘容量(Python)| 真题+思路+考点+代码+岗位
  • 更专业、安全、可控!政企都选择WorkPlus私有化部署
  • [SDX12] X12 USB to LTE IPA概率不生效问题分析及优化策略
  • mysql8.0(单表查询与多表拆线)
  • 用于汽车传感器的混合点云语义压缩:性能评估
  • 最流行十大在线客服系统排行榜-市场常见客服系统软件排行-2023最新
  • 算法笔记(六)—— 二叉树相关概念及经典算法题