0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

4线SPI接口的简要介绍

星星科技指导员 来源:嵌入式计算设计 作者:Naseem Aslam 2022-10-24 14:52 次阅读

串行外设接口(SPI)是微控制器和外设IC之间使用最广泛的接口之一,如传感器ADCDAC、移位寄存器、SRAM等。SPI 是一个基于同步、全双工主从的接口。来自主站或从站的数据在时钟上升沿或下降沿同步。主站和从站都可以同时传输数据。SPI接口可以是3线或4线。

本文简要介绍了4线SPI接口,并介绍了支持SPI的开关和多路复用器,有助于减少系统板设计中数字GPIO的数量。

界面

pYYBAGNWN9qAQiP9AADwf9nc764040.png

图 1.带主站和从站的 SPI 配置。

4线SPI器件有四个信号

时钟(斯皮克力克、断续器)

芯片选择

主出,从入

主输入,从站输出 (MISO)

产生时钟信号的设备称为主设备。主站和从站之间传输的数据与主站产生的时钟同步。与I2C接口相比,SPI器件支持更高的时钟频率。用户应查阅产品数据手册,了解SPI接口的时钟频率规格。

SPI接口只能有一个主站,也可以有一个或多个从站。图1显示了主站和从站之间的SPI连接。

来自主机的芯片选择信号用于选择从设备。这通常是一个低电平有效信号,并被拉高以断开从机与SPI总线的连接。当使用多个从站时,每个从站都需要一个单独的芯片选择信号。在本文中,芯片选择信号始终是低电平有效信号。

数据线是数据线。MOSI将数据从主站传输到从站,MISO将数据从站传输到主站。

数据传输

要开始SPI通信,主机必须发送时钟信号,并通过使能CS信号来选择从机。通常芯片选择是有源低电平信号;因此,主站必须在此信号上发送逻辑0以选择从站。

SPI是一个全双工接口;主站和从站都可以分别通过MOSI和MISO线同时发送数据。在SPI通信期间,数据同时被发送(串行移出到MOSI/SDO总线上)和接收(总线上的数据(MISO/SDI)被采样或读入)。串行时钟边沿同步数据的移位和采样。SPI接口使用户能够灵活地选择时钟的上升沿或下降沿,以采样和/或平移数据(请参阅器件数据手册以确定使用SPI接口传输的数据位数)。

时钟极性和时钟相位

在SPI中,主站可以选择时钟极性和时钟相位。CPOL位在空闲状态下设置时钟信号的极性。空闲状态定义为在传输开始时 CS 处于高电平并转换到低电平的时间段,以及在传输结束时 CS 处于低电平并转换到高电平的时间段。CPHA 位选择时钟相位。

根据CPHA位的不同,时钟沿上升或下降沿用于采样和/或移位数据。主机必须根据从机的要求选择时钟极性和时钟相位。根据 CPOL 和 CPHA 位的选择,可提供四种 SPI 模式。表1显示了四种SPI模式。

pYYBAGNWNwWAGuwzAACMvtEidaA670.png

表 1.具有聚碳酸酯和聚碳酸酯的 SPI 模式

图2至图5显示了四种SPI模式下的通信示例。在这些示例中,数据显示在 MOSI 和 MISO 行上。传输的开始和结束由绿色虚线表示,采样边缘以橙色表示,偏移边缘以蓝色表示。(请注意,这些数字仅用于说明目的。为了成功进行SPI通信,用户必须参考产品数据手册,并确保满足器件的时序规格

pYYBAGNWOBGAfhvvAAE2qBp9HjM109.png

图 2.SPI 模式 0,CPOL = 0,CPHA = 0:CLK 空闲状态 = 低电平,数据在上升沿采样,在下降沿移位。

图3显示了SPI模式1的时序图。在此模式下,时钟极性为0,表示时钟信号的空闲状态为低。此模式下的时钟相位为1,表示数据在时钟信号的下降沿(由橙色虚线显示)上采样,数据在上升沿(由蓝色虚线显示)偏移。

poYBAGNWOBmARQu1AADi7sBrD0o824.png

图 3.SPI 模式 1,CPOL = 0,CPHA = 1:CLK 空闲状态 = 低电平,数据在下降沿采样,在上升沿移位。

图4显示了SPI模式2的时序图。在此模式下,时钟极性为1,表示时钟信号的空闲状态为高。此模式下的时钟相位为1,表示数据在时钟信号的下降沿(由橙色虚线显示)上采样,数据在上升沿(由蓝色虚线显示)偏移。

poYBAGNWOCCAUikqAADnFscY-xg146.png

图 4.SPI 模式 2,CPOL = 1,CPHA = 1:CLK 空闲状态 = 高电平,数据在下降沿采样,在上升沿移位。

图5显示了SPI模式3的时序图。在此模式下,时钟极性为1,表示时钟信号的空闲状态为高。此模式下的时钟相位为0,表示数据在时钟信号的上升沿(由橙色虚线显示)上采样,数据在下降沿(由蓝色虚线显示)上移位。

pYYBAGNWOCyAW016AAEMt9iizQ0815.png

图 5.SPI 模式 3,CPOL = 1,CPHA = 0:CLK 空闲状态 = 高电平,数据在上升沿采样,在下降沿移位。

多从站配置

多个从站可与单个SPI主站配合使用。从站可以常规模式或菊花链模式连接。

pYYBAGNWOEOAO4nPAAEJzA7wbdc222.png

图 6.多从属 SPI 配置。

常规 SPI 模式

在常规模式下,需要从主站为每个从站选择单独的芯片。一旦芯片选择信号被主站使能(拉低),MOSI/MISO线路上的时钟和数据就可用于所选从站。如果启用了多个芯片选择信号,则MISO线路上的数据将损坏,因为主站无法识别哪个从站正在传输数据。

从图6可以看出,随着从站数量的增加,来自主站的芯片选择线的数量也在增加。这可以快速增加主站所需的输入和输出数量,并限制可以使用的从站数量。有不同的技术可以用来增加常规模式下的从站数量;例如,使用多路复用器生成芯片选择信号。

菊花链法

在菊花链模式下,从站的配置使得所有从站的芯片选择信号连接在一起,数据从一个从站传播到下一个从站。在此配置中,所有从站同时接收相同的SPI时钟。来自主站的数据直接连接到第一个从站,该从站向下一个从站提供数据,依此类推。

在这种方法中,当数据从一个从站传播到下一个从站时,传输数据所需的时钟周期数与菊花链中的从站位置成正比。例如,在图7中,在8位系统中,第3个从器件上需要24个时钟脉冲才能获得数据,而常规SPI模式下只有8个时钟脉冲。

pYYBAGNWOHaAfuVIAAA2zc_rIWo171.png

图 7.多从属 SPI 菊花链配置。

图8显示了时钟周期和通过菊花链传播的数据。菊花链模式不一定支持所有SPI器件(请参考产品数据手册以确认菊花链是否可用)。

poYBAGNWOJSAXSIGAAHWm0WUhQM580.png

图 8.菊花链配置:数据传播。

支持 SPI 的开关和多路复用器

最新一代支持 SPI 的开关可显著节省空间,而不会影响精密开关性能。本文的这一部分讨论了一个案例研究,说明支持SPI的开关或多路复用器如何显著简化系统级设计并减少所需的GPIO数量。

ADG1412是一款四通道、单刀单掷(SPST)开关,每个开关的控制输入端需要连接4个GPIO。图9显示了微控制器与一个ADG1412之间的连接。

poYBAGNWOKGAYOHxAAD7u-D3ePE820.png

图 9.微控制器 GPIO 作为开关的控制信号。

随着电路板上开关数量的增加,所需的 GPIO 数量也会显著增加。

例如,在设计测试仪器系统和大量开关时,使用大量开关来增加系统中的通道数。在4×4交叉点矩阵配置中,使用4个ADG1412。该系统需要16个GPIO,限制了标准微控制器中可用的GPIO。

图10显示了使用微控制器的16个GPIO连接4个ADG1412。

poYBAGNWOKuADK52AACO_xExGWQ324.png

图 10.在多从属配置中,所需的 GPIO 数量会大幅增加。

减少GPIO数量的一种方法是使用串并联转换器,如图11所示。该器件输出并行信号,可连接到开关控制输入,并且器件可通过串行接口SPI进行配置。这种方法的缺点是通过引入额外的组件来增加物料清单。

pYYBAGNWOOGAYtqKAACczC8g9-0273.png

图 11.使用串行至并行转换器的多从属交换机

另一种方法是使用SPI控制开关。这种方法的优点是减少了所需的GPIO数量,并且还消除了额外的串行至并行转换器的开销。如图12所示,只需7个微控制器GPIOS,即可为4个ADGS1412提供SPI信号,而不是16个微控制器GPIOS。

pYYBAGNWONWADI-lAAA_K-FSyE0864.png

图 12.支持 SPI 的开关可节省微控制器 GPIO。

这些交换机可以以菊花链配置进行配置,以进一步优化 GPIO 计数。在菊花链配置中,无论系统中使用的开关数量如何,主站(微控制器)仅使用四个 GPIO。

图 13 仅用于说明目的。ADGS1412数据手册建议在SDO引脚上使用上拉电阻(有关菊花链模式的更多详细信息,请参阅ADGS1412数据手册)。

pYYBAGNWOM-AejE0AABA5W3D7Fs958.png

图 13.在菊花链中配置SPI支持的交换机,以进一步优化GPIO。

为简单起见,此示例中使用了四个开关。随着系统中开关数量的增加,电路板简单和节省空间的好处是显著的。ADI SPI支持的开关采用4×8交叉点配置,在6层板上提供8个四通道SPST开关,可将总电路板空间减少20%。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7482

    浏览量

    151012
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1700

    浏览量

    91294
收藏 人收藏

    评论

    相关推荐

    spi master接口的fpga实现

    串行外围接口 大致了解: spi是个同步协议,数据在master和slaver间交换通过时钟sck,由于它是同步协议,时钟速率就可以各种变换。 sck:主机提供,从机不能操控,从器件由主机产生的时钟控制。数据只有在sck来了的上升沿或者下降沿才传输。 高级一点的
    的头像 发表于 11-16 10:35 166次阅读
    <b class='flag-5'>spi</b> master<b class='flag-5'>接口</b>的fpga实现

    SPI接口静电放电防护方案

    SPI(Serial Peripheral Interface,串行外围设备接口),是Motorola公司提出的一种同步串行接口技术,是一种高速、全双工、同步通信总线,在芯片中只占用四根管脚用来控制
    的头像 发表于 09-20 15:31 274次阅读
    <b class='flag-5'>SPI</b><b class='flag-5'>接口</b>静电放电防护方案

    SPI接口用于TRF7960

    电子发烧友网站提供《将SPI接口用于TRF7960.pdf》资料免费下载
    发表于 09-18 14:29 0次下载
    将<b class='flag-5'>SPI</b><b class='flag-5'>接口</b>用于TRF7960

    【GD32 MCU 入门教程】GD32 MCU 常见外设介绍(8)SPI 模块介绍

    串行外设接口(Serial Peripheral Interface,缩写为 SPI) 提供了基于SPI 协议的数据发送和接收功能, 可以工作于主机或从机模式。 SPI
    的头像 发表于 08-17 09:36 514次阅读
    【GD32 MCU 入门教程】GD32 MCU 常见外设<b class='flag-5'>介绍</b>(8)<b class='flag-5'>SPI</b> 模块<b class='flag-5'>介绍</b>

    【GD32F303红枫派开发板使用手册】第十九讲 SPI-SPI NOR FLASH读写实验

    SPI(Serial Peripheral interface),顾名思义是串行外设接口,和UART不同的是,SPI是同步通讯接口,所以带有时钟线
    的头像 发表于 06-19 10:12 1048次阅读
    【GD32F303红枫派开发板使用手册】第十九讲 <b class='flag-5'>SPI-SPI</b> NOR FLASH读写实验

    探索SPI单线传输模式中时钟线与数据传输的简化

    探索SPI单线传输模式:时钟线与数据传输的简化之道 在当今的嵌入式系统和微控制器通信中,串行外设接口SPI)因其高速、全双工和同步的特点而广受欢迎。然而,随着设备尺寸和复杂性的不断减
    的头像 发表于 05-28 18:26 1082次阅读

    IIS3DWB 4线SPI中的CS不进MCU的IO口,SPI_MISO没信号是什么原因?

    各位大神好:MEMS加速度芯片IIS3DWB使用中遇到了问题,烦请各位大神赐教,就是4线SPI中的CS不进MCU的IO口,直接接地,SPI_SCK有输出,
    发表于 05-27 07:53

    微控制器的七个串行接口

    我们将简要介绍七个串行接口:SIO、UART、SSP(SPI)、I2C、CAN、USB和EtherMAC。虽然每个接口都有几个不同的操作模式
    的头像 发表于 01-11 09:30 2575次阅读
    微控制器的七个串行<b class='flag-5'>接口</b>

    i2c接口spi接口区别

    重要的区别。 I2C接口SPI接口都属于串行通信接口标准,广泛应用在嵌入式系统和电子设备中。它们之间的主要区别在于通信协议、电气特性、速度和适用场景等方面。 I2C
    的头像 发表于 12-25 15:02 3764次阅读

    能否用MCU访问非标准SPI接口

    的印刷电路板(PCB)布线简单,并且有比并行接口更快的时钟速率,因而越来越受欢迎。而且,使用标准SPI很容易将ADC连接到控制器 。 一些新型ADC具有SPI,但有些ADC具有非标准的3线
    的头像 发表于 12-23 12:25 802次阅读
    能否用MCU访问非标准<b class='flag-5'>SPI</b><b class='flag-5'>接口</b>?

    FPGA通过SPI对ADC配置简介(三)3线SPI配置时序分析

    AD9249的SPI控制模块包含4根信号线,即CSB1、CSB2、SDIO以及SCLK。但CSB1、CSB2可以一起由CSB来控制,实际上就是3线S
    的头像 发表于 12-12 10:47 2363次阅读
    FPGA通过<b class='flag-5'>SPI</b>对ADC配置简介(三)3<b class='flag-5'>线</b><b class='flag-5'>SPI</b>配置时序分析

    FPGA通过SPI对ADC配置简介(二)-4线SPI配置时序分析

    本篇将以德州仪器(TI)的高速ADC芯片—ads52j90为例,进行ADC的4线SPI配置时序介绍与分析。
    的头像 发表于 12-11 09:05 1765次阅读
    FPGA通过<b class='flag-5'>SPI</b>对ADC配置简介(二)-<b class='flag-5'>4</b><b class='flag-5'>线</b><b class='flag-5'>SPI</b>配置时序分析

    SPI与I2C的异同及优缺点

    连接微控制器、传感器、存储器等设备。虽然它们都是串行通信接口,但在很多方面有着明显的异同点。本文将详细介绍SPI和I2C的异同,以及它们的优缺点。 首先,我们先来介绍
    的头像 发表于 12-07 10:46 2991次阅读

    SPI接口的相关介绍

    SPI和IIC接口一样是非常常见的开发板接口,但与IIC相比,SPI设计了一种二进制流的交互方式,拥有更快的传输速度,它可以在任何两个嵌入式设备之间交换消息,ELF1开发板也是通过
    的头像 发表于 12-06 15:49 1240次阅读
    <b class='flag-5'>SPI</b><b class='flag-5'>接口</b>的相关<b class='flag-5'>介绍</b>

    SPI接口知识

    电子发烧友网站提供《SPI接口知识.pdf》资料免费下载
    发表于 11-23 10:12 0次下载
    <b class='flag-5'>SPI</b><b class='flag-5'>接口</b>知识