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

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

3天内不再提示

串行外围接口简介

嵌入式星球 2020-10-09 14:57 次阅读

几十年来使用的三种最常见的多线串行数据传输格式是I2CUART和SPI。本文着眼于串行外设接口(SPI)总线,该总线已摆脱了显式的标准化,因此在实现协议之前,请始终检查要使用的集成电路的数据表。

能力和特点

串行外围设备接口总线使用四个数据线在主设备和从设备之间提供全双工同步通信

基本主从配置

串行外设接口允许将数据位从主设备移出到从设备中,同时,还可以将位从从设备移出到主设备中。



动画1显示了数据从microchipA移入microchip B,又从Microchip B移入MicrochipA。

动画2显示了两个微芯片之间SPI事务的虚拟4通道示波器轨迹。由马克·休斯(Mark Hughes)用Mathematica创建

由于SPI尚未标准化,因此可能会遇到先传输最高有效位(MSb)或最低有效位(LSb)的情况。检查设备的数据表并相应地设置数据处理例程。如果您使用的是Arduino,则可以参考此页面以获取有关配置SPI端口信息

时钟极性和相位

时钟转换控制数据的移位和采样。SPI具有四种模式(0、1、2、3),分别对应四种可能的时钟配置。


时钟周期的上升沿采样的位在时钟周期的下降沿移出,反之亦然。

当从选择线被驱动至逻辑低电平(从选择通常为低电平有效信号)时,每个事务开始。从选择线,数据线和时钟线之间的确切关系取决于如何配置时钟极性(CPOL)和时钟相位(CPHA)。
在时钟极性不变的情况下(即,当从器件选择转换为逻辑低电平时,时钟处于逻辑低电平):

  • 模式0:配置时钟相位,以便在时钟脉冲的上升沿采样数据,并在时钟脉冲的下降沿移出数据。这对应于上图中的第一个蓝色时钟轨迹。注意,数据必须在时钟的第一个上升沿之前可用。

  • 模式1:配置时钟相位,以便在时钟脉冲的下降沿采样数据,并在时钟脉冲的上升沿移出数据。这对应于上图中的第二条蓝色时钟轨迹。

在时钟极性反转的情况下(即,当从器件选择转换为逻辑低电平时,时钟处于逻辑高电平):

  • 模式2:配置时钟相位,以便在时钟脉冲的下降沿采样数据,并在时钟脉冲的上升沿移出数据。这对应于上图中的第一个橙色时钟轨迹。注意,数据必须在时钟的第一个下降沿之前可用。

  • 模式3:配置时钟相位,以便在时钟脉冲的上升沿采样数据,并在时钟脉冲的下降沿移出数据。这对应于上图中的第二个橙色时钟轨迹。


关键参数


CLK:串行时钟。由主设备控制。每个时钟周期都会移出一个新的数据位。
SSN:从机选择(“ N”将其标识为低电平有效信号)。由主设备控制。激活的从设备选择线指示主机正在向相应的从设备发送数据或从其请求数据。
MOSI:主输出⇒从输入。数据离开主设备并进入从设备。芯片A上的MOSI线连接到芯片B上的MOSI线。
MISO:主机输入⇐从机输出。数据离开从设备并进入主设备(或以菊花链配置的另一个从设备;请参阅下一节)。芯片A上的MISO线连接到芯片B上的MISO线。
CPOL:时钟极性。这支配时钟信号的初始逻辑状态。有关更多信息,请参考上一节。
CPHA:时钟相位。这支配了数据转换和时钟转换之间的关系。有关更多信息,请参考上一节。

从选择和菊花链
多从选择配置

在标准的SPI安排中,主设备可以通过启用设备(即,将相应设备的从选择线设置为逻辑低电平)向共享公共数据线的单个设备写入数据或向其请求数据。注意不要同时启用多个从站,因为返回到主站的数据将由于MISO线之间的驱动程序争用而损坏。某些应用程序不需要将数据返回给主服务器;在这种情况下,如果主机希望将相同的数据发送到多个从机,则可以同时寻址多个从机。



在多从站选择配置中,每个从站都需要来自主站的唯一从站选择线。如果主站没有足够的I / O引脚来满足所需数量的从站,则可以通过合并解码器/多路分解器来实现I / O扩展,例如74HC(T)238(PDF)(3至8行)解码器/解复用器)。

菊花链配置

在此配置中,数据从一台设备移动到另一台设备。最终的从设备可以将数据返回给主设备。



在菊花链配置中,所有从机共享一条公共的从机选择线。数据从主机转移到第一个从机,然后从第一个从机转移到第二个,依此类推。数据沿线级联直至该系列中的最后一个从机,然后可以使用其MISO线将数据发送到主设备。
这种配置非常适合节日期间流行的可单独寻址的LED灯串。

结论

串行外设接口已经存在了数十年,没有理由期望它会很快消失。虽然I 2 C和UART可能会更受欢迎,但SPI是一种通用且直接的串行通信接口,非常适合某些应用。

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

    关注

    17

    文章

    1610

    浏览量

    89540
收藏 人收藏

    评论

    相关推荐

    微控制器的七个串行接口

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

    SPI串行外设接口是什么

    SPI用于CPU与各种外围器件进行全双工、同步串行通讯。它只需四条线就可以完成MCU与各种外围器件的通讯,这四条线是:串行时钟线(CSK)、主机输入/从机输出数据线(MISO)、主机输
    的头像 发表于 11-09 17:52 295次阅读
    SPI<b class='flag-5'>串行</b>外设<b class='flag-5'>接口</b>是什么

    串联外围设备接口通信原理是什么?

    串联外围设备接口(SPI)通信原理是基于哪些具体的通信协议或工作方式
    发表于 10-28 07:16

    嵌入式系统外围接口的时序分析与电路设计

    电子发烧友网站提供《嵌入式系统外围接口的时序分析与电路设计.pdf》资料免费下载
    发表于 10-09 16:50 1次下载
    嵌入式系统<b class='flag-5'>外围</b><b class='flag-5'>接口</b>的时序分析与电路设计

    CAN、I2S、I2C、SPI、SSP总线简介

    串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口,Mot
    发表于 09-27 06:58

    SPI接口硬件设计介绍

    SPI(Serial Peripheral interface)串行外围设备接口。是微控制器和外围IC(如传感器、 ADC、 DAC、移位寄存器、 SRAM等)之间使用最广泛的
    发表于 09-15 15:45 626次阅读
    SPI<b class='flag-5'>接口</b>硬件设计介绍

    常用串行EEPROM的编程应用(三)

    SPI总线(Serial Peripheral Interface串行外围设备接口总线)是三线式的串行总线,是由摩托罗拉公司所研发,使用三线进行数据传输,分别是SCK时钟引脚,SI数据
    发表于 07-20 18:17 1343次阅读
    常用<b class='flag-5'>串行</b>EEPROM的编程应用(三)

    串行同步通信和串行异步通信的区别

    串口是串行接口(serial port)的简称,也称为串行通信接口或COM接口
    的头像 发表于 07-19 14:13 7908次阅读
    <b class='flag-5'>串行</b>同步通信和<b class='flag-5'>串行</b>异步通信的区别

    SPI接口简介

    串行外设接口(SPI)是微控制器和外围IC(如传感器、ADC、DAC、移位寄存器、SRAM等)之间使用较广泛的接口之一。本文先简要说明SPI接口
    的头像 发表于 06-17 09:13 4484次阅读
    SPI<b class='flag-5'>接口</b><b class='flag-5'>简介</b>

    收藏起来!串行接口串行接口和并行接口的区别-科兰

    现代社会很多电子产品都有接口接口的设计规格是怎么样的,接口串行接口和并行接口,下面我们将围绕
    的头像 发表于 06-05 11:36 1478次阅读

    如何对SPI总线接口进行ESD静电放电保护?

    串行外设接口(Serial Peripheral Interface),简称SPI接口,是一种高速、全双工、同步的通信总线接口,可以使单片机与各种
    的头像 发表于 06-05 09:50 900次阅读
    如何对SPI总线<b class='flag-5'>接口</b>进行ESD静电放电保护?

    SPI串行外设接口设计实现

    SPI 全称为 Serial Peripheral Interface,译为串行外设接口。它是 Motorola 公司推出的一种相对高速的同步、全双工的通信总线协议。
    发表于 05-29 15:40 869次阅读
    SPI<b class='flag-5'>串行</b>外设<b class='flag-5'>接口</b>设计实现

    FPGA和外围接口总结

    FPGA和外围接口-基础版
    的头像 发表于 05-22 10:57 591次阅读
    FPGA和<b class='flag-5'>外围</b><b class='flag-5'>接口</b>总结

    SPI接口的基本原理

      串行外围设备接口(Serial Peripheral Interface,SPI),用来在微控制器和外围设备芯片之间提供一个低成本、易使用的接口
    发表于 05-19 14:45 1599次阅读
    SPI<b class='flag-5'>接口</b>的基本原理

    SPI串行外设接口的特点概述

    SPI是Serial Peripheral interface的缩写,是一种串行外设接口。全双工通信,有4根信号线,在MCU、SOC、FLASH、DSP等芯片上常见。
    的头像 发表于 04-24 17:29 1253次阅读
    SPI<b class='flag-5'>串行</b>外设<b class='flag-5'>接口</b>的特点概述