SPI协议

 
SPI(serial peripheral interface)是串行外设接口的缩写,SPI是一种高速的、全双工、同步的串行通信总线;SPI采用主从方式工作,一般有一个主设备和多个从设备;SPI需要至少4根线,分别是MISO(主设备输入从设备输出)、MOSI(主设备输出从设备输入)、SCLK(时钟)、CS(片选),SPI使用引脚较少且布线方便。如下图:
当一个总线被多个主机占用,管理者就是主机。
 

寻址方式:

当主设备要和某个从设备进行通信时,主设备需要先向对应的从设备的片选线上发送使能信号(高电平或者低电平,根据从机而定)表示选中该从设备。IIC开始通信先发送一个字节就是从机的地址。
0
一般CS杠表示低电平有效
哪个设备拉低片选,哪个设备为发送方
 

通信过程:

SPI总线在进行数据传送时,先传送高位,后传送低位;数据线为高电平表示逻辑“1”,低电平表示逻辑“0”;一个字节传送完成后无需应答即可开始下一个字节的传送;SPI总线采用同步方式工作,时钟线在上升沿和下降沿时发送器向数据线上发送数据,在紧接着的下降沿或上升沿时接收器从数据线上读取数据,完成一位数据传送,八个时钟周期即可完成一个字节数据的传送:
0
例如:时钟线下降沿,发送器发数据,时钟先上升沿,接收器收数据
IIC:低电平发数据,高电平收数据
SPI总线没有停止和起始信号,也没有应答信号
 

极性与相位:

SPI总线有四种不同的工作模式,取决于极性和相位这两个因素
极性表示SCLK空闲时的状态
  极性为0,空闲时SCLK为低电平
  极性为1,空闲时SCLK为高电平
相位表示采样时刻
  相位为0,每个周期的第一个时钟沿采样
  相位为1,每个周期的第二个时钟沿采样
白话来说就是,极性就是高电平为0还是1,相位表示低电平采样还是高电平采样。所以SPI有四种不同的工作模式
一般使用CPOL = 0,CPHA = 0,也就是极性和相位均为0
 

IIC与SPI的相同点和不同点:

相同点:
1、均采用串行、同步的方式
2、均采用TTL电平,传输举例和应用场景类似,不适合长距离通信
3、均采用主从方式工作
 
不同点:
1、IIC为半双工,SPI为全双工
2、IIC有应答机制,SPI无应答机制
3、IIC通过向总线广播从机地址来进行寻址,SPI通过片选寻址。这样导致SPI引脚比较多,通信快。IIC引脚少,通信较慢
4、IIC的时钟极性和时钟相位固定,SPI的时钟极性和时钟相位可调
 
SPI示波器测量波形:
0
 
 
posted @ 2024-03-19 17:28  lethe1203  阅读(39)  评论(0编辑  收藏  举报