STM32SPI

SPI通信(不完整)

物理层

物理连接结构
在SPI通信协议中,所有的主机共用CLK、MOSI、MISO三根线,另外各自拉出来一条SS(CS)与主机相连。

  • SS/CS(Slave select / Chip select):设备使能信号。一主多从时,SS/CS表示从设备是否被选中。当需要操作某一从设备时,这条设备单独拉出来一条SS/CS连接主机,此SS/CS上面的片选信号为预先规定的使能信号时,主设备对该从设备的操作才有效;
  • SCLK(Serial Clock):就当i2c里的CLK理解即可;
  • MOSI(Master Output Slave Input):主设备输出(从设备输入);
  • MISO(Master Input Slave Output):主设备输入(从设备输出)。

MOSI和MISO一定有一个I而另一个就会是O,所以MISO和MOSI只需要看前面两个字母。

SS/CS的奇妙理解方式

SS/CS可以理解为特朗普搞了两个按钮,按下其中一个会让工作人员给他送上可乐,而按下另一个则会让核弹发射

SPI特征

SPI 协议是由摩托罗拉公司提出的通讯协议(Serial PeripheralInterface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、 LCD 等设备与 MCU间,要求通讯速率较高的场合。1

SPI总线是一种高速全双工同步串行通信总线,它可以使CPU与各种外围设备以串行方式进行通信以交换信息。1

SPI的主要应用领域包括:EEPROM、FLASH、AD转换器、各种传感器等设备通信领域。SPI总线协议在不同的半导体公司的具体实施细节可能有所不同,因此具体的应用还是要参考特定器件的数据手册。1

SPI总线支持全双工通信,而且支持高速应用(100Mbp速率以上)。SPI协议支持的字长不限于8位,可以根据应用的特点灵活选择消息的字长。在点对点的通信中,SPI协议不需要进行寻址操作,显得简单且高效。1

但是SPI协议并没有流控制和应答机制,因此在可靠性方面可能较差。1

通信原理

  1. 主设备(Master,唐僧师傅)发起信号,拉低SS,启动通信
  2. 主机发送时钟信号,告诉从设备进行写数据或读数据操作(采集时机可能是时钟上升沿或下降沿,取决于SPI四种模式的选择),从机会读取数据线上的1bit信号
  3. 主机发送的数据写到发送缓冲区(Memory),缓存区经过移位寄存器,串行移位寄存器通过MOSI发给从机,同时MISO接收到的数据放到接收缓存区
  4. 从机(Slave)将自己的串行移位寄存器中的值通过MISO发送给主机,同时MOSI接收主机发送的数据。

通信特性

设备选择

选择谁,就拉低谁的SS。

设备时钟

时钟速率不写了

时钟极性

时钟极性通常缩写为CKP或CPOL。时钟极性和相位共同决定读取数据的方式,比如信号上升沿读取数据还是信号下降沿读取数据。
CKP可以配置为0或1,这意味着你可以根据需要将时钟的默认状态(IDLE)设置为高或低。极性反转可以通过简单的逻辑逆变器实现。你必须参考设备的数据手册才能正确设置CKP和CKE。2

0 1
时钟空闲IDLE为低电平 0 时钟空闲IDLE为高电平1

时钟相位

根据硬件制造商的不同,时钟相位通常写为CKE或CPHA。时钟相位/边沿,也就是采集数据时是在时钟信号的具体相位或者边沿。

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

SPI通信操作模式

好图
SPI通信操作模式定义了在时钟脉冲的哪条边沿输出信号,在哪条采样边沿采样输入信号。

  • Mode0:CKP=0,CKE =0:当空闲态时,SCK处于低电平,数据采样是在第1个边沿,也就是SCK由低电平到高电平的跳变,所以数据采样是在上升沿(准备数据),(发送数据)数据发送是在下降沿。
  • Mode1:CKP=0,CKE=1:当空闲态时,SCK处于低电平,数据发送是在第2个边沿,也就是SCK由低电平到高电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。
  • Mode2:CKP=1,CKE=0:当空闲态时,SCK处于高电平,数据采集是在第1个边沿,也就是SCK由高电平到低电平的跳变,所以数据采集是在下降沿,数据发送是在上升沿。
  • Mode3:CKP=1,CKE=1:当空闲态时,SCK处于高电平,数据发送是在第2个边沿,也就是SCK由高电平到低电平的跳变,所以数据采集是在上升沿,数据发送是在下降沿。

多个从机


感觉很容易理解,不写了。

参考文献

1. SPI通信协议
2. 一文搞懂SPI通信协议
作者

勇敢梧桐树

发布于

2022-12-31

更新于

2023-06-17

许可协议

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×