SPI硬件设计、协议、速率全解析

这篇具有很好参考价值的文章主要介绍了SPI硬件设计、协议、速率全解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SPI硬件电路

SPI(Serial Peripheral Interface)是一种嵌入式产品常用的板级高速、全双工通信总线。

它采用1主多从的方式进行通信。

整个通信的物理层通常需要(3+N)根线。

3指的是:SCK、MOSI、MISO

N指的是片选线:片选线的数量取决于具体的从机数量及从机配置模式;

1从机时: 只需要1根片选

多从机时:如果支持菊花链模式,也仅需要1根片选;如果不支持菊花链,则每个从机都需要独立的片选。

spi速率,硬件设计-基础知识汇总,电路设计,单片机,fpga开发,stm32,SPI

S\S\ : Slave Select

SCK : Serial Clock

MOSI: Master Output, Slave Input

MISO: Master Input, Slave Output

空闲状态下SCK的电平由CPOL控制、总线运行时的数据采样时刻由CPHA决定,关于CPOL和CPHA的定义在SPI总线标准中的描述如下:

CPOL — SPI Clock Polarity Bit

1 = Active-low clocks selected. In idle state SCK is high.

0 = Active-high clocks selected. In idle state SCK is low.

CPHA — SPI Clock Phase Bit

1 = Sampling of data occurs at even edges (2,4,…,16) of the SCK clock

0 = Sampling of data occurs at odd edges (1,3,…,15) of the SCK clock

简介总结为:

CPOL: Clock POLarity 时钟极性

CPHA: Clock PHAse 时钟相位

CPOL: 决定总线空闲时CLK时钟的极性(0为低电平,1为高电平)

CPHA: 决定数据何时进行采样(0为在时钟的第1个跳变边沿进行采样,1位在时钟的第2个跳变边沿采样)

由此,可以定义出SPI通信时的4种传输模式:

spi速率,硬件设计-基础知识汇总,电路设计,单片机,fpga开发,stm32,SPI
参考原文:《SPI通信的4种传输模式》

SPI时序讲解

一、SPI主从通信:

SPI的基本结构相当于两个8位移位寄存器的首尾相接,构成16位的环形移位寄存器,从而实现了主机与从机的数据交换;

spi速率,硬件设计-基础知识汇总,电路设计,单片机,fpga开发,stm32,SPI

二、SPI通讯模式

SPI有4种不同的传输时序,取决于时钟极性CPOL和时钟相位CPHA的组合。

spi速率,硬件设计-基础知识汇总,电路设计,单片机,fpga开发,stm32,SPI

CPHA是用来控制数据是在第一个跳变沿还是第二个跳变沿采集的。
spi速率,硬件设计-基础知识汇总,电路设计,单片机,fpga开发,stm32,SPI

通过上图可以看到:

CPHA=0的时候,数据是在第一个跳变沿的时候就会被采集。
CPHA=1的时候,数据是在第二个跳变沿的时候才会被采集。

那问题来了,到底是上升沿还是下降沿采集?

这个就由CPOL来决定了:

CPOL=1的时候是上升沿采集。CPOL=0的时候是下降沿采集。

spi速率,硬件设计-基础知识汇总,电路设计,单片机,fpga开发,stm32,SPI

除此以外,CPOL还决定了我们时钟线SCLK空闲时的状态。

CPOL=0的时候表示SCLK在空闲时为低电平。
CPOL=1的时候表示SCLK在空闲时为高电平。

Ok,明白了这个,我们再分析4种模式的时序图。

1.模式0(CPOL=0 CPHA=0)

CPOL = 0:时钟线空闲时是低电平,第1个跳变沿是上升沿,第2个跳变沿是下降沿

CPHA = 0:数据在第1个跳变沿(上升沿)采样

时序图如下:

spi速率,硬件设计-基础知识汇总,电路设计,单片机,fpga开发,stm32,SPI

2.模式1(CPOL=0 CPHA=1)

CPOL = 0:空闲时是低电平,第1个跳变沿是上升沿,第2个跳变沿是下降沿

CPHA = 1:数据在第2个跳变沿(下降沿)采样

时序图如下:

spi速率,硬件设计-基础知识汇总,电路设计,单片机,fpga开发,stm32,SPI

3.模式2(CPOL=1 CPHA=0)

CPOL = 1:空闲时是高电平,第1个跳变沿是下降沿,第2个跳变沿是上升沿

CPHA = 0:数据在第1个跳变沿(下降沿)采样

时序图如下:

spi速率,硬件设计-基础知识汇总,电路设计,单片机,fpga开发,stm32,SPI

4.模式3(CPOL=1 CPHA=1)

CPOL = 1:空闲时是高电平,第1个跳变沿是下降沿,第2个跳变沿是上升沿

CPHA = 1:数据在第2个跳变沿(上升沿)采样

时序图如下:

spi速率,硬件设计-基础知识汇总,电路设计,单片机,fpga开发,stm32,SPI

三、示例分析

实际芯片的Datasheet中,大部分是不会给出SPI时序图工作模式,此时需要根据时钟和数据读取方式判断工作模式。

spi速率,硬件设计-基础知识汇总,电路设计,单片机,fpga开发,stm32,SPI

从CLK看支持Mode 0,空闲时低电平,第一个上升沿采样。

时序分析如下:

  1. CS拉低,开始通信;

  2. CLK引脚上出现脉冲,在脉冲的边沿上,I/O引脚开始脱离高阻态,最多占用一个时钟周期;

  3. MOSI引脚发送指令0x0Bh,MISO引脚处于高阻态,占用八个时钟周期;

  4. MOSI引脚按照大端序发送24位地址,先发送高字节,MISO引脚处于高阻态,共占用24个时钟周期;

  5. MOSI和MISO均进入高阻态,等待八个时钟周期;

  6. MOSI进入空闲,MISO上开始出现数据脉冲,在该芯片上,数据按照写入的顺序读出,读出N个字节,占用N*8个时钟周期;

  7. CS拉高,MOSI/MOSI进入高阻态,CLK引脚回到空闲电平,通信结束。

本文来源于网络,参考原文:《SPI时序,看不懂你打我》

补充知识1-多从机配置模式

SPI多从机配置模式

spi速率,硬件设计-基础知识汇总,电路设计,单片机,fpga开发,stm32,SPI

图. 多从机SPI配置

菊花链模式

spi速率,硬件设计-基础知识汇总,电路设计,单片机,fpga开发,stm32,SPI

图. 多从机SPI菊花链配置

参考原文:《深入剖析 SPI 通信原理及应用》

补充知识2-SPI通信速率

SPI通信速率

SPI的作为master或者slave时可以达到的最大传输速率是多少呢?

I2C协议v2.1规定了100K,400K和3.4M三种速率(bps)。
SPI是一种事实标准,由Motorola开发,并没有一个官方标准。已知的有的器件SPI已达到50Mbps。具体到产品中SPI的速率主要看主从器件SPI控制器的性能限制。

因此SPI的最大传输速率主要受到以下几个条件影响:
1.SPI的最大时钟频率
2.CPU处理SPI数据的能力
3.输出端驱动能力(PCB所允许的最大信号传输速率)

参考原文:《SPI通信介绍》文章来源地址https://www.toymoban.com/news/detail-785549.html

到了这里,关于SPI硬件设计、协议、速率全解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【硬件外设使用】——SPI

    SPI是一种串行端口通信接口,它是一种同步的全双工协议,用于在数字电路之间传输数据。SPI代表串行外设接口,是一种非常流行的数字通讯接口,特别适合在嵌入式系统和单片机上使用。 SPI总线由以下几个主要部分组成: 主设备:主设备通常是芯片、微控制器或单片机,

    2024年02月11日
    浏览(43)
  • stm32 hal库硬件spi(软件spi)驱动1.8寸tft—lcd屏幕

    屏幕是嵌入式开发中的一个重要的部分,cdsn上有许多解释原理的,还有很多是采用正点原子的屏幕来驱动的,对于刚刚入门不久的我们可能没有资金去购买较为昂贵的屏幕。而对于底层原理我们暂时也不必了解的那么深入,能点亮屏幕就是我们最大的快乐。 除了中景园的资

    2024年02月03日
    浏览(50)
  • SPI协议详解(Standard SPI、Dual SPI和Queued SPI)

    (1)SCLK:时钟线; (2)MOSI(master output slave input):主设备输出,从设备输入,单向传输; (3)MISO(master input slave output):主设备输入,从设备输出,单向传输; (4)CS(chip select):片选信号,用于主片选中从片; (1)SPI(serial peripheral interface)是串行外设接口的缩写; (2)SPI是一种高速的、全

    2024年01月21日
    浏览(31)
  • SPI通信协议&SPI通信外设

    目录 SPI 介绍 硬件电路 移位示意图  软件SPI SPI时序基本单元  SPI时序​编辑 W25Q64  硬件电路 W25Q64框图 Flash操作注意事项 指令集  硬件SPI SPI框图  主模式全双工连续传输 非连续传输  推挽输出 ,高低电平都有很强的驱动能力,使得上升沿和下降沿都很迅速。   当ss为高电

    2024年02月10日
    浏览(48)
  • 硬件SPI+LCD增强屏幕刷新率

            近日在研究如何提高LCD的刷新率,修改程序发现LCD屏幕用的是模拟通信,所以刷新特别慢,在设置硬件SPI,并使用通过HAL库HAL_SPI_Transmit()函数发送数据后刷新率并没有提升,为此疑惑了很久。         对此研究了整整一两天,网上找到可能的答案并在此记录一下

    2024年02月16日
    浏览(32)
  • STM32硬件SPI通信详解-------附代码

    1.STM32内部集成了 硬件SPI收发电路 ,可以由 硬件自动执行时钟生成 、 数据收发 等功能, 减轻CPU的负担 2.可配置 8位/16位数据帧 、 高位先行/低位先行 3. 时钟频率 : fPCLK / (2, 4, 8, 16, 32, 64, 128, 256) 4.支持 多主机模型 、 主或从操作 5.可精简为 半双工/单工通信 6. 支持DMA 7. 兼

    2024年04月27日
    浏览(43)
  • GD32F103 硬件SPI通信

    SPI既可以做主机也可以做从机。 当做主机时。MOSI,SCK,CS都是作为输出。 而作为从机时。MOSI,SCK,CS都是作为输入。  所以SPI的硬件电路应该实现这样的功能。 1. GD32框图 如下图做主机的数据流向:   如下图做从机的数据流向:    2. STM32框图  通过一些寄存器的配置来控制

    2024年02月02日
    浏览(42)
  • STM32硬件SPI发送超8字节数据格式

    一般CPU提供的spi接口,支持的是整字节访问,如8bit、16bit等。而非整字节的spi外设(芯片)也是很常见,哪怕是整字节的,很多厂家也是做得与标准spi外设有差别,估计是避开专利问题。而芯片原厂提供的Demo也大多是采用GPIO模拟spi。一般情况下,根据芯片手册说明及访问时

    2024年02月05日
    浏览(38)
  • 【STM32 CubeMX】SPI层次结构SPI协议与SPI控制器结构

    随着嵌入式系统的迅猛发展,STM32系列微控制器在各种应用中得到广泛应用。在嵌入式系统设计中,串行外设接口(SPI)是一种常见且重要的通信协议。为了更便捷地配置和使用SPI,STMicroelectronics提供了一款强大的工具——STM32 CubeMX。本文将着重介绍STM32 CubeMX中SPI的层次结构

    2024年02月20日
    浏览(43)
  • STM32的硬件SPI驱动AD7124的方法

    AD7124是一款适合高精度测量应用的低功耗、低噪声、完整模拟前端。该器件内置一个低噪声24位Σ-Δ型模数转换器(ADC),可配置来提供8个差分输入或15个单端或伪差分输入。片内低噪声级确保ADC中可直接输入小信号。可用于温度测量、压力测量、工业过程控制、仪器仪表和只能

    2024年02月07日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包