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

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

3天内不再提示

常用的4线SPI接口介绍

machao1680 来源:电子设计宝典 作者:电子设计宝典 2022-10-25 09:06 次阅读

外设接口(SPI)是微控制器和外围 IC(如传感器ADCDAC、 移位寄存器、SRAM等)之间使用最广泛的接口之一。 SPI 是一种同步、全双工、主从式接口。来自主机或从机的数据在时钟上升沿或下降沿同步。主机和从机可以同时传输数据。SPI 接口可以是3线式或4线式。本文重点介绍常用的4线SPI接口。

四线接口

4 线 SPI 器件有四个信号

时钟(SPICLK,SCLK)

片选(CS)主机输出

从机输入(MOSI)主机输入

从机输出(MISO)

产生时钟信号的器件称为主机。主机和从机之间传输的数据与主机产生的时钟同步。同I2C接口相比,SPI器件支持更高的时钟频率。用户应查阅产品数据手册以了解SPI接口的时钟频率规格。 SPI接口只能有一个主机,但可以有一个或多个从机。图1显示了主机和从机之间的SPI连接。 df57b8e8-53f8-11ed-a3b6-dac502259ad0.png 图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模式。 df60cbe0-53f8-11ed-a3b6-dac502259ad0.jpg 表1.通过CPOL和CPHA选择SPI模式 图2至图5显示了四种SPI模式下的通信示例。在这些示例中,数据显示在MOSI和MISO线上。传输的开始和结束用绿色虚线表示,采样边沿用橙色虚线表示,移位边沿用蓝色虚线表示。请注意,这些图形仅供参考。要成功进行SPI通信,用户须参阅产品数据手册并确保满足器件的时序规格。 df82b854-53f8-11ed-a3b6-dac502259ad0.jpg 图2. SPI模式0,CPOL = 0,CPHA = 0:CLK空闲状态 = 低电平,数据在上升沿采样,并在下降沿移出 图3给出了SPI模式1的时序图。在此模式下,时钟极性为0,表示时钟信号的空闲状态为低电平。此模式下的时钟相位为1,表示数据在下降沿采样(由橙色虚线显示),并且数据在时钟信号的上升沿移出(由蓝色虚线显示)。 df8718cc-53f8-11ed-a3b6-dac502259ad0.jpg 图3. SPI模式1,CPOL = 0,CPHA = 1:CLK空闲状态 = 低电平,数据在下降沿采样,并在上升沿移出 df96a4a4-53f8-11ed-a3b6-dac502259ad0.jpg 图4. SPI模式2,CPOL = 1,CPHA = 1:CLK空闲状态 = 高电平,数据在下降沿采样,并在上升沿移出 图4给出了SPI模式2的时序图。在此模式下,时钟极性为1,表示时钟信号的空闲状态为高电平。此模式下的时钟相位为1,表示数据在下降沿采样(由橙色虚线显示),并且数据在时钟信号的上升沿移出(由蓝色虚线显示)。 dfa08d20-53f8-11ed-a3b6-dac502259ad0.jpg 图5. SPI模式3,CPOL = 1,CPHA = 0:CLK空闲状态 = 高电平,数据在上升沿采样,并在下降沿移出 图5给出了SPI模式3的时序图。在此模式下,时钟极性为1,表示时钟信号的空闲状态为高电平。此模式下的时钟相位为0,表示数据在上升沿采样(由橙色虚线显示),并且数据在时钟信号的下降沿移出(由蓝色虚线显示)。  

多从机配置

多个从机可与单个SPI主机一起使用。从机可以采用常规模式连接,或采用菊花链模式连接。 常规SPI模式 在常规模式下,主机需要为每个从机提供单独的片选信号。一旦主机使能(拉低)片选信号,MOSI/MISO线上的时钟和数据便可用于所选的从机。如果使能多个片选信号,则MISO线上的数据会被破坏,因为主机无法识别哪个从机正在传输数据。 从图6可以看出,随着从机数量的增加,来自主机的片选线的数量也增加。这会快速增加主机需要提供的输入和输出数量,并限制可以使用的从机数量。可以使用其他技术来增加常规模式下的从机数量,例如使用多路复用器产生片选信号。 dfcc6f30-53f8-11ed-a3b6-dac502259ad0.jpg 图6. 多从机SPI配置   菊花链模式 在菊花链模式下,所有从机的片选信号连接在一起,数据从一个从机传播到下一个从机。在此配置中,所有从机同时接收同一SPI时钟。来自主机的数据直接送到第一个从机,该从机将数据提供给下一个从机,依此类推。 使用该方法时,由于数据是从一个从机传播到下一个从机,所以传输数据所需的时钟周期数与菊花链中的从机位置成比例。例如在图7所示的8位系统中,为使第3个从机能够获得数据,需要24个时钟脉冲,而常规SPI模式下只需8个时钟脉冲。 dff1dfe0-53f8-11ed-a3b6-dac502259ad0.jpg 图7. 多从机SPI菊花链配置 图8显示了时钟周期和通过菊花链的数据传播。并非所有SPI器件都支持菊花链模式。请参阅产品数据手册以确认菊花链是否可用。 e005f3b8-53f8-11ed-a3b6-dac502259ad0.jpg 图8. 菊花链配置:数据传播   ADI 支持 SPI 的模拟开关与多路转换器 ADI公司最新一代支持SPI的开关可在不影响精密开关性能的情况下显著节省空间。本文的这一部分将讨论一个案例研究,说明支持SPI的开关或多路复用器如何能够大大简化系统级设计并减少所需的GPIO数量。 ADG1412是一款四通道、单刀单掷(SPST)开关,需要四个GPIO连接到每个开关的控制输入。图9显示了微控制器和一个ADG1412之间的连接。 e00d7048-53f8-11ed-a3b6-dac502259ad0.jpg 图9. 微控制器GPIO用作开关的控制信号 随着电路板上开关数量的增加,所需GPIO的数量也会显著增加。例如,当设计一个测试仪器系统时,会使用大量开关来增加系统中的通道数。在4×4交叉点矩阵配置中,使用四个ADG1412。此系统需要16个GPIO,限制了标准微控制器中的可用GPIO。图10显示了使用微控制器的16个GPIO连接四个ADG1412。 e01b4614-53f8-11ed-a3b6-dac502259ad0.jpg 图10. 在多从机配置中,所需GPIO的数量大幅增加  

如何减少 GPIO 数量?

一种方法是使用串行转并行转换器,如图11所示。该器件输出的并行信号可连接到开关控制输入,器件可通过串行接口SPI配置。此方法的缺点是外加器件会导致物料清单增加。 e02470d6-53f8-11ed-a3b6-dac502259ad0.jpg 图11. 使用串行转并行转换器的多从机开关 另一种方法是使用SPI控制的开关。此方法的优点是可减少所需GPIO的数量,并且还能消除外加串行转并行转换器的开销。如图12所示,不需要16个微控制器GPIO,只需要7个微控制器GPIO就可以向4个ADGS1412提供SPI信号。开关可采用菊花链配置,以进一步优化GPIO数量。在菊花链配置中,无论系统使用多少开关,都只使用主机(微控制器)的四个GPIO。 e02dfa8e-53f8-11ed-a3b6-dac502259ad0.jpg 图12. 支持SPI的开关节省微控制器GPIO  

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

    关注

    48

    文章

    6809

    浏览量

    147636
  • 数据
    +关注

    关注

    8

    文章

    6511

    浏览量

    87599
  • SPI接口
    +关注

    关注

    0

    文章

    251

    浏览量

    33934

原文标题:深入剖析 SPI 通信原理及应用

文章出处:【微信号:电子设计宝典,微信公众号:电子设计宝典】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    一文读懂 4 线 SPI

    沿或下降沿同步。主机和从机可以同时传输数据。SPI 接口可以是3线式或4线式。本文重点介绍
    发表于 10-25 16:32

    【转】一文读懂 4 线 SPI接口

    线式或4线式。本文重点介绍常用4线
    发表于 11-13 22:33

    常用的3线4线电阻温度检测器

    本文介绍常用的3线4线电阻温度检测器(RTD),以及传感器与ADC接口所需的电路,并说明对AD
    发表于 02-25 06:55

    SPI(串行外设接口)工作原理介绍

    SPI 设备SPI 简介SPI(Serial Peripheral Interface,串行外设接口)是一种高速、全双工、同步通信总线,常用
    发表于 03-29 07:01

    4线SPI接口是什么?有哪几个信号?

    串行外设接口SPI)是什么?4线SPI接口是什么?有哪几个信号?如何去减少GPIO数量?
    发表于 06-28 08:44

    SPI协议的作用介绍

    总线。它被广泛地使用在ADC、LCD等设备与MCU间,要求通讯速率较高的场合。SPI物理层SPI通讯设备之间的常用连接方式见图:SPI通讯使用3条总线及片选线,3条总线分别为SCK、M
    发表于 02-17 07:02

    SPI的特性与常用寄存器介绍

    目录:一、SPI简介1.SPI信号线2.SPI模式3.工作时序二、STM32的SPI1.SPI特性2.S
    发表于 02-17 07:27

    i.MX-6ULL --ElfBoard SPI接口介绍

    SPI接口介绍 该芯片使用 SPI 总线进行设置与数据传输。SPI 的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或
    发表于 11-21 10:19

    SPI接口总线介绍

    SPI接口总线介绍 SPI 可以作为主、从器件工作,并可在同一总线上支持多个主、从器件。SPI 主要使用3 个信号。(1)主输出、从
    发表于 11-24 08:41 4636次阅读
    <b class='flag-5'>SPI</b><b class='flag-5'>接口</b>总线<b class='flag-5'>介绍</b>

    一种通用SPI接口的FPGA设计与实现

    SPI 串行总线是一种常用的标准接口,其使用简单方便而且占用系统资源少,应用相当广泛。本文将介绍一种新的通用的SPI 总线的FPGA 实现方
    发表于 09-09 11:58 67次下载
    一种通用<b class='flag-5'>SPI</b><b class='flag-5'>接口</b>的FPGA设计与实现

    介绍常用的4线SPI接口

    图2至图5显示了四种SPI模式下的通信示例。在这些示例中,数据显示在MOSI和MISO线上。传输的开始和结束用绿色虚线表示,采样边沿用橙色虚线表示,移位边沿用蓝色虚线表示。请注意,这些图形仅供参考。要成功进行SPI通信,用户须参阅产品数据手册并确保满足器件的时序规格。
    的头像 发表于 10-25 11:37 6.5w次阅读
    <b class='flag-5'>介绍</b><b class='flag-5'>常用</b>的4线<b class='flag-5'>SPI</b><b class='flag-5'>接口</b>

    重点介绍常用的4线SPI接口

    SPI 是一种同步、全双工、主从式接口。来自主机或从机的数据在时钟上升沿或下降沿同步。主机和从机可以同时传输数据。SPI 接口可以是3线式或4线式。
    的头像 发表于 11-13 16:45 1.9w次阅读
    重点<b class='flag-5'>介绍</b><b class='flag-5'>常用</b>的4线<b class='flag-5'>SPI</b><b class='flag-5'>接口</b>

    4线SPI接口的简要介绍

    串行外设接口SPI)是微控制器和外设IC之间使用最广泛的接口之一,如传感器、ADC、DAC、移位寄存器、SRAM等。SPI 是一个基于同步、全双工主从的
    的头像 发表于 10-24 14:52 1.1w次阅读
    4线<b class='flag-5'>SPI</b><b class='flag-5'>接口</b>的简要<b class='flag-5'>介绍</b>

    SPI通用接口介绍

    SPI 通用接口SPI 通用接口层把具体的 SPI 设备的协议驱动和 SPI 控制器驱动连接
    的头像 发表于 07-25 10:52 472次阅读

    SPI接口介绍

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