通信协议(SPI)

一、SPI简介

SPI(Serial Peripheral Interface)是串行外设接口的缩写,SPI是高速的,**全双工**、**同步**的串行通信总线;SPI采用主从方式工作,一般有一个主设备和一个或多个从设备;SPI需要至少4根线,分别是MISO(主设备输入从设备输出),MOSI(主设备输出从设备输入)、SCLK(时钟)、CS(chip select)(片选),SPI使用引脚较少且布线方便,所以越来越多的芯片集成了这种通信协议;

通信协议(SPI)

二、寻址方式

当主设备要和某个从设备进行通信时,主设备需要先向对应从设备的片选线上发送使能信号(高电平或者低电平,根据从机而定)表示选中该设备。
通信协议(SPI)

三、通信过程

SPI总线在进行数据传送时,先传送高位,后传送低位;数据线为高电平表示逻辑‘1’,低电平表示逻辑‘0’;一个字节传送完成后无需应答即可开始下一个字节的传送;SPI总线采用同步方式工作,时钟线在上升沿或者下降沿时向数据线上发送数据,在紧接着的下降沿或上升沿时接收器从数据线上读取数据,完成一位数据传送,八个时钟周期即可完成一个字节数据的传送。

通信协议(SPI)

四、极性和相位

SPI总线有四种不同的工作模式,取决于极性(CPOL)和相位(CPHL)这两个因素
CPOL表示SCLK空闲时的状态
CPOL=0,空闲时SCLK为低电平
CPOL=1,空闲时SCLK为高电平
CPHA表示采样时刻
CPHA=0,每个周期的第一个时钟沿采样
CPHA=1,每个周期的第二个时钟沿采样

第一种工作模式CPOL=0,CPHA=0
CPOL = 0,CPHA = 0:CLK空闲状态 = 低电平,数据在上升沿采样,并在下降沿移出。
通信协议(SPI)
第二种工作模式CPOL=0,CPHA=1
CPOL = 0,CPHA = 1:CLK空闲状态 = 低电平,数据在下降沿采样,并在上升沿移出。
通信协议(SPI)
第三种工作模式CPOL=1,CPHA=1
CPOL = 1,CPHA = 1:CLK空闲状态 = 高电平,数据在下降沿采样,并在上升沿移出。

通信协议(SPI)

第四种工作模式CPOL=1,CPHA=0
CPOL = 1,CPHA = 0:CLK空闲状态 = 高电平,数据在上升沿采样,并在下降沿移出。
通信协议(SPI)

上一篇:基于SPI协议 AH20+OLED屏显


下一篇:Android端简单易用的SPI框架,吐血整理