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

    文章

    1706

    浏览量

    91502
收藏 人收藏

    评论

    相关推荐

    KeyStone架构串行外设接口(SPI)手册

    SPI(Serial Peripheral Interface)是一种高速、全双工、同步的串行通信协议,它允许微控制器与一个或多个外围设备进行通信。SPI通信通常使用四根线:SCK(时钟线
    发表于 12-16 10:33 0次下载

    scsi接口串行还是并行

    可以是并行的,也可以是串行的,这取决于其具体的实现方式。 一、SCSi接口的发展历程 早期的SCSi接口 SCSi接口最早出现在1986年,由美国国家标准协会(ANSI)发布。最初的S
    的头像 发表于 10-14 10:31 346次阅读

    串行接口PCB设计指南:优化布局与布线策略

    串行接口是计算机上的一个扩展接口,通常简称为串口或COM口,采用串行通信方式进行数据传输。在串行通信中,数据是一位一位地顺序传送的,通信线路
    的头像 发表于 09-18 13:58 1720次阅读
    <b class='flag-5'>串行</b><b class='flag-5'>接口</b>PCB设计指南:优化布局与布线策略

    串行接口PCB设计指南:优化布局与布线策略

    串行接口是计算机上的一个扩展接口,通常简称为串口或COM口,采用串行通信方式进行数据传输。在串行通信中,数据是一位一位地顺序传送的,通信线
    发表于 09-18 12:02

    如何使用可配置逻辑块 (CLB) 实施定制串行接口

    电子发烧友网站提供《如何使用可配置逻辑块 (CLB) 实施定制串行接口.pdf》资料免费下载
    发表于 09-09 10:07 0次下载
    如何使用可配置逻辑块 (CLB) 实施定制<b class='flag-5'>串行</b><b class='flag-5'>接口</b>

    快速串行接口(FSI)在多芯片互连中的应用

    电子发烧友网站提供《快速串行接口(FSI)在多芯片互连中的应用.pdf》资料免费下载
    发表于 08-27 10:18 0次下载
    快速<b class='flag-5'>串行</b><b class='flag-5'>接口</b>(FSI)在多芯片互连中的应用

    串行外设接口的菊花链实现

    电子发烧友网站提供《串行外设接口的菊花链实现.pdf》资料免费下载
    发表于 08-27 09:45 1次下载
    <b class='flag-5'>串行</b>外设<b class='flag-5'>接口</b>的菊花链实现

    串行接口与并行接口的区别

    串行接口(Serial Interface)与并行接口(Parallel Interface)是计算机与外部设备之间进行数据传输的两种基本方式,它们在多个方面存在显著差异。以下将从数据传输方式、传输速率、接线方式、设备兼容性、优
    的头像 发表于 08-25 17:08 3633次阅读

    串行接口的工作原理和结构

    串行接口(Serial Interface)的工作原理和结构是理解其在计算机与外部设备之间数据传输方式的重要基础。以下将详细阐述串行接口的工作原理及其典型结构。
    的头像 发表于 08-25 17:01 1664次阅读

    ADS79xx串行接口ADC数据表

    电子发烧友网站提供《ADS79xx串行接口ADC数据表.pdf》资料免费下载
    发表于 07-16 10:26 0次下载
    ADS79xx<b class='flag-5'>串行</b><b class='flag-5'>接口</b>ADC数据表

    TUSB2046x 4端口集线器,用于带可选串行EEPROM接口的通用串行总线数据表

    电子发烧友网站提供《TUSB2046x 4端口集线器,用于带可选串行EEPROM接口的通用串行总线数据表.pdf》资料免费下载
    发表于 06-25 09:36 0次下载
    TUSB2046x 4端口集线器,用于带可选<b class='flag-5'>串行</b>EEPROM<b class='flag-5'>接口</b>的通用<b class='flag-5'>串行</b>总线数据表

    串行音频接口(SAI)中slot是什么意思?

    最近想使用STM32F746中的串行音频接口(SAI)发送音频数据给一个音频编解码芯片,在查看datasheet中,出现很多次的slot,但是又没有详细地介绍slot到底是什么,里面包含的是什么数据,求各位大神帮忙
    发表于 05-11 07:01

    什么是I2C接口?什么是I3C接口?I2C与I3C的区别

    I2C接口是一种串行通信协议,全称为Inter-Integrated Circuit,即集成电路间总线。它是一种双向、两线制(SCL和SDA)的串行通信接口,主要用于连接微控制器和其他
    的头像 发表于 02-17 14:39 6240次阅读
    什么是I2C<b class='flag-5'>接口</b>?什么是I3C<b class='flag-5'>接口</b>?I2C与I3C的区别

    usb-c接口是什么意思 pd接口和usb接口哪个更好

    以通过USB-C接口提供更高的功率输出,以满足各种设备的充电需求。 USB接口是一种通用的串行总线标准,它早期版本主要用于连接计算机与外围设备,如键盘、鼠标和打印机等。USB
    的头像 发表于 01-31 17:01 8131次阅读

    微控制器的七个串行接口

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