总线(六)SPI通信协议介绍


SPI背景知识

SPI(Serial Peripheral interface)是串行外设接口,是一种高速、全双工、同步的通信总线。是Motorola首先在其MC68HCXX系列处理器上定义的。


SPI特征

1、全双工串行通信;
2、高速数据传输速率;
3、数据传输不限于8位,它可以是任意大小的字;
4、非常简单的硬件结构。从站不需要唯一地址(与I2C不同)。从机使用主机时钟,不需要精密时钟振荡器/晶振(与UART不同)。不需要收发器(与CAN不同)。


SPI总线的物理层

SPI是一个同步的数据总线,也就是说它是用单独的数据线一个单独的时钟信号来保证发送端和接收端的完美同步。
时钟是一个振荡信号,接收端在确切的时机对数据线上的信号进行采样。

主机发送到从机时,主机产生相应的时钟信号,然后数据一位一位地将从MOSI信号线上进行发送到从机;
主机接收从机数据,如果从机需要将数据发送回主机,则主机将继续生成预定数量的时钟信号,并且从机会将数据通过MISO信号线发送;
在这里插入图片描述
SCLK: 时钟信号,由Master产生,用于同步
MOSI: 主机数据输出,从机数据输入
MISO: 主机输入,从机数据输出
SS: Slave设备选择线,低电平有效
注:主机一次只能与一个从机设备通信,不然会数据混乱

起始信号: SS由高变低,为SPI通讯的起始信号
结束信号: SS由低变高,为SPI通讯的结束信号
SPI总线为主从模式,起始信号由主机发出,通过SS选择与之通信的从机,结束信号也是由主机发出,结束本次通信


SPI标准协议

SPI共有4种模式,由CPOL(时钟极性)与CPHA(时钟相位)控制
CPOL -> 0:SCLK空闲时低电平 1:SCLK空闲时高电平

在这里插入图片描述
CPHA -> 0:奇数边沿采集数据 1:偶数边沿采集数据
在这里插入图片描述
CPOL决定跳变沿究竟是上升沿还是下降沿 。CPHA 只决定是哪个跳变沿采样。

以上结合生成四种数据传输模式:
模式0:CPOL =0,CPHA =0
模式1:CPOL =0,CPHA =1
模式2:CPOL =1,CPHA =0
模式3:CPOL =1,CPHA =1

注:确保通讯正常,主机与从机的通讯模式需要匹配

在这里插入图片描述
在这里插入图片描述
主机与从机配置相同模式,就能正常通讯:
模式0或3:主机下降沿发数据,从机上升沿采集数据
模式0或3:从机下降沿发数据,主机上升沿采集数据
模式1或2:主机上升沿发数据,从机下降沿采集数据
模式1或2:从机上升沿发数据,主机下降沿采集数据

扫描二维码关注公众号,回复: 14749701 查看本文章

如果时序不一致,会导致通讯失败:
主机工作在模式0(上升沿采集数据,下降沿发送数据),从机(下降沿采集数据,上升沿发送)。下降沿时,主机发送数据,从机立马采集数据,此时数据不稳定,通讯失败;上升沿时,从机发送数据,主机发送数据,主机立马采集数据,数据也不稳定,通讯失败。

猜你喜欢

转载自blog.csdn.net/weixin_43564241/article/details/129670884
今日推荐