【通信协议】一文搞懂SPI

简介: SPI(Serial Peripheral Interface)是 Motorola 公司推出的一种同步串行接口技术,是一种高速的,全双工,同步的通信总线。

SPI总线简介

SPI(Serial Peripheral Interface)是 Motorola 公司推出的一种同步串行接口技术,是一种高速的,全双工,同步的通信总线。


接口定义

75c713fd0a562b550224339d6bea8908.png

SPI接口共有4根信号线,分别是:片选信号、时钟信号、串行输出信号、串行输入信号。

  • MOSI:Master数据输出,Slave数据输入
  • MISO:Master数据输入,Slave数据输出
  • SCLK :时钟信号,由Master产生
  • SS:片选信号,由Master控制


时钟极性和时钟相位

在SPI操作中,最重要的两项设置就是时钟极性(CPOL)和时钟相位(CPHA)。

时钟极性: 时钟空闲时的电平。

时钟相位: 采样数据的时钟沿。

SPI模式

CPOL

CPHA

模式0

0

0

模式1

0

1

模式2

1

0

模式3

1

1

CPOL: SPI空闲时的时钟信号电平(1:高电平, 0:低电平)

CPHA: SPI在时钟第几个边沿采样(1:第二个边沿开始, 0:第一个边沿开始)

模式0

image.png

空闲状态CLK为低电平,CLK上升沿采样(这时候数据不能改变)。

模式1

a0694d5a2e1578b7cb040dfadf428053.png

空闲状态CLK为低电平,CLK下降沿采样(这时候数据不能改变)。

模式2

e47b4afa468ccefa432a5ff16e93b826.png

空闲状态CLK为高电平,CLK下升沿采样(这时候数据不能改变)。

*注意: 上图的第一个CLK下降沿应该往右移动一点更准确,因为采样时数据不应该改变。

模式3

1e439e8b138fb64b9dde62c55ebf64eb.png

空闲状态CLK为高电平,CLK上降沿采样(这时候数据不能改变)。


注意:

当CPHA为0时,采集数据发生在时钟周期的前边沿(第一个边沿,可能是上升沿也可能是下降沿,由CPOL决定);

当CPHA为1时,采集数据发生在时钟周期的后边沿(第二个边沿,可能是上升沿也可能是下降沿,由CPOL决定);

所以不能说CPHA=0就是上升沿或下降沿采集数据,要根据CPOL才能确定。


总结

当我们写某SPI芯片的驱动时,主要要关注外设芯片的SPI模式(时钟极性和时钟相位),以及寄存器,这些在datasheet中都会体现。


相关文章
|
芯片 异构计算 内存技术
关于SPI协议,看这一篇文章就够了!
关于SPI协议,看这一篇文章就够了!
625 0
关于SPI协议,看这一篇文章就够了!
|
3天前
|
传感器
SPI协议详解
SPI协议详解
|
2月前
|
存储 缓存 芯片
|
2月前
|
存储 芯片
|
2月前
透彻理解 UART 通信的基本方法
透彻理解 UART 通信的基本方法
43 0
|
11月前
|
存储 SoC
深入理解AMBA总线(十一)AXI协议导论
深入理解AMBA总线(十一)AXI协议导论
842 0
|
12月前
|
内存技术
一文教你彻底学会SPI协议
一文教你彻底学会SPI协议
535 0
|
数据采集 缓存 芯片
一文搞懂SPI通信协议
SPI是串行外设接口(Serial Peripheral Interface)的缩写,是美国摩托罗拉公司(Motorola)最先推出的一种同步串行传输规范,也是一种单片机外设芯片串行扩展接口,是一种高速、全双工、同步通信总线,所以可以在同一时间发送和接收数据,SPI没有定义速度限制,通常能达到甚至超过10M/bps。