• 正文
  • 相关推荐
申请入驻 产业图谱

SPI接口介绍

09/15 10:02
2492
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

欢迎各位朋友关注“郝旭帅电子设计团队”公众号,本公众号会定时更新相关技术类资料、软件等等,感兴趣的朋友可以浏览一下本公众号的其他“模块”,希望各位朋友都能在本公众号获得一些自己想要的“东西”。

本篇主要介绍SPI接口

SPI(Serial Peripheral Interface)接口是一种高速、全双工、同步的串行通信总线协议,由摩托罗拉(现为 NXP 的一部分)开发,广泛应用于微控制器传感器存储器(如 Flash、SD 卡)、实时时钟触摸屏等外围设备之间的短距离通信(同一个板卡或者接插板卡)。

SPI 的物理接口(信号线)

一个标准的 SPI 总线使用 4 根信号线:

SCLK Serial Clock 输出 串行时钟,由主设备产生并输出给所有从设备。数据在该时钟的上升沿或下降沿被采样。

MOSI Master Out, Slave In 输出 主设备数据输出,从设备数据输入。主设备通过这根线将数据发送给从设备。

MISO Master In, Slave Out 输入 主设备数据输入,从设备数据输出。从设备通过这根线将数据发送给主设备。

SS/CS Slave Select / Chip Select 输出 从设备选择(或片选)。由主设备控制,用于选择要进行通信的特定从设备。

在某些情况下,MOSI、MISO合并为一根双向线,主机发送或接收都通过这根线进行。

SPI接口支持一主多从的模式:

SPI 的核心特点

同步 (Synchronous):通信由主设备提供的时钟信号 (SCLK) 驱动和同步,所有数据的发送和接收都基于这个时钟脉冲。这意味着通信双方不需要复杂的波特率配置,时钟频率可以很高(可达几十 MHz)。

主从模式 (Master-Slave):通信系统中必须有一个(且通常只有一个)主设备,负责发起和控制通信。可以有一个或多个从设备。

简单高效:硬件实现简单,软件开销小,通信效率高,没有起始位、停止位等额外开销,是真正的“位搬移”协议。

无流控机制:SPI 协议本身没有定义数据确认或流控制机制,需要由更高层的协议或应用程序来确保数据的完整性和可靠性(由具体的芯片确定先发什么位,后发什么位,以及那些位代表是什么意思)。

SPI 的工作原理与数据交换

初始化:主设备将目标从设备的 SS 线激活,表示通信开始。

生成时钟:主设备开始产生 SCLK 时钟信号。

数据传输:  主设备通过 MOSI 线将 1 bit 数据发送出去。  从设备通过 MISO 线将 1 bit 数据发送出去。  数据是在时钟的边沿进行采样和移位的。具体在哪个边沿有效,由时钟极性 (CPOL) 和时钟相位 (CPHA) 决定。

结束通信:数据传输完毕后,主设备停止生成 SCLK,并将 SS 线拉高(释放),表示通信结束。

时钟极性 (CPOL) 和时钟相位 (CPHA)

spi 通信有四种不同的模式,不同的从设备可能在出厂时就已经配置为某种模式。通信的双方必须是工作在同一模式下,所以我们可以对主设备的 spi 模式进行配置,通过 CPOL(时钟极性)和 CPHA(时钟相位)来控制我们主设备的通信模式。

mode0:CPOL=0,CPHA=0; mode1:CPOL=0,CPHA=1; mode2:CPOL=1,CPHA=0; mode3:CPOL=1,CPHA=1;

时钟极性 CPOL 是用来配置 SCLK 在空闲时,应该处于的状态; 时钟相位 CPHA 用来配置在第几个边沿进行采样。 CPOL=0,表示在空闲状态时,时钟 SCLK 为低电平。 CPOL=1,表示在空闲状态时,时钟 SCLK 为高电平。 CPHA=0,表示数据采样是在第 1 个边沿。 CPHA=1,表示数据采样是在第 2 个边沿。

CPOL=0,CPHA=0:此时空闲态时,SCLK 处于低电平,数据 采样是在第 1 个边沿,也就是 SCLK 由低电平到高电平的跳变,所 以数据采样是在上升沿,数据发送是在下降沿。

CPOL=0,CPHA=1:此时空闲态时,SCLK 处于低电平,数据 发送是在第 1 个边沿,也就是 SCLK 由低电平到高电平的跳变,所 以数据采样是在下降沿,数据发送是在上升沿。

CPOL=1,CPHA=0:此时空闲态时,SCLK 处于高电平,数据 采集是在第 1 个边沿,也就是 SCLK 由高电平到低电平的跳变,所 以数据采集是在下降沿,数据发送是在上升沿。

CPOL=1,CPHA=1:此时空闲态时,SCLK 处于高电平,数据 发送是在第 1 个边沿,也就是 SCLK 由高电平到低电平的跳变,所 以数据采集是在上升沿,数据发送是在下降沿。

Mode 0 和 Mode 3 是最常见的两种。 SPI 常见应用场景

存储器:SPI Flash, SD Card (SPI 模式), EEPROM

传感器:温度传感器压力传感器加速度计陀螺仪

显示设备:OLED 屏幕、TFT 液晶屏

通信模块:以太网控制器 (ENC28J60)、Wi-Fi/蓝牙模块 (常使用 UART 或 USB,但配置可能用 SPI)、RFID 读卡器  ADC/DAC(模数/数模转换器

数字电位器

两个微控制器之间的高速通信

总结

SPI 是一种“简单粗暴”的高速通信协议。它的核心是四线制、主从同步和时钟模式。在使用时,最关键的三步是:  正确连接硬件(SCLK, MOSI, MISO, SS)。  查阅从设备手册,确定其要求的时钟模式 (CPOL/CPHA) 和最大时钟频率。  在主设备上正确配置 SPI 控制器(模式、频率等),并按照从设备的数据帧格式编写读写程序

本篇内容中有部分资源来源于网络,如有侵权,请联系作者。

相关推荐