目录
1.1 SPI简介
SPl(Serial Per ipheral Interface)是串行外设接口的缩写,SPI是一种高速的、全双工、同步的串行通信总线; SPI采用主从方式工作,一般有一个主设备和一个或多个从设备;SPI需要至少4根线,分别是MISO(Master Iput Slave Output 主设备输入从设备输出)、MOSI(主设备输出从设备输入)、SCLK(时钟)、CS(Chip Slect片选) SPI使用引脚较少且布线方便,所以越来越多的芯片集成了这种通信协议;
1.2 寻址方式
当主设备要和某个从设备进行通信时,主设备需要先向对应从设备的片选线上发送使能信号(高电平还是低电平根据从机而定)表示选中该从设备;
1.3 通信过程
SPI总线在进行数据传送时,先传送高位,后传送低位;数据线为高电平表示逻辑‘1’,低电平表示逻辑‘O’;一个字节传送完成后无需应答即可开始下一个字节的传送;SPI总线采用同步方式工作,时钟线在上升沿或下降沿时发送器向数据线上发送数据,在紧接着的下降沿或上升沿时接收器从数据线上读取数据,完成一位数据传送,八个时钟周期即可完成一个字节数据的传送;
1.4 极性与相位
SPI总线有四种不同的工作模式,取决于极性(CPOL)和相位(CPHL)这两个因素
一般使用那种相位与极性是由从机(芯片手册)决定的;
CPOL表示SCLK空闲时的状态
CPOL=0,空闲时SCLK为低电平
CPOL=1,空闲时SCLK为高电平
CPHA表示采样时刻
CPHA=0,每个周期的第一个时钟沿采样
CPHA=1,每个周期的第二个时钟沿采样
CPOL = 0; CPHA = 0
低电平发送器发数据,高电平接收器接收数据
CPOL = 0; CPHA = 1
高电平发送器发数据,低电平接收器接收数据
CPOL = 1; CPHA = 0
高电平发送器发数据,低电平接收器接收数据
CPOL = 1; CPHA = 1
低电平发送器发数据,高电平接收器接收数据
1.5 SPI 与IIC的异同点
相同点
1.均采用串行、同步为方式
2.均采用TTL电平,传输距离和应用场景类似
3.均采用主从方式工作
不同点
1.IIC为半双工,SPI为全双工
2.IIC有应答机制,SPI无应答机制
3.IIC通过向总线广播从机地址来寻址,SPI通过向对应从机发送使能信号来寻址
4.IIC的时钟极性和时钟相位固定,SPI的时钟极性和时钟相位可调