文章目录
- 一、SPI
- 二、接口
- 三、通信模式(时钟极性)
-
- [ CPHA (Clock Phase) 时钟极性](# CPHA (Clock Phase) 时钟极性)
- [ CPOL (Clock Polarity) 时钟相位](# CPOL (Clock Polarity) 时钟相位)
- 四、通信协议
-
- [ 起始信号:](# 起始信号:)
- [ 结束信号:](# 结束信号:)
- [ 数据采集和切换: 主从机收发都以此为标准。](# 数据采集和切换: 主从机收发都以此为标准。)
- [ CPHA = 0 时的SPI通讯模式:](# CPHA = 0 时的SPI通讯模式:)
- [ CPHA = 1 时的SPI通讯模式:](# CPHA = 1 时的SPI通讯模式:)
- 五、通讯过程
-
- [ 1、超始信号](# 1、超始信号)
- [ 2、数据收发](# 2、数据收发)
- [ 3、主机发送](# 3、主机发送)
- [ 4、从机发送](# 4、从机发送)
- [ 5、终止信号](# 5、终止信号)
一、SPI
SPI是串行外设接口(Serial Peripheral Interface)的缩写,由Motorola提出,是一种高速的,全双工,同步的通信总线。
二、接口

SCLK: 时钟信号,由Master产生,用于同步。
MOSI: 主机数据输出,从机数据输入。
MISO: 主机数据输入,从机数据输出。
SS : Slave设备选择线,低电平有效。
三、通信模式(时钟极性)
SPI共有4种通讯模式,由CPOL与CPHA控制。
CPHA (Clock Phase) 时钟极性
0: 奇数边沿采集数据
1:偶数边沿采集数据
CPOL (Clock Polarity) 时钟相位
0:SCLK空闲时低电平
1:SCLK空闲时高电平

四、通信协议

起始信号:
SS由高变低,为SPI通讯的起始信号
结束信号:
SS由低变高,为SPI通讯的结束信号。
说明:
SPI总线为主从模式,
起始信号由主机发出,通过SS选择与之通信的从机,
结束信号也由主机发出,结束本次通信.
数据采集和切换: 主从机收发都以此为标准。
Mode0:空闲低电平,上升沿采集,下降沿切换。
Mode1:空闲低电平,下降沿采集,上升沿切换。
Mode2:空闲高电平,下降沿采集,上升沿切换。
Mode3:空闲高电平,上升沿采集,下降沿切换。

CPHA = 0 时的SPI通讯模式:

CPHA = 1 时的SPI通讯模式:

五、通讯过程
1、超始信号
主设备发起信号,将CS/SS拉低,启动通信。
2、数据收发
主设备通过发送时钟信号,来告诉从设备进行写数据或者读数据操作(采集时机可能是时钟信号的上升沿(从低到高)或下降沿(从高到低),根据spi模式而定),它将立即读取数据线上的信号,这样就得到了一位数据(1bit)。
3、主机发送
主机(Master)将要发送的数据写到发送数据缓存区(Memory),缓存区经过移位寄存器(缓存长度不一定,看单片机配置),串行移位寄存器通过MOSI信号线将字节一位一位的移出去传送给从机,同时MISO接口接收到的数据经过移位寄存器一位一位的移到接收缓存区。
4、从机发送
从机(Slave)也将自己的串行移位寄存器(缓存长度不一定,看单片机配置)中的内容通过MISO信号线返回给主机。同时通过MOSI信号线接收主机发送的数据,这样,两个移位寄存器中的内容就被交换。
5、终止信号
主设备发起信号,将CS/SS拉高,终止通信。