SPI总线 通俗易懂讲解

article/2025/9/18 15:18:26

转自:http://bbs.mydigit.cn/read.php?tid=726343

SPI总线

  MOTOROLA公司的SPI总线的基本信号线为3根传输线,即SI、SO、SCK。传输的速率由时钟信号SCK决定,SI为数据输入、SO为数据输出。采用SPI总线的系统如图8-27所示,它包含了一个主片和多个从片,主片通过发出片选信号-CS来控制对哪个从片进行通信,当某个从片的-CS信号有效时,能通过SI接收指令、数据,并通过SO发回数据。而未被选中的从片的SO端处于高阻状态。
SPI总线 通俗易懂讲解
图8-27 SPI总线的系统

  主片在访问某一从片时,必须使该从片的片选信号有效;主片在SCK信号的同步下,通过SI线发出指令、地址信息;如需将数据输出,则接着写指令,由SCK同步在SI线上发出数据;如需读回数据,则接着读指令,由主片发出SCK,从片根据SCK的节拍通过SO发回数据。
  因而对具有SPI接口的从片器件来讲,SCK、SI是输入信号,SO是输出信号。SCK用于主片和从片通信的同步。SI用于将信息传输到器件,输入的信息包括指令、地址和数据,指令、地址和数据的变化在SCK的低电平期间进行,并由SCK信号的上升沿锁存。SO用于将信息从器件传出,传出的信息包括状态和数据,信息在SCK信号的下降沿移出。
  Microchip公司的25XX系列的串行E2PROM采用了SPI总线,该系列器件的性能如表8-2所示。
表8-2 Microchip公司的25XX系列的串行E2PROM
型号
25XX040
25XX080
25XX160
25XX320
容量
4K
512 X 8bit
8K
(1024 X 8bit)
16K
(4096 X 8bit)
32K
(4096 X 8bit)
地址信号
A0~A8
A0~A9
A0~A10
A0~A11

  以25XX320为例,该器件是4K字节的E2PROM,结构如图8-28所示,接口信号为SCK、SI和SO,此外还具有-CS、-WP、-HOLD信号线。其中-CS为器件选中信号,当此信号为低电平时器件被选中,高电平时器件处于等待状态。
SPI总线 通俗易懂讲解
图8-28 25XX320的结构

  与并行接口电路不同的是,在并行接口电路中对器件进行操作的控制信号,在串行接口电路中只能用指令实现,25XX320的操作指令有数据读指令、写操作的允许和禁止指令、写数据指令和状态寄存器的读写指令。在器件的内部有一个8位的指令寄存器,在SCK的上升沿,通过SI信号线,指令输入到上述寄存器并被执行。
表8-3 25系列串行存储器的指令
指令名称
指令格式
描述
READ
00000011
从选定的地址开始读存储器数据
WRITE
00000010
从选定的地址开始写存储器数据
WRDI
00000100
禁止写操作
WREN
00000110
允许写操作
RDSR
00000101
读状态寄存器
WRSR
00000001
写状态寄存器

  器件的读操作时序如图8-29所示。当-CS信号有效时,在SCK信号的同步下,8位的读指令送入器件,接着送入16位地址(由于25XX320只使用地址信号A0~A11,地址的高4位无效)。在读指令和地址发出后,SCK继续发出时钟信号,此时存储在该地址的数据由SCK控制从SO引脚移出。在每个数据移出后,内部的地址指针自动加1,如继续对器件发送SCK信号,可读出下一个数据。当地址指针计到0FFFH之后,将回到0000H。读操作的结束由-CS信号变高实现。
SPI总线 通俗易懂讲解
图8-29 25系列串行存储器的读时序

  25XX系列的串行EEPROM的写操作通过写允许及禁止指令控制,写操作必须在器件处于写允许状态时进行。
  写允许及禁止指令均为8位的指令,指令的操作过程为:将-CS信号置为低电平,在SCK信号的作用下,通过SI引脚输入上述指令,在8位的指令送入器件之后,将-CS信号置为高电平,使器件锁存于写允许或写禁止状态。如在输入写允许指令后未将-CS信号置为高电平,则写允许状态未锁存,此时如直接进行写操作,数据将不能写入存储器。在上电、写禁止指令、写状态寄存器指令、写数据指令执行之后,器件的写允许状态将被复位,即处于写禁止状态。
  写操作通常在写允许指令之后进行,其时序如图8-30所示。在写允许状态锁存后,将-CS变高;再将-CS变低,在SCK的同步下输入写操作指令并送入16位地址,紧接着发送需写入的数据,写入的数据一次最多可达32个,但必须保证在同一页内。一页数据的地址从XXXXXXXX XXX0 0000 开始,到XXXX XXXX XXX1 1111结束,当内部的地址指针计数器达到XXXX XXXX XXX11111后,继续发送时钟信号将使地址计数器回复到该页的第一个地址,即XXXX XXXX XXX0 0000H。
SPI总线 通俗易懂讲解
图8-30 25系列串行存储器的写时序

  为了使数据有效写入,-CS信号只能在写入数据的最后一个字节的最低位写入后变高。如-CS信号在其他时间变高,将无法保证数据的完整写入。在写操作的过程中,能通过读状态指令将状态寄存器的内容读回,当写操作完成后,写允许锁存状态将被复位。
优缺点
SPI 接口具有如下
优点:
     1)  支持全双工操作;
     2)  操作简单;
     3)  数据传输速率较高。
缺点:
     1)  需要占用主机较多的口线(每个从机都需要一根片选线);
     2)  只支持单个主机。     
     3) 没有指定的流控制,没有应答机制确认是否接收到数据。


如果还是看不懂,那就再通俗点。


SPI总线协议介绍


一、技术性能
SPI接口是Motorola 首先提出的全双工三线同步串行外围接口,采用主从模式(MasterSlave)架构;支持多slave模式应用,一般仅支持单Master。时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后(MSBfirst);SPI接口有2根单向数据线,为全双工通信,目前应用中的数据速率可达几Mbps的水平。总线结构如下图所示。
SPI总线 通俗易懂讲解
二、接口定义
SPI接口共有4根信号线,分别是:设备选择线、时钟线、串行输出数据线、串行输入数据线。
SPI总线 通俗易懂讲解

(1)MOSI:主器件数据输出,从器件数据输入
(2)MISO:主器件数据输入,从器件数据输出
(3)SCLK:时钟信号,由主器件产生
(4)/SS:从器件使能信号,由主器件控制
三、内部结构
SPI总线 通俗易懂讲解

四、 时钟极性和时钟相位
在SPI操作中,最重要的两项设置就是时钟极性(CPOL或UCCKPL)和时钟相位(CPHA或UCCKPH)。时钟极性设置时钟空闲时的电平,时钟相位设置读取数据和发送数据的时钟沿。
主机和从机的发送数据是同时完成的,两者的接收数据也是同时完成的。所以为了保证主从机正确通信,应使得它们的SPI具有相同的时钟极性和时钟相位。


        SPI接口时钟配置心得:在主设备这边配置SPI接口时钟的时候一定要弄清楚从设备的时钟要求,因为主设备这边的时钟极性和相位都是以从设备为基准的。因此在时钟极性的配置上一定要搞清楚从设备是在时钟的上升沿还是下降沿接收数据,是在时钟的下降沿还是上升沿输出数据。

五、传输时序
SPI接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图所示,在SCLK的下降沿上数据改变,上升沿一位数据被存入移位寄存器。
SPI总线 通俗易懂讲解

五、数据传输
       在一个SPI时钟周期内,会完成如下操作:
1)主机通过MOSI线发送1位数据,从机通过该线读取这1位数据;
2)从机通过MISO线发送1位数据,主机通过该线读取这1位数据。
这是通过移位寄存器来实现的。如下图所示,主机和从机各有一个移位寄存器,且二者连接成环。随着时钟脉冲,数据按照从高位到低位的方式依次移出主机寄存器和从机寄存器,并且依次移入从机寄存器和主机寄存器。当寄存器中的内容全部移出时,相当于完成了两个寄存器内容的交换。
SPI总线 通俗易懂讲解

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

相关文章

I2C和SPI总线以及通信

通讯属性 概括 Serial/parallel 串行/并行Synchronous/asynchronous 同步/异步Point-to-point / bus 点对点 总线Half-duplex/full-duplex 半双工/全双工Master-slave/ equal partners 主从/对等single-ending / differential 单端/差分 点对点和总线 点对点通讯 只有两个通…

Linux总线之SPI

文章目录 1.spi总线驱动1.1spi简介1.2spi时序解析1.3spi驱动框架1.4spi设备驱动的API1.5spi驱动的实例1.6m74hc595设备树的填充1.6.1m74hc595操作数码管的原理图1.6.2控制器的设备树1.6.3编写自己的设备树 1.7spi相关的结构体及函数1.8spi驱动的实例21.9让数码管流水显示0-f 1.…

SPI总线协议详解

目录 一.概述 二.特点 1.寻址方式 2.采用主-从模式(Master-Slave) 的控制方式 3.采用同步方式(Synchronous)传输数据 4.极性和相位 三.SPI总线传输的模式 四.SPI和I2C的区别 一.概述 SPI(serial peripheral interface)是一种同步串行通信协议,由一个主设备和…

SPI简介

SPI全称是Serial Perripheral Interface,也就是串行外围设备接口。SPI是Motorola公司推出的一种同步串行接口技术,是一种高速,全双工的同步通信总线。SPI时钟频率相比IIC要高很多,最高可以工作在上百MHZ。 SPI以主从方式工作&…

SPI通信总线基本概念

SPI总线概述 SPI总线介绍 SPI(Serial Peripheral interface):是由Motorola公司开发的串行外围设备接口,是一种高速的,全双工,同步的通信总线。主要应用在 EEPROM,FLASH,实时时钟,AD转换器&…

SPI通信总线

SPI通信总线 注意 常用的内部通信接口:UART、IIC、SPI,大多数是用于芯片之间的通信,特点是速度快,距离比较短 常用的外部通信接口:RS-232,RS-485,CAN,大多用于远距离传输&#xf…

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并…