一文详解SPI接口

串行外设接口(SPI)是微控制器和外围IC(如传感器、ADC、DAC、移位寄存器、SRAM等)之间使用最广泛的接口之一。本文先简要说明SPI接口,然后介绍ADI公司支持SPI的模拟开关与多路转换器,以及它们如何帮助减少系统电路板设计中的数字GPIO数量。

SPI是一种同步、全双工、主从式接口。来自主机或从机的数据在时钟上升沿或下降沿同步。主机和从机可以同时传输数据。SPI接口可以是3线式或4线式。本文重点介绍常用的4线SPI接口。

接口

你是否也厌倦了人与人之间的面具社交?来soul展示自我

广告

图1. 含主机和从机的SPI配置。

4线SPI器件有四个信号:

  • 时钟(SPI CLK, SCLK)
  • 片选(CS)
  • 主机输出、从机输入(MOSI)
  • 主机输入、从机输出(MISO)

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

展开剩余89%

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

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

MOSI和MISO是数据线。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显示了这4种SPI模式。

表1. 通过CPOL和CPHA选择SPI模式

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

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

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

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

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

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

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

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

多从机配置

多个从机可与单个SPI主机一起使用。从机可以采用常规模式连接,或采用菊花链模式连接。

常规SPI模式:

图6. 多从机SPI配置。

在常规模式下,主机需要为每个从机提供单独的片选信号。一旦主机使能(拉低)片选信号,MOSI/MISO线上的时钟和数据便可用于所选的从机。如果使能多个片选信号,则MISO线上的数据会被破坏,因为主机无法识别哪个从机正在传输数据。

从图6可以看出,随着从机数量的增加,来自主机的片选线的数量也增加。这会快速增加主机需要提供的输入和输出数量,并限制可以使用的从机数量。可以使用其他技术来增加常规模式下的从机数量,例如使用多路复用器产生片选信号。

菊花链模式:

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

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

使用该方法时,由于数据是从一个从机传播到下一个从机,所以传输数据所需的时钟周期数与菊花链中的从机位置成比例。例如在图7所示的8位系统中,为使第3个从机能够获得数据,需要24个时钟脉冲,而常规SPI模式下只需8个时钟脉冲。图8显示了时钟周期和通过菊花链的数据传播。并非所有SPI器件都支持菊花链模式。请参阅产品数据手册以确认菊花链是否可用。

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

ADI公司支持SPI的模拟开关与多路转换器

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

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

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

随着电路板上开关数量的增加,所需GPIO的数量也会显著增加。例如,当设计一个测试仪器系统时,会使用大量开关来增加系统中的通道数。在4×4交叉点矩阵配置中,使用四个ADG1412。此系统需要16个GPIO,限制了标准微控制器中的可用GPIO。图10显示了使用微控制器的16个GPIO连接四个ADG1412。

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

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

图11. 使用串行转并行转换器的多从机开关。

另一种方法是使用SPI控制的开关。此方法的优点是可减少所需GPIO的数量,并且还能消除外加串行转并行转换器的开销。如图12所示,不需要16个微控制器GPIO,只需要7个微控制器GPIO就可以向4个ADGS1412提供SPI信号。

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

开关可采用菊花链配置,以进一步优化GPIO数量。在菊花链配置中,无论系统使用多少开关,都只使用主机(微控制器)的四个GPIO。

图13. 菊花链配置的SPI开关可进一步优化GPIO。

图13用于说明目的。ADGS1412数据手册建议在SDO引脚上使用一个上拉电阻。有关菊花链模式的更多信息,请参阅ADGS1412数据手册。为简单起见,此示例使用了四个开关。随着系统中开关数量的增加,电路板简单和节省空间的优点很重要。在6层电路板上放置8个四通道SPST开关,采用4×8交叉点配置时,ADI公司支持SPI的开关可节省20%的总电路板空间。文章'精密SPI开关配置提高通道密度'详细说明了精密SPI开关配置如何提高通道密度。

图13用于说明目的。ADGS1412数据手册建议在SDO引脚上使用一个上拉电阻。有关菊花链模式的更多信息,请参阅ADGS1412数据手册。为简单起见,此示例使用了四个开关。随着系统中开关数量的增加,电路板简单和节省空间的优点很重要。在6层电路板上放置8个四通道SPST开关,采用4×8交叉点配置时,ADI公司支持SPI的开关可节省20%的总电路板空间。文章'精密SPI开关配置提高通道密度'详细说明了精密SPI开关配置如何提高通道密度。

ADI公司提供多种支持SPI的模拟开关与多路转换器。欲了解更多信息,请访问:https://www.analog.com/cn/products/switches-multiplexers/analog-switches-multiplexers.html 。

首赞 +1
平台声明
(0)

相关推荐

  • 编过SPI的程序吗?时钟相位和时钟极性是什么?

    什么是SPI通讯总线 SPI总线的英文全称为S"Serial Periphral Interface",意思是串行外设接口,由于通讯距离比较短,适用于芯片级别的短距离通讯.SPI的 ...

  • 一文看懂I2C协议

    作者:Wang Chao 出处 :http://www.wangchaochao.top/2021/03/21/about-i2c/ I2C是什么 在消费电子,工业电子等领域,会使用各种类型的芯片,如 ...

  • 接口IIC

    接口IIC

  • 两块STM32之间的SPI主从通信实例(附代码工程)

    最近因为工作需要,要实现控制板之间的 SPI 通讯.两块 STM32 之间的 SPI 通讯平时用的比较少,之前我也没有用过,网上也查了很多资料,没有找到现成的.直接能用的例子.做软件的不就是ctrl+ ...

  • UC头条:嵌入式面试知识点总结

    我最近在找工作呀,哪位大佬有合适的工作机会,可以推荐一下呀. 坐标北京,嵌入式软件工程师. 一.MCU对比 问题: 问题一:STM32F1和F4的区别? 解答: 参看:STM32开发–STM32初识 ...

  • 详解SPI协议

    SPI是Serial Peripheral Interface的简称,是由Motorola公司推出的一种高速.全双工的总线协议,可以实现一对一.一对多芯片通信. SPI接口信号 SPI由SCLK.CS ...

  • 带你快速对比SPI、UART、I2C通信的区别与应用!

    电子设备之间的通信就像人类之间的交流,双方都需要说相同的语言.在电子产品中,这些语言称为通信协议. 之前有单独地分享了SPI.UART.I2C通信的文章,这篇对它们做一些对比. 串行 VS 并行 电子 ...

  • 浅谈I2C总线,有时候它也叫 IIC

    [导读]I2C(Inter Integrated Circuit,内部集成电路)总线是价格低廉却很有效的用以互连小规模嵌入式系统内的外设的网络.I2C 总线有时候也叫作 IIC,它已有20多年的历史了 ...

  • UC头条:IIC, SPI, UART, 单总线

    IIC与SPI通信 IIC SPI通信 IIC与SPI的比较 UART 单总线 因为面试时被问到IIC和SPI通信,所以又重新学习了一下. IIC IIC顾名思义就是两根线,一根SCL(时钟线),一根 ...

  • 一文详解城投公司(上)

    城投公司在我国是一类特殊的企业,承担过了一段特殊的历史使命. 现在,依然是银行.证券公司.信托公司非常重要的一类客户. 如果你在银行做信贷业务.投资业务.投行业务, 一定接触过,但不一定熟悉它们. 上 ...

  • 一文详解城投公司(下)

    嘿,我是那个量产不高的老盐, 为了表达我的歉意,只能确保每一期的发送质量了. 这样稀稀拉拉的发文节奏,预计还要持续一个月,请大家见谅. 文章有点长,但我希望你能坚持,看到最后. 最近,我们和一家证券公 ...

  • 语言模型微调领域有哪些最新进展?一文详解最新趋势

    选自ruder.io 作者:SEBASTIAN RUDER 机器之心编译 编辑:小舟 详解 2020 最具影响力的十大 ML.NLP 研究的 DeepMind 研究科学家又来了,这次来讲讲语言模型微调 ...

  • 一文详解ETH突破4千美元,并且保持持续上涨的内外动力

    ETH再破新高 以太坊以完全不给人喘息的机会,又破新高,最高价格达到美元,进入5月以来,ETH的上涨表现的更加强势,无论是上涨幅度还是速度都有所提升,以太坊已经成为加密货币牛市行情重要的领涨力量,并且 ...

  • 快速看懂消防工程图?一文详解!

    来源:消防工程师 如有侵权请联系删除 想快速看懂消防工程图,首先要对消防系统分类组成有一定的了解,仔细看清楚总平面图,然后把图纸设计说明和图例浏览一遍,其中有各种符号标示需要熟记,然后再去看系统图,只 ...

  • 一文详解教育部的高考通知:题目会变难?提前批有变化?高考状元消失?

    教育部在2月21日发布了一个通知,是关于2021年高考有关的通知.这个通知,可以说很重要,也可以说不重要,因为每年的用词都差不多,但我们仔细研究,还是会发现有区别的. 通知分五部分 第一部分是高考的组 ...

  • 蒸箱、烤箱组合、蒸烤一体机、微蒸烤一体机哪个好?一文详解

    对于日常生活来说,家里面肯定是少不了烤箱的,特别是对于喜欢烘焙的童鞋:也离不开蒸箱,因为蒸菜是目前国人重要饮食之一,营养丰富,鲜嫩可口.对于要想提高家庭饮食质量的人来说,蒸烤一体机必不可少,蒸烤兼顾, ...

  • 拿到一份财务报表,该怎么分析?一文详解!

    拿到一份财务报表,该怎么分析?一文详解!

  • 为什么机器学习算法难以优化?一文详解算法优化内部机制

    作者|小舟 来源|机器之心 损失线性组合是正确的选择吗?这篇文章或许能够给你答案. 在机器学习中,损失的线性组合无处不在.虽然它们带有一些陷阱,但仍然被广泛用作标准方法.这些线性组合常常让算法难以调整 ...