24小时联系电话:18217114652、13661815404
中文
公司新闻
串行通信协议第 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 协议的一些典型应用包括:
温度和压力传感器
ADC、DAC、音频编解码器、数字电位器
触摸屏、视频游戏控制器
相机镜头控制
外部闪存和 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 模式 0:CPOL = 0,CPHA = 0,CLK 空闲状态 = 低,数据在上升沿采样并在下降沿移位
SPI 模式 1:CPOL = 0,CPHA = 1,CLK 空闲状态 = 低,数据在下降沿采样并在上升沿移位
SPI 模式 2:CPOL = 1,CPHA = 1,CLK 空闲状态 = 高,数据在下降沿采样并在上升沿移位
SPI 模式 3:CPOL = 1,CPHA = 0,CLK 空闲状态 = 低,数据在上升沿采样并在下降沿移位
SPI 协议流行的原因之一是接收硬件可以非常简单。它可以使用一个简单的移位寄存器来实现。这是一种比实现 I2C 所需的更简单、更便宜的解决方案。
由于SPI总线速度较高,传输距离应保持很低(不超过几米)。但是,可以通过降低时钟速度或使用专门的 SPI 驱动芯片来增加最大总线长度。
扩展范围的另一种解决方案是使用数据链路 IC 作为中间阶段:
使用数据链路 IC 的 SPI 总线扩展
例如,您可以通过使用 RS-422 数据链路作为中间阶段来扩展 SPI 通信距离。
使用SPI协议的优点:
比I2C快得多
接收硬件很简单(简单的移位寄存器)
可以支持多个slave
使用SPI协议的缺点:
需要更多的信号线
通信必须明确定义,因为大多数从设备使用自己的协议
主站必须控制通信(没有主站的命令,从站不能相互交谈)
每个从设备通常需要单独的 SS 或 CS 线