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

    文章

    1097

    浏览量

    42421
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1903

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用SPI给两块板子相互通信主从设备该如何选择呢?

    使用SPI给两块板子相互通信主从设备该如何选择呢?
    发表于 01-20 07:11

    SPI 支持单线半双工通信模式

    SPI 支持单线半双工通信模式,在该模式下,主机和从机通过一条双向数据线进行数据通信,主机使用 MOSI,从机使用 MISO,未使用的其他 SPI 信号线可供其它
    发表于 12-12 07:52

    通信协议IIC与SPI最全对比分析

    的外部总线(相对于内部总线)。与IIC不同,SPI没有明文标准,只是一种事实标准,对通信操作的实现只作一般的抽象描述,芯片厂商与驱动开发者通过data sheets和application notes
    发表于 12-10 06:04

    SPI的多机通信

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

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

    本篇博客具体包括SPI协议的基本原理、模式选择以及时序逻辑要求,采用FPGA(EPCE4),通过SPI通信协议,对flash(W25Q16BV)存储的固化程序进行芯片擦除操作。
    的头像 发表于 12-02 10:00 2983次阅读
    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 797次阅读

    AG32 内置的CPLD 的DMA功能如何实现

    一、在AGM 的AG32 CPLD中实现DMA(直接内存访问)功能,其核心逻辑如下: 1、系统架构•采用主从架构:MCU作为主设备,CPLD作为从设备•交互方式:MCU通过访问寄存器的方式
    发表于 10-31 15:42

    RVMCU课堂「15」: 手把手教你玩转RVSTAR—SPI总线通信

    SPI原理简介 ​SPI是一种主从式的总线通信,通常是“一主一从”或“一主多从”,但如果能保证系统中任意时刻只有一个处于激活状态的主设备,也可以通过时分
    发表于 10-31 07:00

    AEK-COM-ISOSPI1技术解析:SPI隔离通信在汽车电子中的应用

    根。ISOSPI协议具有差分通信的特点,有助于提高远程通信的抗噪性和鲁棒性。AEK-COM-ISOSPI1加密狗承载有L9963T收发器,可配置为SPI总线的从机或主机,并支持8位至64位SP
    的头像 发表于 10-24 15:48 1069次阅读
    AEK-COM-ISOSPI1技术解析:<b class='flag-5'>SPI</b>隔离<b class='flag-5'>通信</b>在汽车电子中的应用

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

    STMicroelectronics STEVAL-BMS1T SPI转隔离式SPI加密狗支持将SPI信号转换为隔离式SPI信号,从而将必要的电线数量从四根减至两根。ISOSPI协议提
    的头像 发表于 10-16 14:01 878次阅读
    基于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 4714次阅读
    数字电压表设计教程之<b class='flag-5'>SPI</b>协议详解

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

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

    第十七章 SPI

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