SPI总线详解

article/2025/9/18 15:27:58

1. SPI的简介和应用场景

SPI通信协议由摩托罗拉公司于20世纪80年代中期开发而成,SPI是种一个串行设接口,高速,全双工,同步的通信总线,芯片上只占用了四根线,这能大大的节约了芯片的管脚,
应用的设备有:一般的闪存Flash, EEPROM,SD卡,液晶显示屏等设备

![在这里插入图片描述](https://img-blog.csdnimg.cn/0bc63997f9fc4b1d905f0c7524cb5b0d.png

2. SPI 的优势和缺点

2.1 SPI总线的优势

1.全双工,高速率传输 ,比如比I2C 传输速率更高
2.推免输出接口,推挽输出接口能够减少走线分叉
3.信号完成性强,通信协议灵活 
4.消息帧可任意调节
5.功耗低,电路简单 ,不需要上拉电阻,功耗可以更低
6.软件配置简单

2.2 SPI总线的缺点

1.单一主设备号通常只能支持一个主设备号
2.传输距离短,一般只适合板内信号传输
2.缺少硬件检查协议,没有硬件级别的错误检查协议
4.无法内部寻址,多从设备时需要额外的片选信号线

3.SPI信号线介绍

3.1 SPI 信号逻辑线

SPI总线包括4条信号逻辑线,定义如下

MISO:Master inout slave output 主机输入,从机输出(数据来自从机)
MOSI: Master output slave input 主机输出,从机输出(数据来自主机)
SCLK:serial Clock 串行时钟信号,由主机产生发送给从机
CS:片选信号,由主机发送,以控制与那个从机通信,通常时低电平为有效信号
在这里插入图片描述

3.2 SPI 接线方式

spi接线方式分别由二种分别是常规的独立从机配置和菊花链配置
1.常规的独立从机配置
常规的独立从机配置,每个从机都需要一条单独的CS线,当主机要更特定的从机通信时,将相应的CS信号线拉低,并保持其他CS信号线为高,同时因为从机的MISO脚,再同一条信号上,因此要求没有被选择的从机的MISO引脚要配置为高组态输出
在这里插入图片描述

2.菊花链配置
我们一般以信号线以串行的方式从一个设备依次传到下一个设备,直到数据到达目标设备的数据传输方式称为菊花链。
菊花链缺点:如果从机出现单点故障时,那么低于该设备优先级的从机就掉线了,距离主机越远的从机获得服务的优先级就越低。所以需要设置总线检测器,并安排好从机的优先级。如果某个从机超时应及时处理,放置单点故障造成整个链路的崩溃。菊花链充分的使用了SPI移位寄存器的功能,每个从机在下一个时钟周期,将输入数据复制到输出。
在这里插入图片描述

4. SPI 配置模式

SPI 可以根据时钟极性CKP和时钟相位CKE配置成四种模式

CKP:配置时钟默认状态
CKE:选择采样时钟边沿
CKP = 0时空闲电平为低 电平0
CKP = 1时空闲电平为高 电平1,
CKE用于选择在那个时钟边沿进行数据的采样,
CKE = 0 时钟信号的一个跳变沿采样
CKE = 1 时在时钟的第二个跳变沿采样

在这里插入图片描述

5. SPI 总线通信协议

SPI 是一种通信通信的总线协议,数据线根据不同的配置,在时钟的上升沿(电平从低到高)或下降沿(从高到低)进行采样
spi通信的时序如下
1.主机先将对应从机的CS信号拉低,通知从机开始建立连接,数据接收端检测到时钟的边沿信号后,就立即开始读取数据线上的信号
在这里插入图片描述
SPI是全双工的,主机在发送数据的同时也在接收数据,主机可以通过查询的方式,来判断从机是否由数据需要发送,如果由主机会继续发送数据。来获取从机想要的发送的数据。之后从机只需要丢掉这些无效数据 (Dummy Data) 就可以了。
在这里插入图片描述

参考连接:B站SPI总线视频


http://chatgpt.dhexx.cn/article/3Xn3i6Kt.shtml

相关文章

Log4j2基本使用

文章目录 1. Log4j2入门2. Log4j2配置3. Log4j2异步日志4. Log4j2的性能 Apache Log4j 2是对Log4j的升级版,参考了logback的一些优秀的设计,并且修复了一些问题,因此带 来了一些重大的提升,主要有: 异常处理&#xff…

Logback 对比 Log4j2

Logback 对比 Log4j2 测试分为本地测试端和服务器端,分别对gateway网关进行日志输出的压测 同步日志,不打印日志 logback(150并发,0间隔,循环50次) log4j2(150并发,0间隔,循环50次) 同步日志,打印日志(大小4k,循环输出100次) logback(150并发,0间隔,循环50次) log4j2(150并…

Log4j(四)——Log4j1与Log4j2的区别

前言 几乎每个大型应用程序都包含自己的日志或跟踪API。为了符合这一规则,欧盟SEMPRER项目决定编写自己的跟踪API。这是在1996年初。经过无数次的增强、几个版本和大量的工作之后,API演变成了log4j,这是一个流行的Java日志包。这个包是在Apa…

log4j与log4j2性能对比及log4j升级至log4j2方案

1.前言 之前某个服务在压测环境中出现了问题,分析之后得知是log4jLogger对象争用厉害,很多线程阻塞在此。 以上问题证明log4j在高并发高QPS情况下,是存在性能问题的。 之后把log4j升级成了log4j2,并采取异步日志模式&#xff0c…

日志框架LOG4J2系列二——log4j2配置文件

日志框架LOG4J2系列二——log4j2配置文件 一、log4j2支持的配置文件格式二、log4j2.xml配置文件三、log4j2.xml配置项详解总结上一节:日志框架LOG4J2系列一——入门 在上一节留下了两个疑问: 1、为什么日志输出到控制台,如何输出到文件中? 2、日志的格式为什么是这样的? 要…

SpringBoot 项目中使用Log4j2详细(避坑)

以下部分内容转载整理自 log4j2 实际使用详解_vbirdbest的博客-CSDN博客_log4j2 ,感谢 vbirdbest 的相关知识分享 首先,认识一下三胞胎 log4j 是apache实现的一个开源日志组件logback 同样是由log4j的作者设计完成的,拥有更好的特性&#x…

Log4j2漏洞

2021/12/15漏洞更新如下 官方链接CVE:http://cve.scap.org.cn/vuln/VHN-408570 安全公告编号:CVE-2021-45046发现 Apache Log4j 2.15.0 中针对 CVE-2021-44228 的修复在某些非默认配置中不完整。当日志配置使用带有上下文查找(例如,$${ctx:l…

Log4j2-Log4j 2介绍及使用

Log4j 2 官网Log4j 2简介架构日志级别FilterAppender 将日志请求打印到多个目标Layout 自定义输出格式转到Log4j 2 API 控制台Appender的简单配置文件Appender的简单配置SocketAppenderAsyncAppender控制台和文件的AsyncAppender 配置Log4j 2使用Log4j 2 Log4j 2 官网 https:/…

log4j2 使用详解

转载自 Blog of 天外的星星: http://www.cnblogs.com/leo-lsw/p/log4j2tutorial.html Log4j 2的好处就不和大家说了,如果你搜了2,说明你对他已经有一定的了解,并且想用它,所以这里直接就上手了。 1. 去官方下载log4j …

一问三不知之log4j2漏洞简析

1.log4j2漏洞介绍 1.1简介 Apache Log4j 2是对Log4j的升级,它比其前身Log4j 1.x提供了重大改进,并提供了Logback中可用的许多改进,同时修复了Logback架构中的一些问题。是目前最优秀的Java日志框架之一。 2021年11月24日,阿里云…

Log4j2使用详解

日志框架简单比较(slf4j、j.u.l、log4j、logback、log4j2 ) slf4j:slf4j是对所有日志框架制定的一种规范、标准、接口,并不是一个框架的具体的实现,因为接口并不能独立使用,需要和具体的日志框架实现配合使…

log4j2配置参数详解

1.概述 JAVA常用的日志收集api和实现框架都有多种,不同的api和实现框架之间怎么相互兼容都比较复杂,不过大部分的日志框架实现也都提供了对其他日志收集方式的兼容和切换(可以参考slf4j、jcl、jul、log4j1、log4j2、logback大总结 - 乒乓狂魔…

Log4j2详解

1.背景 Log4j 2中记录日志的方式有同步日志和异步日志两种方式,其中异步日志又可分为使用AsyncAppender和使用AsyncLogger两种方式。 2.Log4j2中的同步日志 所谓同步日志,即当输出日志时,必须等待日志输出语句执行完毕后,才能执…

log4j2 的使用【超详细图文】

log4j2 的使用 Apache Log4j2 是对Log4j 的升级版本,参考了logback 的一些优秀的设计,并且修复了一些问题,因此带来了一些重大的提升,主要有: 异常处理,在logback中,Appender中的异常不会被应…

Log4j2 简介

介绍 Log4j2是Log4j的升级版,与之前的版本Log4j 1.x相比、有重大的改进,修正了Logback固有的架构问题的同事,改进了许多Logback所具有的功能。 特性 一、API 分离 Log4j2将API与实现分离开来。开发人员现在可以很清楚的知道能够使用哪些没有兼…

数据分析方法08用户画像

用户画像 1、 概念 用户画像是指用户信息标签化,通过收集用户多维度的信息数据(如人口统计属性,社会属性,行为偏好,消费习惯等),对其进行统计,分析,从而抽象出用户信息…

用户画像及其应用案例分享

一、用户画像基础概念 用户画像,即用户信息标签化,通过收集用户的社会属性、消费习惯、偏好特征等各个维度的数据,对用户特征属性进行刻画,并对这些特征进行分析、统计,挖掘潜在价值信息,从而抽象出用户的…

大数据分析--用户画像

从去年还在北京工作的时候就开始不断的听说,用户画像、用户画像,而且,有个项目,项目领导美其名曰:用户画像,这么长时间,也没有真正的思考过什么叫用户画像。前几天看到一篇关于这方面的文章&…

【数据分析】京东平台用户画像分析

1.用户信息标签 用户信息的收集包括用户基础要素、用户场景、行为偏好、心理个性、交际等多方面。 可以用静态标签、动态标签两大类来划分。 静态数据:用户相对稳定的信息,主要包括人口属性、商业属性等方面数据;这类信息果企业有真实信息则无需过多建…

用户画像解析

用户画像是大数据行业言必及之的时髦概念。现在我们运营谈及用户画像,它也是和精准营销、精细化运营直接钩挂的。这篇文章主要讲产品和运营角度的用户画像。 一、什么是用户画像 用户画像一点也不神秘,它是根据用户在互联网留下的种种数据,主…