嵌入式通信协议-SPI

[复制链接]
查看1613 | 回复10 | 2024-1-20 15:53:22 | 显示全部楼层 |阅读模式

前言

SPI 是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola(摩托罗拉)首先在其MC68HCXX系列处理器上定义的。

SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。

SPI主从模式

SPI分为主、从两种模式,一个SPI通讯系统需要包含一个(且只能是一个)主设备,一个或多个从设备。提供时钟的为主设备(Master),接收时钟的设备为从设备(Slave),SPI接口的读写操作,都是由主设备发起。当存在多个从设备时,通过各自的片选信号进行管理。

SPI是全双工且SPI没有定义速度限制,一般的实现通常能达到甚至超过10 Mbps

SPI信号线

SPI接口一般使用四条信号线通信:

SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)

  • MISO: 主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。
  • MOSI: 主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。
  • SCLK:串行时钟信号,由主设备产生
  • CS/SS:从设备片选信号,由主设备控制。它的功能是用来作为“片选引脚”,也就是选择指定的从设备,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。
  • MISO也可以是SIMO,DOUT,DO,SDO或SO(在主机端); MOSI也可以是SOMI,DIN,DI,SDI或SI(在主机端); NSS也可以是CE,CS或SSEL; SCLK也可以是SCK;

一主一从

image.png

单主多从

image.png

通信过程

SPI是[单主设备( single-master )]通信协议,这意味着总线中的只有一支中心设备能发起通信。当SPI主设备想读/写[从设备]时,它首先拉低[从设备]对应的SS线(SS是低电平有效),接着开始发送工作脉冲到时钟线上,在相应的脉冲时间上,[主设备]把信号发到MOSI实现“写”,同时可对MISO采样而实现“读”

时钟极性 CKP/Clock Polarity

根据硬件制造商的命名规则不同,时钟极性通常写为CKP或CPOL。时钟极性和相位共同决定读取数据的方式,比如信号上升沿读取数据还是信号下降沿读取数据;

CKP可以配置为1或0。这意味着您可以根据需要将时钟的默认状态(IDLE)设置为高或低。极性反转可以通过简单的逻辑逆变器实现。您必须参考设备的数据手册才能正确设置CKP和CKE。

CKP = 0:时钟空闲IDLE为低电平 0; CKP = 1:时钟空闲IDLE为高电平 1;

时钟相位 CKE /Clock Phase (Edge)

除配置串行时钟速率和极性外,SPI主设备还应配置时钟相位(或边沿)。根据硬件制造商的不同,时钟相位通常写为CKE或CPHA;

顾名思义,时钟相位/边沿,也就是采集数据时是在时钟信号的具体相位或者边沿;

CKE = 0:在时钟信号SCK的第一个跳变沿采样; CKE = 1:在时钟信号SCK的第二个跳变沿采样;

极性相位数据采样对应关系

MSB 高位

LSB 低位

CPOL极性 CPHA相位

在时钟线低位时就放数据,上升沿读数据,下降沿放数据 image.png

上升沿发数据,下降沿读数据

image.png

高电平时候就放数据,下降沿读数据,上升沿放数据 image.png

这种和IIC一样,下降沿放数据,上升沿读数据 image.png

回复

使用道具 举报

1084504793 | 2024-1-20 17:36:01 | 显示全部楼层
回复

使用道具 举报

bzhou830 | 2024-1-20 17:44:04 | 显示全部楼层
选择去发光,而不是被照亮
回复

使用道具 举报

WangChong | 2024-1-20 17:50:07 | 显示全部楼层
学习了
回复

使用道具 举报

liuli | 2024-1-20 19:05:50 | 显示全部楼层
回复

使用道具 举报

干簧管 | 2024-1-20 20:22:49 | 显示全部楼层
👍
回复

使用道具 举报

sansui | 2024-1-21 09:23:55 | 显示全部楼层
学习了
回复

使用道具 举报

noonezero | 2024-1-21 10:35:52 | 显示全部楼层
回复

使用道具 举报

WT_0213 | 2024-1-22 08:45:11 | 显示全部楼层
回复

使用道具 举报

lazy | 2024-1-22 14:08:24 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则