SPI时序详解

一、SPI时序详解

1.介绍

SPI总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO。用于 CPU与各种外围器件进行全双工、同步串行通讯。

2.SPI主要特点

SPI主要特点有:可以同时发出和接收串行数据,可以当作主机或从机工作,提供频率可编程时钟,发送结束中断标志,写冲突保护,总线竞争保护等。

3.SPI的工作方式

SPI总线有四种工作方式(SP0、SP1、SP2、SP3),其中使用的最为广泛的是 SPI0 和 SPI3 方式。SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。

如果CPOL = 0,串行同步时钟的空闲状态为低电平。如果CPOL = 1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果 CPHA = 0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样。如果CPHA = 1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。 

SPI主模块和与之通信的外设音时钟相位和极性应该一致。

二、SPI时序详解*

1.SPI时序图

SPI接口在模式0下输出第一位数据的时刻SPI接口有四种不同的数据传输时序,取决于CPOL 和 CPHL这两位的组合。图1表现了这四种时序,时序与CPOL、CPHL的关系也可以从图1中看出。

SPI时序详解_第1张图片

                                                                                                 图1

CPOL 是用来决定 SCK 时钟信号空闲时的电平,CPOL=0,空闲电平为低电平,CPOL=1时,空闲电平为高电平。CPHA 是用来决定采样时刻的,CPHA = 0,在每个周期的第一个时钟沿采样,CPHA = 1,在每个周期的第二个时钟沿采样。由于器件工作在模式0这种时序(CPOL = 0,CPHA = 0),所以将图1简化为图2,只关注模式0的时序。

SPI时序详解_第2张图片

                                                           图2

SCK的第一个时钟周期,在时钟的前沿采样数据(上升沿,第一个时钟沿),在时钟的后沿输出数据(下降沿,第二个时钟沿)。

首先来看主器件,主器件的输出口(MOSI)输出的数据bit1,在时钟的前沿被从器件采样,那主器件是在何时刻输出 bit1 的呢?

 bit1 的输出时刻实际上在 SCK 信号有效以前,比 SCK 的上升沿还要早半个时钟周期。bit1 的输出时刻与 SSEL 信号没有关系。

再来看从器件,主器件的输入口(MISO)同样是在时钟的前沿采样从器件输出的 bit1 的,那从器件又是在何时刻输出 bit1 的呢?

从器件是在SSEL信号有效后,立即输出 bit1,尽管此时SCK信号还没有起效。

SPI时序详解_第3张图片

从这张图就可以很清楚的看出主从器件的bit1 是怎样输出的。




你可能感兴趣的:(51单片机)