-

前言

串行接口各有千秋,并行通信千篇一律

基础知识

1. SPI通信协议

动图展示

SPI(串行外设接口)以其高速度而著称,使其成为快速通信的首选。SPI通讯协议是一种主从通信方式,是Motorola公司提出的一种同步串行接口技术,是一种高速、全双工、同步通信总线,在芯片中只占用四根管脚用来控制及数据传输。与 I2C 不同,SPI 使用四线工作:MISO(主输入从输出)、MOSI(主输出从输入)、SCK(串行时钟)和 SS(从选择),允许全双工通信(发送和同时接收)。尽管简单且速度快,但 SPI 比 I2C 需要更多的引脚,这可能是电路设计中需要考虑的一个因素。

优点:

  • 高速:SPI通信速度较快,适用于对速度要求较高的应用。
  • 全双工:SPI支持全双工通信,可以同时进行数据发送和接收。
  • 简单:SPI的通信协议相对简单,适用于快速开发和实现。

缺点:

  • 连线复杂:SPI需要多根线进行连接,可能会增加硬件设计的复杂性。
  • 长距离传输受限:SPI的传输距离受到限制,过长的线路可能导致信号衰减和干扰。
  • 主从模式限制:SPI通常采用主从模式,主设备数量受限,不适用于多主设备场景。
  • 没有应答机制和确认数据是否接收,在数据可靠性上有一定的缺陷(与I2C相比)

应用案例:

SPI 非常适合需要快速可靠的数据传输的情况,例如 TFT 显示器、SD 存储卡和无线通信模块。然而,在具有许多从站的复杂系统中,其有效性会降低。同时也应用于例如EEPROM、Flash、RTC、ADC、DSP等模块中。

2. 设备引脚的功能描述

一主一从

SCK(Serial Clock):时钟信号线,用于同步通讯数据;

MOSI(Master Output ,Slave Input):主设备输出/从设备输入引脚;

MISO(Master Input,Slave Output):主设备输入/从设备输出引脚;

CS_N:片选信号线;选中我们的从设备,低电平有效

一主多从

3. SPI协议层

协议层

在通信过程中,I2C是使用地址进行寻址,而我们这里的SPI没有地址,而是采用片选信号线来选择与哪一个从机进行通信,片选信号线被拉低则表示被选中。

SPI一共与4中通信模式,这四种通信模式是由CPOL(时钟极性)和CPHA(时钟相位)共同决定的:

  1. SCK(CPOL=0,CPHA=0)
  2. SCK(CPOL=0,CPHA=1)
  3. SCK(CPOL=1,CPHA=0)
  4. SCK(CPOL=1,CPHA=1)

CPOL: 表示当片选信号处于高电平空闲状态的时候,SCK的电平。当为0的时候,SCK在空闲状态为低电平,反之则为高电平

CPHA:表示是在奇数还是偶数位采样,当为0的时候,在奇数位采样,反之则在偶数位置采样

具体如下图所示

模式0的案例


本站由 John Doe 使用 Stellar 1.28.1 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

本"页面"访问 次 | 👀总访问 次 | 🥷总访客