当前位置:首页 > > 嵌入式微处理器
[导读]SPI是单片机外设电路中常用的一种通讯方式,适用于近距离通信,通常用于芯片间的通讯,有四根线。 在SPI通讯中总线时钟和总线相位也两个比较重要的概念,一般在使用SPI通信时都使用默认设置,所以容易把这两个参数忽略。 和大家分享一下SPI通讯、时钟极性以及时钟相位的基础知识。

SPI是单片机外设电路中常用的一种通讯方式,适用于近距离通信,通常用于芯片间的通讯,有四根线。 在SPI通讯中总线时钟和总线相位也两个比较重要的概念,一般在使用SPI通信时都使用默认设置,所以容易把这两个参数忽略。 和大家分享一下SPI通讯、时钟极性以及时钟相位的基础知识。
什么是SPI通讯总线
SPI总线的英文全称为S“Serial Periphral Interface”,意思是串行外设接口,由于通讯距离比较短,适用于芯片级别的短距离通讯。SPI的通讯分为主机和从机,属于高速全双工的总线通讯方式,SPI有四根线,分别为:
  • MISO:主设备输入与从设备输出线;
  • MOSI:主设备输出与从设备输入线;
  • SCK:串行同步时钟信号线;
  • SS:从机片选信号线,也用CS来表示。
SPI总线的主机和从机的系统连接图如下图所示。

SPI总线时钟的极性含义解释
SPI的时钟极性用CPOL来表示。SPI总线通讯的时基基准是时钟信号线SCK,SCK既有高电平,又有低电平,SPI的时钟极性用来表示时钟信号在空闲时是高电平还是低电平。情况说明如下:
  • 当CPOL=0:SCK信号线在空闲时为 低电平
  • 当CPOL=1:SCK信号线在空闲时为 高电平


SPI总线时钟的相位含义解释


时钟的相位用CPHA来表示,用来决定何时进行信号采样,在第一个跳变沿还是第二个跳变沿,至于是上升沿还是下降沿则由CPOL相位极性来表示。下面分两种情况来介绍。如下图所示。

上图表示CPHA=1时的情形,即在SCK时钟的第二个边沿进行数据的采样,至于是上升沿采样还是下降沿采样取决于时钟极性CPOL的值。如果CPHA=1,CPOL=1,则在SCK时钟的第二个边沿上升沿时进行数据采样。如果CPHA=1,CPOL=0,则在SCK时钟的第二个边沿下降沿时进行数据采样。
CPHA=0时的情形如下图所示。

上图表示CPHA=0时的情形,即在SCK时钟的第一个边沿进行数据的采样,至于是上升沿采样还是下降沿采样取决于时钟极性CPOL的值。如果CPHA=0,CPOL=1,则在SCK时钟的第一个边沿下降沿时进行数据采样。如果CPHA=0,CPOL=0,则在SCK时钟的第一个边沿上升沿时进行数据采样。
总结一下,SPI的时钟极性决定了SCK在空闲时是低电平还是高电平;而相位极性则决定了在第一个边沿还是第二个边沿进行数据采样。SPI的时钟极性CPOL和相位极性CPHA是相互影响相互决定的,以上概念可能很绕口难以理解,但是对SPI进行一次编程之后,所有的内容都好理解了。

-END-


来源 | 玩转嵌入式

作者|刘小舒


整理文章为传播相关技术,版权归原作者所有 |

如有侵权,请联系删除 |


【1】国内MCU能替代国外产品吗?MCU的未来又将如何?

【2】35岁真的是程序员的坎儿吗?

【3】不同编程语言能耗不同?看这27种语言对比!

【4】超长干货为你解析:从串口驱动到Linux驱动模型,嵌入式必会!

【5】本文把TCP/IP讲绝了!


免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

嵌入式ARM

扫描二维码,关注更多精彩内容

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭