揭秘SPI的内部工作机制:一文秒懂

本文介绍了SPI接口的基本概念,包括其高速、全双工和一主多从结构,以及CPOL和CPHA时钟特性。详细讲解了工作原理和两种接线图,突出菊花链模式的优势,如减少IO口使用、降低成本和提高数据稳定性。
摘要由CSDN通过智能技术生成

一、SPI介绍

Serial Peripheral interface(SPI英文缩写)串行通信接口,顾名思义是一种用于控制器和外部设备之间进行串行数据传输的接口,例如比较常用的FLASH、RTC、AD/DA芯片等等。

SPI是一种高速的,全双工的、同步的通信接口,通信结构为一主多从,硬件接口上由4根线组成或3根线组成。

4线SPI(全双工):

  • 时钟线:利用时钟线对数据进行同步。

  • MISO线(master in slave out 主入从出):主机接收数据,从机发送数据。

  • MOSI线(master out slave in 主出从入):主机发送数据,从机接收数据。

  • CS线(Chip Select):芯片选择,通过高低电平来控制和设备之间的连接和断开。

    图片

3线SPI(半双工):

  • SCLK时钟线:利用时钟线对数据进行同步。

  • DIO线(data DI DO):数据输入输出线,输入和输出共用一根线,数据单向传输,所以为半双工。

  • CS线(Chip Select):芯片选择,通过高低电平来控制和设备之间的连接和断开。

  • 图片

为什么SPI是高速的数据传输总线?

  1. 因为SPI的发送和接收共用一根时钟线,减少了数据在传输过程中的延迟,从而提高了数据传输速率。

  2. SPI的时钟速率比较快,通常在几十兆赫兹到几百兆赫兹之间。

  3. 协议开销比较小,没有复杂的握手,数据头等等信息。

  4. 硬件SPI通常具有FIFO缓存器,缓存器可减少数据等待的时间。

为什么SPI是一主多从的结构?

    SPI一主多从结构是为了保证通信有序进行,从设备只需要去接收主设备的命令并对其回应,如果SPI总线上有多个从机时,SPI并没有仲裁机制,容易导致数据冲突、错乱。如果要使用多主机可以使用CAN、硬件IIC等等。

二、SPI工作原理

SPI由CPOL(时钟极性)和CPHA(时钟相位)的不同电平状态构成4种工作模式分别为SPI0、SPI1、SPI2、SPI3。

图片

时钟极性:CPOL-决定SCLK空闲状态为高电平还是低电平。

时钟相位:CPHA-决定在第几个跳变沿采样,低电平在第一个跳变沿采样,高电平在第二个跳变沿采样。

图片

由上图所示为SPI3模式,CPOL=1代表SCLK空闲状态为高电平,空闲状态后第一个跳变沿(高电平到低电平)代表数据开始传输。CPHA=1代表在第二个跳变沿进行采样。在上图数据采样标识时,开始采样数据线的高低电平,获取数据。

三、接线图

  1. 常规的一主多从结构接线示意图

图片

此种模式不过多介绍。

2.菊花链接线示意图

图片

菊花链模式下,所有设备共用一个时钟线和片选线,MOSI连接到从机1的MOSI,从机1的MISO连接到从机2的MOSI以此内推,最后从机n的MISO连接到主机的MISO。

使用此种连接方式的优势:

1.减少IO口的使用数量,所有设备共用一个片选引脚。

2.降低硬件成本,减少IO口数量使用,意味着硬件的PCB设计复杂度降低,硬件更容易实现。

3.数据传输更稳定,菊花链模式下数据从一个设备流向下一个设备,减少了并行连接时数据干扰。

4.控制逻辑简单,主设备只需要将数据传输给第一个设备,第一个设备就会顺序传递给后续设备。

📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

*本文封面图片由作者提供,如果图片侵犯您的权益,您可以留言或者联系我们,我们会第一时间和您联系进行处理。

                                                                - END - 

                                        文字 | 老王(化名)   编辑 | 老王

                                                        图片由作者提供

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值