单片机通信协议(1):SPI简介

关于SPI

SPI(串行外设接口)是板载设备间通信接口之一。它是由摩托罗拉公司(飞思卡尔半导体)推出的。由于其简单性和通用性,它被纳入各种外围设备中,并与飞利浦I2C总线并列。 SPI的三线或四线信号数量比IIC的两线多,但传输速率可以升至20 Mbps或更高,具体取决于设备的能力(比IIC快5-50倍)。因此,它主要用于需要尽可能高数据传输速率的应用,ADC、DAC或通信IC。

SPI的结构

SPI的基本结构如上图所示。主设备和从设备通过SCLK(串行时钟)、MISO(主输入从输出)和MOSI(主输出从输入)三个信号线连接,两个8位移位寄存器的内容为与主设备驱动的移位时钟交换。另外,除上述三个之外的SS(从机选择)信号用于同步数据包或字节边界的开始,并用于同时实现多从机配置。大多数从机设备为 SPI 接口分配不同的引脚名称,例如 DI、DO 和 CS。对于单向传输器件,例如DAC和单通道 ADC,可以省略任一数据线。数据位首先以 MSB 方式移位。

当将一些从属设备连接到 SPI 时,从属设备并行连接,主设备的CS信号连接到每个从属设备。由CS信号选择的从属设备的数据输出被启用,而未选择的设备与MISO 断开连接。

SPI的传输时序

对于SPI,数据移位和数据锁存分别在相反的时钟沿进行,移位和锁存操作分开可以避免两个操作之间的关键时序,从而减轻芯片设计和电路板设计的时序考虑。但另一方面,由于时钟极性和时钟相位的组合,存在四种操作模式,主设备必须将其SPI接口配置为从设备所需的SPI模式。

模式0

时钟极性(CPOL)为0,时钟相位(CPHA)为0,SCK在空闲状态时为低电平,数据的采样和传输分别发生在SCK的上升沿和下降沿。即正脉冲,锁定,然后移位,如下图:

模式1

时钟极性(CPOL)为0,时钟相位(CPHA)为1,SCK在空闲状态仍保持低电平,但是数据的采样和传输分别发生在SCK的下降沿和上升沿。即:正脉冲,先移动,然后锁定,如下图:

模式2

时钟极性(CPOL)为1,时钟相位(CPHA)为0,SCK信号在空闲状态时为高电平,数据在SCK的下降沿被采样,并在上升沿传输。即:负脉冲,锁定,然后移动。如下图:

模式3

时钟极性(CPOL)为1,时钟相位(CPHA)为1,SCK在空闲状态为高电平,与模式2相反,数据在SCK的上升沿被采样,在下降沿进行传输。即:负脉冲。移位,然后锁存。如下图:

总结

这四种模式的主要区别在于如何在时钟信号的不同边缘采样和改变数据。CPOL参数规定了SCK时钟信号在空闲状态时的电平,而CPHA参数则规定了数据是在SCK时钟的上升沿还是下降沿被采样。

相关推荐
某林2122 小时前
ROS2与STM32通信详解
stm32·单片机·嵌入式硬件
EVERSPIN5 小时前
MCU微控制器,N32H47x高性能MCU机器人关节控制方案
单片机·嵌入式硬件·机器人·mcu微控制器
0南城逆流05 小时前
【STM32】知识点介绍三:哈希算法详解
stm32·嵌入式硬件·哈希算法
云山工作室5 小时前
基于STM32单片机的正激式开关电源设计(论文+源码)
stm32·单片机·嵌入式硬件·毕业设计·课程设计·毕设
芯希望5 小时前
芯伯乐700mA线性稳压器XBLW L78M05H/L78M12H:稳定可靠,简化电源设计
单片机·嵌入式硬件
lingzhilab6 小时前
零知IDE——STM32F407VET6驱动SHT40温湿度传感器与ST7789实现智能环境监测系统
stm32·单片机·嵌入式硬件
贝塔实验室8 小时前
Altium Designer 6.3 PCB LAYOUT教程(四)
驱动开发·嵌入式硬件·硬件架构·硬件工程·信息与通信·基带工程·pcb工艺
星辰pid8 小时前
stm32的gpio模式到底该怎么选择?(及iic,spi,定时器原理介绍)
stm32·单片机·嵌入式硬件
brave and determined9 小时前
可编程逻辑器件学习(day3):FPGA设计方法、开发流程与基于FPGA的SOC设计详解
嵌入式硬件·fpga开发·soc·仿真·电路·时序·可编程逻辑器件
axuan126519 小时前
10.【NXP 号令者RT1052】开发——实战-RT 看门狗(RTWDOG)
单片机·嵌入式硬件·mcu