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

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

3天内不再提示

串行外围设备接口总线的特点以及它的基本配置

嵌入式星球 来源:嵌入式星球 作者:嵌入式星球 2020-09-24 15:20 次阅读

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

能力和特点

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

基本主从配置

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

动画1显示了数据从Microchip A移入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灯串。

结论

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

fqj

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

    关注

    17

    文章

    1615

    浏览量

    89600
  • 串行数据传输

    关注

    0

    文章

    4

    浏览量

    6796
收藏 人收藏

    评论

    相关推荐

    是否有可能使用CYSPP配置文件连接到外围设备

    我们的现有系统使用中央和外围设备,使用基于 Microchip RN4020 的中央和外围设备。 由于供应限制的原因,我们希望将英飞凌 CYBT-483056 SoC 用于 BLE central。 我们想知道是否有可能使用CYSPP
    发表于 03-01 06:54

    怎样减少变频器对PLC与外围设备通讯的干扰?

    转速的重要设备,广泛应用于各个工业领域。然而,由于变频器本身的特性以及电磁干扰等原因,会对PLC(Programmable Logic Controller)与外围设备的通讯产生干扰,进而影响整个系统的运行稳定性和可靠性。本文将
    的头像 发表于 11-20 16:36 839次阅读

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

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

    如何使用STM32G4系列微控制器存储器和外围设备

    本参考手册面向应用程序开发人员。提供了关于如何使用STM32G4系列微控制器存储器和外围设备。 STM32G4系列是一系列具有不同内存大小和封装的微控制器以及外围设备。 有关订购信息
    发表于 09-08 06:59

    I2C总线的工作原理和功能特点

    I2C(Inter-Integrated Circuit)总线是一种由Philips公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C
    发表于 08-17 10:19 647次阅读
    I2C<b class='flag-5'>总线</b>的工作原理和功能<b class='flag-5'>特点</b>

    SPI总线的原理与Verilog设计实现

     SPI(Serial Peripheral Interface,串行外围设备接口),是Motorola公司提出的一种同步串行接口技术
    发表于 08-14 09:00 938次阅读
    SPI<b class='flag-5'>总线</b>的原理与Verilog设计实现

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

    SPI总线(Serial Peripheral Interface串行外围设备接口总线)是三线式的串行
    发表于 07-20 18:17 1367次阅读
    常用<b class='flag-5'>串行</b>EEPROM的编程应用(三)

    MCU如何使用串行通信与外部外围设备进行通信

    在本节中,我们将了解MCU如何使用串行通信与外部外围设备进行通信。MCU充当嵌入式设备的“大脑”,而外围设备则充当“手和脚”。这意味着MCU必须与这些单元中的每一个进行通信。例如,考虑
    的头像 发表于 07-10 09:22 892次阅读
    MCU如何使用<b class='flag-5'>串行</b>通信与外部<b class='flag-5'>外围设备</b>进行通信

    SPI总线协议的基础知识

    SPI,是英语 Serial Peripheral Interface 的缩写顾名思义就是串行外围设备接口。SPI是一种高速的,全双工,同步的通信总线, 并且在芯片的管脚上只占用四根线
    发表于 06-07 15:40 4283次阅读
    SPI<b class='flag-5'>总线</b>协议的基础知识

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

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

    从Peripheral Option配置任何外围设备时 ,显示工具链项目中不存在外围设备怎么解决?

    我从几天开始使用 S32 Design studio。 目前我正在研究用于声音应用的 S32K142 微控制器。 当我尝试从Peripheral Option 配置任何外围设备时 ,显示工具链项目
    发表于 05-31 07:45

    PLC如何正确的连接外围设备

    PLC外围设备指什么呢?指按钮、各种传感器等、继电器、接触器、电磁阀等输入输出模块,主要是为了扩充PLC的功能。那么如何正确的连接这些外围设备呢?一起来看看吧:
    发表于 05-23 11:52 647次阅读
    PLC如何正确的连接<b class='flag-5'>外围设备</b>?

    MCUXpresso查看GPIO值,外围设备视图是空的的原因?

    我需要查看 GPIO 值,但外围设备视图是空的。需要做什么来填充外围设备视图?我真的希望不要使用 NXP Semiconductors MCU 应用程序调试器,因为我的调试会话需要支持在闪存中保留一些空间。我正在使用 GDB PEMicro 调试器。
    发表于 05-09 10:00

    SPI通信总线简述

      Serial Peripheral Interface:是Motorola公司推出的三线同步接口,串行外围设备接口,是一种高速全双工的通信总线
    的头像 发表于 05-06 11:29 2350次阅读
    SPI通信<b class='flag-5'>总线</b>简述

    串行通信SPI总线的详解分析

      SPI(Serial Peripheral Interface)总线系统是一种同步串行外设接口,可以是MCU与各种外围设备串行方式进行
    的头像 发表于 05-05 16:40 3121次阅读
    <b class='flag-5'>串行</b>通信SPI<b class='flag-5'>总线</b>的详解分析