SPI通信总线

article/2025/9/18 15:14:18

SPI通信总线

注意

常用的内部通信接口:UART、IIC、SPI,大多数是用于芯片之间的通信,特点是速度快,距离比较短

常用的外部通信接口:RS-232,RS-485,CAN,大多用于远距离传输,要求抗干扰能力强

SPI介绍

SPI 是由摩托罗拉(Motorola)公司开发的全双工同步串行总线,是微处理控制单元(MCU)和外围设备之间进行通信的同步串行端口。主要应用在EEPROM、Flash、实时时钟(RTC)、数模转换器(ADC)、网络控制器、MCU、数字信号处理器(DSP)以及数字信号解码器之间。

SPI 系统可直接与各个厂家生产的多种标准外围器件直接接口,一般使用4 条线:串行时钟线SCLK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI 和低电平有效的从机选择线CS

在这里插入图片描述

通信线说明
CSSlave设备选择线,也叫片选线,低电平有效(有些手册又称为NSS)
SCLK时钟信号,由Master产生,用于同步
MOSIMaster Out Slave Input,主机数据输出,从机数据输入
MISOMaster Input Slave Out,主机数据输入,从机数据输出

起始信号:CS由高变低,为SPI通讯的起始信号

停止信号:CS由低变高,为SPI通讯的停止信号

说明: SPI总线为主从模式,起始信号由主机发出,通过CS选择与之通信的从机,停止信号也由主机发出,结束本次通信。

SPI通信是主从模式,在有多个从机的情况下,从机通过拉低CS线来与主机通信,主机只能与一个从机通信,不能多从机,不然数据会混乱

注意:MOSI和MISO不能交叉连接

通信过程

4线SPI进行通讯时首先拉低CS片选信号选中目标从机,因为SPI可以进行多机通讯,然后SCK要产生连续的脉冲信号,在每个SCK信号的边沿MISO线上的数据(高电平为1,低电平为0,电平由Slave控制)传输到主机Master而MOSI线上的数据(高电平为1,低电平为0,电平由Master控制)传输到从机Slave

数据传输时高位在前,低位在后

通信模式

SPI共有4种通讯模式,由CPOL与CPHA控制。

CPOL-> 0:SCLK空闲时低电平 1:SCLK空闲时高电平

CPHA->0:奇数边沿采集数据 1:偶数边沿采集数据

在这里插入图片描述

经过CPOL和CPHA的组合,有4种模式

模式0:CPOL = 0,CPHA = 0 (SCLK空闲时低电平,奇数边沿采集数据,即上升沿采集,下降沿发送)

模式1:CPOL = 0,CPHA = 1 (SCLK空闲时低电平,偶数边沿采集数据,即下降沿采集,上升沿发送)

模式2:CPOL = 1,CPHA = 0 (SCLK空闲时高电平,奇数边沿采集数据,即下降沿采集,上升沿发送)

模式3:CPOL = 1,CPHA = 1 (SCLK空闲时高电平,偶数边沿采集数据,即上升沿采集,下降沿发送)

注意:为了确保通讯正常,主机与从机的通讯模式需要匹配。

如果不一致,导致的后果如下:

比如主机工作在模式0(上升沿采集数据,下降沿发送数据),从机工作在模式1(下降沿采集数据,上升沿发送)。下降沿时,主机发送数据,从机立马采集数据,此时数据不稳定,通讯失败;上升沿时,从机发送数据,主机立马采集数据,数据也不稳定,通讯也失败。

正常通讯应该如下:

主机处于模式0,从机处于模式3:主机下降沿发数据,从机上升沿采集数据

从机处于模式0,主机处于模式3:从机下降沿发数据,主机上升沿采集数据

主机处于模式1,从机处于模式2:主机上升沿发数据,从机下降沿采集数据

从机处于模式1,主机处于模式2:从机上升沿发数据,主机下降沿采集数据

参考:

https://zhuanlan.zhihu.com/p/548826158

https://www.cnblogs.com/jiek/p/15501171.html

https://mp.weixin.qq.com/s/o_oYGlfGhm815sy6xNnXfw

https://mp.weixin.qq.com/s/g2bGmGmI2DTbOmLIlkBiTABiTA


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

相关文章

FPGA——SPI总线详解(概念)

目录 SPI简介 SPI4种模式: SPI时序 使用SPI总线实现对flash的控制 flash芯片管脚: flash芯片存储 写使能模块 读状态模块 擦除模块 页读模块 页写模块 SPI简介 SPI, Serial Perripheral Interface, 串行外围设备接口, 是 Motorola 公司推出的一…

SPI总线详解笔记

目录 1. 简介 1.1 概述 1.2 特征 1.3 操作模式 2. 外部信号说明 2.1 概述 2.2 信号详细说明 2.2.1 MOSI 2.2.2 MISO 2.2.3 SS 2.2.4 SCK 3. 存储器映射/寄存器定义 3.1 寄存器说明 3.1.1 SPI Control Register 1 3.1.2 SPI Control Register 2 3.1.3 SPI Baud R…

SPI总线规范

SPI是英文Serial Peripheral Interface的缩写,中文意思是串行外围设备接口,SPI是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时…

SPI总线(一):基本原理篇

相关文章: SPI总线(二):驱动分析篇 SPI总线(三):驱动实例 1、什么是SPI? SPI是串行外设接口(Serial Peripheral Interface)的缩写。是 Motorola 公司推出的一 种同步串行接口技术&a…

关于IIC和SPI总线

IICvs SPI 现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips(for IIC)和Motorola&#xff08…

I2C和SPI总线对比

最近2周一直在调试IIC和SPI总线设备,这里记录一下2种总线,以备后忘。 一 IIC总线 I2C--INTER-IC串行总线的缩写,是PHILIPS公司推出的芯片间串行传输总线。它以1根串行数据线(SDA)和1根串行时钟线(SCL&#…

SPI总线介绍

一、概述. SPI, Serial Perripheral Interface, 串行外围设备接口, 是 Motorola 公司推出的一种同步串行接口技术. SPI 总线在物理上是通过接在外围设备微控制器(PICmicro) 上面的微处理控制单元 (MCU) 上叫作同步串行端口(Synchronous Serial Port) 的模块(Module)来实现…

I2C总线和SPI总线的异同点

文章目录 1、内部总线、系统总线、外部总线的概念2、总线通信的基本概念3、I2C和SPI的经典物理层结构4、I2C总线与SPI总线的区别5、I2C总线和SPI总线的共同点 1、内部总线、系统总线、外部总线的概念 总线的分类方式是根据离芯片远近等级进行分类的:内部总线是外设…

SPI总线

【1】SPI总线相关的概念 1》SPI接口是Motorola 首先提出的全双工同步串行外围接口,采用主从模式(Master Slave)架构; 2》支持多slave模式应用,一般仅支持单Master。 3》时钟由Master控制,在时钟移位脉冲下…

1、SPI总线详解

概述 SPI(Serial Peripheral interface)串行外围设备接口,是一种高速的,全双工,同步的通信总线。 SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理…

SPI协议及其工作原理详解

一、概述. SPI, Serial Perripheral Interface, 串行外围设备接口, 是 Motorola 公司推出的一种同步串行接口技术. SPI 总线在物理上是通过接在外围设备微控制器(PICmicro) 上面的微处理控制单元 (MCU) 上叫作同步串行端口(Synchronous Serial Port) 的模块(Module)来实现的…

SPI总线详解

1. SPI的简介和应用场景 SPI通信协议由摩托罗拉公司于20世纪80年代中期开发而成,SPI是种一个串行设接口,高速,全双工,同步的通信总线,芯片上只占用了四根线,这能大大的节约了芯片的管脚, 应用的…

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:/…