1.简介
- SPI(Serial Peripheral Interface)是串行外设接口的缩写,SPI是一种高速,串行,全双工,同步的串行通信总线
- SPI采用主从方式工作,一般有一个主设备和一个或者多个从设备
- SPI至少需要4根线,分别为:MISO(主设备输入,从设备输出),MOSI(主设备输出,从设备输入),SCLK(时钟),CS(片选),SPI使用引脚较少布线方便,许多芯片集成了该种通信协议
2.寻址方式
- 当主设备想要和某从设备进行通信时候,主设备需要先向对应从设备的片选线(CS)山发送使能信号(高电平或者低电平,按从设备而定),表示选中该从设备
3.通信过程
- SPI总线在进行数据传输时候,先传送高位,后传送低位
- 数据线为高电平表示"1",低电平表示"0"
- 一个字节传送完毕后无需应答即可开始下一个字节传送
- SPI总线采用同步方式工作,时钟线在上升沿或者下降沿时向数据线上发送数据,在紧接着的下降沿或者上升沿时接收者从数据线上读取数据,完成一位数据传输,8个时钟周期即可完成一个字节传输.
4.极性与相位
- SPI总线有4种不同的工作模式,取决于极性(CPOL)和相位(CPHL)这两个因素,CPOL表示SCLK空闲时的状态,CPHA表示采样时刻
- 一般对于某个从设备在出厂时候就规定了其工作模式,在使用时候需要将主设备配置为与从设备相同的工作模式
- CPOL分类:
1.CPOL = 0,空闲时SCLK为低电平
2.CPOL = 1,空闲时SCLK为高电平 - CPHA分类:
1.CPHA = 0,每个周期的第一个时钟沿采样
2.CPHA = 1,每个周期的第二个时钟沿采样 - CPOL = 0,CPHA = 0
- CPOL = 0,CPHA = 1
- CPOL = 1,CPHA = 0
- CPOL = 1,CPHA = 1
5.IIC与SPI异同
- 同:
1.二者均为串行,同步方式通信
2.均采用TTL电平,传输距离与应用场景类似
3.均为主从工作模式 - 异:
1.IIC为半双工,SPI为全双工
2.IIC有应答机制,SPI无应答机制
3.IIC通过向总线广播从机地址来寻址,SPI通过对从机发送使能信号寻址
4.IIC时钟相位固定,SPI有4种工作模式