目录
#SPI通信协议
#SPI基础概念
#SPI通信模式
#SPI通信时序类型
前言:本篇笔记参考嘉立创的开发文档,连接放在最后。
#SPI通信协议
#SPI基础概念
Serial Peripheral Interface 缩写SPI 翻译:串行外设接口 同步串行通信协议(数据线上的数据帧是bit为单位传输,一条传输数据线),的一种 高速 全双工(A B 双方可以同时发送信息 像vx聊天软件) 同步的通信总线,支持一主多从 (一个主设备多个从设备)但这种通信方式通常用在短距离通信 。
在通信的过程中,主设备是通信的发起方和控制方,从设备只能接受与响应主设备的命令还有传输的数据,通过使用片选信号来选择与指定的的从设备进行通信。
SPI通信方式,硬件连接通过四根线,SCLK MOSI MISO CS 通过这四根线,连接主机跟从机,所以当我们看到用的模块上有 SCLK MOSI MISO CS 这四根引脚,就能反过来确定模块使用的是SPI通信方式。
SPI这种通信方式通常应用在 存储芯片 EEPROM SRAM SD卡使用SPI通信,读写存储芯片里面的数据到主控制器,还有 OLED屏幕 LCD屏幕 也是用SPI通信,大部分LCD屏幕使用的是并口通信。
通信线 | 说明 |
SCLK | 时钟线,也叫做SCK。由主机产生时钟信号,使用相同时钟,同步通信协议。 |
MOSI | master output slave input 主设备输出从设备输入线,也叫做SDO。意为主机向从机发送数据。 |
MISO | master input slave output 主设备输入从设备输出线,也叫做SDI。意为主机接收从机的数据。 |
CS | 片选线,也叫做NSS。从机使能信号,由主机控制。当我们的主机控制某个从机时,需要将从机对应的片选引脚电平拉低或者是拉高,就代表选择对应的从机。 |
SPI这种通信方式跟IIC一样,是分软件SPI和硬件SPI的,下面进行相关介绍,一般模块之间使用SPI通信也是通过,软件SPI进行通信,传输数据,硬件SPI对于初学者来说,了解即可。
软件SPI:通过软件程序,控制GPIO引脚去模拟,SPI通信 收发数据 起始 结束的通信时序,完成SPI通信,这种方式效率没有硬件SPI 高,但是大多数只要支持GPIO的开发板上就能使用SPI进行通信,局限性没有那么大,相对于硬件SPI来讲。
硬件SPI:通过MCU芯片内部集成 电路 控制寄存器 来控制SPI通信时序单元,这种通信方式依靠芯片内部集成的电路,如果芯片内部没有集成,这种通信电路,就不能进行通信。初次之外硬件SPI通信支持 中断 DMA 硬件缓冲区 高速传输。
#SPI通信模式
SPI 一对一通信:这里SS代表的就是CS片选信号一样的,连接方式如下图所示,这种通信方式主机能控制的CS片选信号只有一个。
SPI 一对多通信:这个时候主设备通过片选信号(CS),选择需要通信的从机,时钟线的连接保证这主设备和从设备之间,能够同步传输数据,通过选择不同的片选信号(CS),能够与不同的从机进行通信。
#SPI通信时序类型
SPI协议传输规则,通过时钟极性(CKPL)和相位(CKPH),分别控制,时钟极性(CKPL)和相位(CKPH)控制了时钟电平还有数据采样方式。
时钟极性(CKPL)特性:
CKPL = 0:时钟信号在空闲状态(没有传输数据)下是低电平。
CKPL = 0:时钟在空闲状态(没有传输数据)下是高电平。
总结:CKPL(时钟极性)这个表示位,用来控制时钟信号在空闲状态下的电平。
时钟相位(CKPH)特性:
CKPH = 0:数据采样发生在时钟变化的第一个边沿,数据更新发生在第二个边沿
CKPH = 0:数据更新发生在第一个时钟变化边沿,采样发生在第二个时钟边沿。
总结:CKPH(相位)这个标志位,用来定义数据采样和更新发生在时钟信号的那一个边沿上。
上面的 采样 跟 更新 可以近似成从机接受数据 主机或从机发送下一个 位(bit)数据帧,通过选择这两个标志位,可以组合成四种SPI通信的模式,去进行通信下面分别介绍。
SPI通信方式0:
时钟极性 (CKPL = 0):空闲状态下时钟电平默认为为第电平。
相位(CKPH = 0):数据采样发生在时钟变化的第一个边沿,更新发生在第二个边沿。
SPI通信方式1:
时钟极性 (CKPL = 0):空闲状态下默认为低电平。
相位(CKPH = 1):数据更新发生在时钟变化第一个边沿,数据采样发生在第二个边沿。
SPI通信方式2:
时钟极性(CKPL= 1):时钟总线空闲状态下默认为高电平。
相位(CKPH = 0):数据采样发生在时钟变化第一个边沿,数据更新发生在第二个边沿。
SPI通信方式3:
时钟极性(CKPL = 1):时钟总线默认状态下为高电平。
相位(CKPH = 1):数据更新发生在第一个时钟边沿,数据采样发生在随后的边沿。
这张图里面的CPOL是时钟极性 SPHA是相位,顺着虚线可以看到下面的MOSI 和MISO 这个图是不同SPI模式的不同时序图片。
【立创·天空星STM32F407VET6】入门手册 - 飞书云文档 (feishu.cn)
欢迎指正,希望对你,有所帮助!!!