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

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

3天内不再提示

如何实现 SPI通信的主从功能

电子设计 来源:IXYS 作者: Zilog 2021-06-17 17:31 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

串行外设接口总线是一种以全双工方式运行的同步串行通信链路,这意味着设备同时发送和接收数据。这些设备作为主/从设备进行通信,其中主设备通过选择带有硬件线路的从设备来启动通信,并且还提供用于将数据位移入和移出从设备的同步时钟。

通信所需的信号是从选择(SS)、主输入从输出(MISO)、主输出从输入(MOSI)和串行时钟(SCK)。SPI 相对于其他通信协议的优势在于,寻址是在硬件中通过 SS 线执行的,从而可以更快地寻址设备,并且通信是全双工的,从而可以更快地传输数据(图 1)。

poYBAGDLFeGAIfUSAACRZh_L4Dg783.png

图 1 串行外设接口总线

SPI 通信开始于主机断言 SS 线。根据器件的不同,SS 线可能是高电平有效或低电平有效。在开始通信之前,主设备必须等待至少一个时钟周期。与 SS 线的活动极性非常相似,SS 激活后的等待时间因设备而异。例如,模数转换器可能要求主设备在其 SS 线被断言后等待转换完成。接下来,主机将开始将数据移出 MOSI 线,并将数据移入 MISO。数据始终以全双工方式传输,即使该数据没有意义。例如,为了让主设备从从设备接收 24 位数据,它还必须向从设备发送 24 位数据(图 2 和图 3)。

poYBAGDLFe-AXrSeAADM29Ru7mg680.png

图 2 阶段 0 时序

poYBAGDLFfyADYktAAC9mQ9UkTs544.png

第一阶段时间

没有关于使用哪个时钟边沿来发送和接收数据的标准,因此根据时钟极性和时钟相位,有四种可能的操作模式。请参阅下面图 4 中的表格。

SPI 模式

pYYBAGDLFgaAfCfVAAClSNaluB4937.png

图 4 SPI 模式

以模式 1 为例,主机将在 SCK 线为低电平时空闲总线。当主机将 SCK 线推高时,它也会将最高有效位放在 MOSI 线上。同时,Slave 将把最重要的放在 MISO 线上。接下来,Master 拉动 SCK 线并从 MISO 线上的 Slave 读取稳定位。同时,Slave 在 MOSI 线上读取 Master 生成的稳定位。当 SS 线路停用时,通信终止,因此它必须在整个通信帧期间保持活动状态。

编辑:hfy

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

    关注

    28

    文章

    1073

    浏览量

    41869
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1866

    浏览量

    99820
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    SPI的多机通信

    SPI支持多机通信模式。在该模式下,主机的从机选择 CS 引脚应配置为输入,与其他主机的总线申请信号相连,用于检测 SPI 总线是否发生冲突。如果某一主机的从机选择 CS 引脚被拉为低电平,说明有
    发表于 12-08 06:47

    FPGA实现基于SPI协议的Flash驱动控制芯片擦除

    本篇博客具体包括SPI协议的基本原理、模式选择以及时序逻辑要求,采用FPGA(EPCE4),通过SPI通信协议,对flash(W25Q16BV)存储的固化程序进行芯片擦除操作。
    的头像 发表于 12-02 10:00 1755次阅读
    FPGA<b class='flag-5'>实现</b>基于<b class='flag-5'>SPI</b>协议的Flash驱动控制芯片擦除

    SPI优点

    高速数据传输: 凭借其同步通信机制,SPI实现快速高效的数据传输,非常适合需要高速通信的应用。与 UART 和 I2C 等其他串行通信
    发表于 11-26 07:42

    SPI、I2C、I2S、UART:通信协议解释

            在嵌入式开发中,最常用的几种通信接口无非就是SPI、I2C、I2S、UART。名字看起来差不多,但应用场景和特性却大不相同。为什么都叫串行通信,结构却不一样?为什么有的能传音频,有的
    的头像 发表于 11-18 10:53 209次阅读

    基于STEVAL-BMS1T的隔离式SPI通信技术解析与应用指南

    STMicroelectronics STEVAL-BMS1T SPI转隔离式SPI加密狗支持将SPI信号转换为隔离式SPI信号,从而将必要的电线数量从四根减至两根。ISOSPI协议提
    的头像 发表于 10-16 14:01 346次阅读
    基于STEVAL-BMS1T的隔离式<b class='flag-5'>SPI</b><b class='flag-5'>通信</b>技术解析与应用指南

    spi硬件主从机,从机接收失败的原因?怎么解决?

    #include \"master_slave.h\" #define MASTER_BUS_NAME\"spi2\" #define
    发表于 10-10 08:10

    数字电压表设计教程之SPI协议详解

    SPI(Serial Peripheral Interface)是串行外设接口的缩写,SPI是一种高速、主从模式、全双工、同步的串行通信总线,由摩托罗拉公司(Motorola)于 20
    的头像 发表于 09-06 10:08 4075次阅读
    数字电压表设计教程之<b class='flag-5'>SPI</b>协议详解

    SPI通信笔记:基础+动图+时序图+总结,一文吃透!

    SPI现在已经成为MCU和外围设备之间最常用的通信方式了。它是一种同步、全双工、主从式的通信接口。工作原理其实很直接:主机产生时钟信号,从机跟着这个时钟同步收发数据。允许双向传输,可以
    的头像 发表于 07-29 14:15 6767次阅读
    <b class='flag-5'>SPI</b><b class='flag-5'>通信</b>笔记:基础+动图+时序图+总结,一文吃透!

    第十七章 SPI

    本篇文章介绍了W55MH32的SPI接口,可工作于SPI或I2S模式,支持半 / 全双工、主从操作,具可编程时钟极性/相位等特征。阐述了主从模式配置、DMA
    的头像 发表于 05-28 17:29 941次阅读
    第十七章 <b class='flag-5'>SPI</b>

    串行通信接口SPI与QSPI的区别

    在嵌入式系统的世界里,选择正确的通信技术可以对项目的性能和可扩展性产生重大影响。让我们比较两个流行的串行通信接口:SPI(串行外设接口)和QSPI(四路SPI)。
    的头像 发表于 04-09 15:24 2557次阅读
    串行<b class='flag-5'>通信</b>接口<b class='flag-5'>SPI</b>与QSPI的区别

    使用NUCLEO-F429ZI实现PTP网络时间同步协议的从时钟部分,如何输出相应的PPS信号用于测量主从时钟同步性能?

    目前正在使用NUCLEO-F429ZI实现PTP网络时间同步协议的从时钟部分,使用ptpd实现了简单的基础功能,但是想请问一下各位大佬如何输出相应的PPS信号用于测量主从时钟同步性能?
    发表于 03-11 08:19

    SPI通信总线概述和Verilog实现

    SPI = Serial Peripheral Interface,是串行外围设备接口,是一种高速,全双工,同步的通信总线。
    的头像 发表于 02-07 14:28 1987次阅读
    <b class='flag-5'>SPI</b><b class='flag-5'>通信</b>总线概述和Verilog<b class='flag-5'>实现</b>

    iic协议与spi协议的区别

    I2C协议与SPI协议的区别 1. 通信方式 I2C :是一种多主机、多从机的通信协议,使用两条线(数据线SDA和时钟线SCL)进行通信SPI
    的头像 发表于 02-05 11:28 4656次阅读

    SPI通信的CLK波形

    请问SPI通信的CLK波形必须是占空比为50%的脉冲信号吗?如果不是的话会有什么影响?
    发表于 01-16 16:52

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

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