SPI

定义

SPI(Serial Peripheral Interface,串行外设接口)是一种全双工、同步、主从模式的串行通信协议,

常用于微控制器与各种外围设备(如 Flash、传感器、ADC/DAC、显示屏等)之间的高速通信。

特点

主从结构:一般一个主设备(Master),一个或多个从设备(Slave);

全双工通信:数据可同时发送与接收;

同步通信:有时钟信号(SCLK)协调;

线数少,速度快(通常比 I2C 快);

一个主设备可以控制多个从设备,通常每个从设备有独立的 CS 线。

SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。

信号线

含义

主设备方向

SS/CS

从设备选择(片选)

输出

SCLK

串行时钟线

输出

MOSI

主出从入(数据输出)

输出

MISO

主入从出(数据输入)

输入

SPI是串行通讯协议,也就是说数据是一位一位的传输的。这就是SCLK时钟线存在的原因,由SCLK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。

数据输出通过SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输。因此,至少需要8次时钟信号的改变(上沿和下沿为一次),

才能完成8位数据的传输。

通信协议

SPI 模式(Mode 0~3)由两位参数定义:CPOL(时钟极性)和 CPHA(时钟相位);时钟极性设置时钟空闲时的电平,时钟相位设置读取数据和发送数据的时钟沿。

SPI 模式

时钟极性

时钟相位

空闲状态下的时钟极性

数据采样边沿

0

0

0

逻辑低电平

数据在上升沿采样,在下降沿移出

1

0

1

逻辑低电平

数据在下降沿采样,在上升沿移出

2

1

0

逻辑高电平

数据在下降沿采样,在上升沿移出

3

1

1

逻辑高电平

数据在上升沿采样,在下降沿移出

传输步骤

1.主设备(Master)拉低CS信号,表示与该从设备(Slave)进行通信;

2.主设备(Master)通过发送SCLK时钟信号,通知从设备(Slave)进行数据交换;

3.主设备(Master)将发送的数据写到数据缓存区,缓存区经过串行移位寄存器(通常是8位)通过MOSI将字节一位一位的发送到从设备(Slave);

同时MISO接收到的数据也经过移位寄存器一位一位送到接收缓存区;

在每个SPI时钟周期内,都会发生全双工数据传输。主设备在MOSI线上发送一个位,从设备读取它,同时从机在MISO线上发送一位数据,主机读取它。

即使只有单向数据传输的目的,主从机之间的通信工作方式仍然是双工的。如果主机需要向从机发送数据,主机只需要忽略接收到的数据即可,

如果主机要读取从机的数据,首先需要先向从机发送空字节引发从机传输数据。换句话说,SPI数据的交换是双向的。主机发送一个数据,必定会从从机获取一个数据。

SPI 模式 0示例:

具体分析参考:https://www.analog.com/cn/resources/analog-dialogue/articles/introduction-to-spi-interface.html

多从机SPI

常规模式

在常规模式下,主机需要为每个从机提供单独的片选信号。一旦主机使能(拉低)片选信号,MOSI/MISO 线上的时钟和数据便可用于所选的从机。

菊花链模式

在菊花链模式下,所有从机的片选信号连接在一起,数据从一个从机传播到下一个从机。在此配置中,所有从机同时接收同一SPI时钟。

来自主机的数据直接送到第一个从机,该从机将数据提供给下一个从机,依此类推。

使用该方法时,由于数据是从一个从机传播到下一个从机,所以传输数据所需的时钟周期数与菊花链中的从机位置成比例。

参考链接:

https://www.analog.com/cn/resources/analog-dialogue/articles/introduction-to-spi-interface.html

https://zhuanlan.zhihu.com/p/65084779

https://blog.csdn.net/as480133937/article/details/105764119![]

https://developer.tuya.com/cn/docs/iot/spi-interface-hardware-design?id=Kbffxxzt0cpho

https://theembeddedsystem.readthedocs.io/en/latest/c6_ec_spi_if/index_c6.html

https://zh.wikipedia.org/wiki/序列周邊介面


葡萄互动(北京)科技有限公司
TransMac v14.2 and v14.5 Windows下dmg镜像文件烧录工具下载