一起玩儿物联网人工智能小车(ESP32)——57. SPI总线协议初探(一)

摘要:介绍SPI总线的基本知识

前面已经学习过IIC总线协议,今天开始介绍另一个总线协议——SPI。SPI(Serial Peripheral Interface,串行外设接口)是由Motorola提出的一种高速、全双工、同步的通信总线。并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。它可以使MCU与各种外围设备以串行方式进行通信以交换信息,通信波特率可以高达5Mbps。SPI接口主要应用在EEPROM、FLASH、实时时钟、网络控制器、LCD显示驱动器、AD转换器,数字信号处理器、数字信号解码器等设备之间。

对比前面学习的IIC总线协议,两者的区别就是SPI是一种全双工的同步通信总线,就是设备之间的数据传递可以双方向同时进行,相对于半双工的IIC总线,理论上,相同传输速率下可以有翻倍的数据交换量。

同IIC总线一样,SPI总线也是采用主从工作模式,也就是在SPI总线上,可以有一个主设备和多个从设备同时工作。同IIC不同的是,SPI总线还定义了一个单独的片选线,使得主机可以通过控制不同的片选线状态来选择不同的从设备进行通信。而不像IIC那样,只能通过在总线上发送地址来选择与哪个从设备进行通信,当然,SPI也可以采用地址来区分不同的设备,这个要结合实际需求来决定采用哪种方式了。

SPI总线有三线制和四线制之分。三线制是收发只有一根数据线,通常用于单向通信的设备之间。三线制不能实现全双工通信,在这里就不介绍了。这里介绍一下普遍应用的四线制SPI总线。四线制SPI总线的信号线包括SDI(串行数据输入 Serial Digital IN)、SDO(串行数据输出 Serial Digital OUT)、SCLK(时钟)、CS(片选)。

  1. SDO/MOSI:主设备数据输出,从设备数据输入
  2. SDI/MISO:主设备数据输入,从设备数据输出
  3. SCLK:时钟信号,由主设备产生
  4. CS/SS:片选信号,也叫从设备使能信号,由主设备控制。当有多个从设备的时候,因为每个从设备上都有一个片选引脚接入到主设备机中,当主设备和某个从设备通信时将需要将从设备对应的片选引脚电平拉低(一般低有效)。

SPI总线的连接如下图所示:

SPI是串行通讯协议,也就是说数据是一位一位的传输的。因为SPI采用的是同步数据传输,因此要有一个时钟线SCLK,在数据传输的时候由SCLK提供时钟脉冲,同IIC总线协议一样,时钟线SCLK只能由主设备来控制。SDI,SDO则基于SCLK脉冲完成数据传输。数据输出通过SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少8次时钟周期(上沿和下沿为一次),就可以完成8位数据的传输。

只能由主设备控制SCLK时钟线的系统有这样一个优势,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对SCK时钟线的控制可以完成对通讯的控制。

SPI作为一个数据交换协议,因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。因为不同的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义。因此由于时钟极性和时钟相位的不同,有SPI总线有四种工作模式。

时钟极性(clock polarity,CPOL)指的是空闲时时钟信号的极性。也就是当片选(CS)无效时,始终信号SCLK为高电平还是低电平。时钟相位(clock phase,CPHA)是指主机采样数据的时钟跳变边沿是在第一个跳变沿还是第二个跳变沿。由于时钟极性和时钟相位的不同组合,定义了4中SPI工作模式,如下表所示:

SPI模式

CPOL

CPHA

空闲状态下的时钟极性

用于采样或者移位数据的时钟极性

0

0

0

逻辑低电平

主机在时钟的上升沿采样从机发送的数据;主机在时钟的下降沿移位数据到从机。

1↵

0

1

逻辑低电平

主机在时钟的下降沿采样从机发送的数据;主机在时钟的上升沿移位数据到从机。

2

1

0

逻辑高电平

主机在时钟下降沿采样从机发送的数据;主机在时钟的上升沿移位数据到从机。

3

1↵

1↵

逻辑高电平

主机在时钟的上升沿采样从机发送的数据:主机在时钟的下降沿移位数据到从机。

SPI的主从设备相互通信的时候,必须使用同一种工作模式。由于从机设备在出厂时已经将工作模式固定好了,因此在通信时,主设备必须要根据从设备的工作模式,来调整自己的工作模式,与从设备相匹配,这样才能完成主从设备之间的通信。

好了,今天就先介绍到这里了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/460106.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

防静电地板行业研究:市场需求不断的扩大

防静电地板又叫做耗散静电地板,是一种地板,当它接地或连接到任何较低电位点时,使电荷能够耗散,以电阻在10的5次方到10的9次方欧姆之间为特征。 目前防静电地板产业还没有集中完成规模化,标准化,规范化&…

c++阶梯之类与对象(中)< 续集 >

前文: c阶梯之类与对象(上)-CSDN博客 c阶梯之类与对象(中)-CSDN博客 前言: 在上文中,我们学习了类的六个默认成员函数之构造,析构与拷贝构造函数,接下来我们来看看剩下…

堆排序-Python实现

简述 堆排序(Heap Sort)是一种基于比较的排序算法,它利用堆这种数据结构所设计的一种排序算法。堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。 堆 堆排…

【数据结构】链表OJ面试题4(题库+解析)

1.前言 前五题在这http://t.csdnimg.cn/UeggB 后三题在这http://t.csdnimg.cn/gbohQ 给定一个链表,判断链表中是否有环。http://t.csdnimg.cn/Rcdyc 记录每天的刷题,继续坚持! 2.OJ题目训练 10. 给定一个链表,返回链表开始…

豪掷770亿!华为员工集体“分红大狂欢”:至少14万人受益

豪掷770亿!华为员工集体“分红大狂欢”:至少14万人受益 近日,华为宣布了其2023年度分红计划,总金额高达770.85亿元,预计至少将惠及14万员工。这一消息引发了广泛关注和热议,成为业界的一大亮点。作为中国领…

嵌入式学习之Linux入门篇笔记——16,Linux工具之make工具和makefile文件

配套视频学习链接:http://【【北京迅为】嵌入式学习之Linux入门篇】 https://www.bilibili.com/video/BV1M7411m7wT/?p4&share_sourcecopy_web&vd_sourcea0ef2c4953d33a9260910aaea45eaec8 1.什么是 make 工具? 编译辅助工具。解决使用命令…

【漏洞复现】EasyCVR智能边缘网关用户信息泄漏漏洞

Nx01 产品简介 EasyCVR智能边缘网关是一种基于边缘计算和人工智能技术的设备,旨在提供高效的视频监控和智能分析解决方案。它结合了视频监控摄像头、计算能力和网络连接,能够在现场进行视频数据处理和分析,减轻对中心服务器的依赖。 Nx02 漏…

【代理模式】

定义:代理模式是一种结构型设计模式,它允许我们创建一个代理对象,用于控制对另一个对象的访问。 代理对象充当了被代理对象(目标对象)的代表,与被代理对象实现相同的接口,从而实现对被代理对象…

Vue源码系列讲解——虚拟DOM篇【一】(Vue中的虚拟DOM)

目录 1. 前言 2. 虚拟DOM简介 2.1什么是虚拟DOM? 2.2为什么要有虚拟DOM? 3. Vue中的虚拟DOM 3.1 VNode类 3.2 VNode的类型 3.2.1 注释节点 3.2.2 文本节点 3.2.3 克隆节点 3.2.4 元素节点 3.2.5 组件节点 3.2.6 函数式组件节点 3.2.7 小结 3…

安全的接口访问策略

渗透测试 一、Token与签名 一般客户端和服务端的设计过程中,大部分分为有状态和无状态接口。 一般用户登录状态下,判断用户是否有权限或者能否请求接口,都是根据用户登录成功后,服务端授予的token进行控制的。 但并不是说有了tok…

阿里云服务器多少钱一年?2024年阿里云服务器租用价格表

2024年阿里云服务器租用价格表更新,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核4G服…

vivo发布2023 年度科技创新;阿里全新AI代理,可模拟人类操作手机

vivo 发布 2023 年度十大产品技术创新 近日,vivo 发布了「2023 年度科技创新」十大产品技术创新榜单,并将这些技术分为了 4 个板块。 「四大蓝科技」为 vivo 在去年推出的全新技术品牌,涵盖蓝晶芯片技术栈、蓝海续航系统、蓝心大模型、蓝河操…