24小时联系电话:18217114652、13661815404

中文

您当前的位置:
首页>
电子资讯>
公司新闻>
串行通信协议第 5 部...

公司新闻

串行通信协议第 5 部分 - SPI


串行通信协议第 5 部分 - SPI

我们将研究不同类型的串行通信协议,我们将研究流行的 SPI 协议。这是我们将要研究的许多常用的流行协议之一。我们将在本系列的结尾对每种类型的优缺点进行有用的总结。

SPI 代表串行外设接口。它是一种串行通信总线,常用于微控制器和小型外围设备之间的短距离通信,例如射频模块、移位寄存器、外部闪存IC以及各种传感器和SD卡。它是同步的,这意味着它有一个单独的时钟线。

SPI 协议是由摩托罗拉开发的,尽管它被用于其他制造商生产的大量不同 IC、模块和设备中。

SPI 协议允许全双工通信,这意味着连接到总线的设备可以同时发送和接收数据。

SPI 通信协议除接地外还包括四条线,它们是:

SCLK - 串行时钟(主机输出)

MOSI - Master Out Slave In(数据从主机输出)

MISO - Master In Slave Out(从机输出数据)

SS CS - 从机选择或片选(通常为低电平有效信号,由主机输出)

根据数据表的来源,SPI 引脚可以标有不同的名称,因此在开始设计之前仔细阅读数据表至关重要。

两个设备之间的 SPI 接线

SPI架构通常由一个主设备和多个主设备通信的从设备组成,这意味着一组数据线可以连接到多个从设备。但是,从选择与 I2C 完全不同。可在 SPI 通信网络中使用的从设备数量受可用的 SS(从设备选择)或 CS(芯片选择)引脚数量限制。

具有多个 SS 引脚的 SPI 多设备连接

使用 SPI 协议的一些典型应用包括:

温度和压力传感器

ADCDAC、音频编解码器、数字电位器

触摸屏、视频游戏控制器

相机镜头控制

外部闪存和 EEPROM IC

RTC(实时时钟)

液晶显示器

MMC SD

我们将首先研究主站和从站之间的通信。总线主设备应配置 SPI 通信时钟设置以使用从设备支持的频率(通常高达几 MHz)。

然后,主机通过将适当的从机选择引脚拉低来选择它想要与哪个从机通信,这会导致该从机开始侦听。将选择引脚拉高的其他从设备将忽略这些命令。

通信原理是主设备通过MOSI线向监听从设备发送数据。从机可以读取这些数据,同时通过 MISO 线将数据返回给主机,主机可以在那里读取它。这就是全双工数据传输的方式。

通常,这种通信涉及使用 8 位大小的寄存器,第一位是 MSB(最高位)。主机和从机都通过寄存器向前移动一位,并在时钟边沿输出最后一位。

主从通信及寄存器示例

当传输完成时,主设备通过拉高相应的从选择引脚来取消选择从。

尽管 SPI 数据传输通常包含 8 位消息传递,但其他字长(例如 16 位)也常用于音频编解码器的触摸屏控制器等应用。

在使用时钟速度以外的机制的数据传输期间,可以使用备用设置,例如时钟极性(哪个逻辑电平代表空闲状态)和相位(在哪个时钟沿,上升或下降,数据线被采样)。

有四种不同的 SPI 模式:

SPI模式

警察 

CPHA 

时钟极性(空闲状态)

时钟相位

0

0

0

逻辑低

上升沿采样数据,下降沿输出

1

0

1

数据下降沿采样,上升沿输出
 

2

1

1

逻辑高

下降沿采样数据,上升沿输出
 

3

1

0

逻辑高

数据在上升沿采样并在下降沿输出

 

下图显示了这些不同模式下 SPI 线的时序图:

SPI 模式 0CPOL = 0CPHA = 0CLK 空闲状态 = 低,数据在上升沿采样并在下降沿移位

SPI 模式 1CPOL = 0CPHA = 1CLK 空闲状态 = 低,数据在下降沿采样并在上升沿移位

SPI 模式 2CPOL = 1CPHA = 1CLK 空闲状态 = 高,数据在下降沿采样并在上升沿移位

SPI 模式 3CPOL = 1CPHA = 0CLK 空闲状态 = 低,数据在上升沿采样并在下降沿移位

SPI 协议流行的原因之一是接收硬件可以非常简单。它可以使用一个简单的移位寄存器来实现。这是一种比实现 I2C 所需的更简单、更便宜的解决方案。

由于SPI总线速度较高,传输距离应保持很低(不超过几米)。但是,可以通过降低时钟速度或使用专门的 SPI 驱动芯片来增加最大总线长度。

扩展范围的另一种解决方案是使用数据链路 IC 作为中间阶段:

使用数据链路 IC SPI 总线扩展

例如,您可以通过使用 RS-422 数据链路作为中间阶段来扩展 SPI 通信距离。

使用SPI协议的优点:

I2C快得多

接收硬件很简单(简单的移位寄存器)

可以支持多个slave

使用SPI协议的缺点:

需要更多的信号线

通信必须明确定义,因为大多数从设备使用自己的协议

主站必须控制通信(没有主站的命令,从站不能相互交谈)

每个从设备通常需要单独的 SS CS 线

请输入搜索关键字

确定