数字接口系列文章:SPI 总线
SPI总线
SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,地位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。
图8-27 SPI总线的系统
图 2 两个移位寄存器形成一个内部芯片环形缓冲器
CPOL = 0 时,时钟在逻辑 0 处空闲:
-
如果 CPHA = 0,数据会在 SCK 的上升沿上读取,在下降沿上变化。
-
如果 CPHA = 1,数据会在 SCK 的下降沿上读取,在上升沿上变化。
CPOL = 1时,时钟在逻辑高电平处空闲:
-
如果 CPHA = 0,数据会在 SCK的下降沿上读取,在上升沿上变化。
-
如果 CPHA = 1,数据会在 SCK 的上升沿上读取,在下降沿上变化。
图 4 主节点与独立从节点(左)以及菊花链式从节点(右)进行通信
1、SPI总线主要特点
· 全双工;
· 可以当作主机或从机工作;
· 提供频率可编程时钟;
· 发送结束中断标志;
· 写冲突保护;
2、接口定义
该总线通信基于主-从配置。它有以下4个信号:
MOSI:Master Out Slave In主出/从入
MISO:Master In Slave Out 主入/从出
SCK:Serial Clock 串行时钟
SS:Slave Select 从属选择
芯片上“从属选择”(slave-select)的引脚数决定了可连到总线上的器件数量。
3、SPI时序分析
在SPI传输中,数据是同步进行发送和接收的。数据传输的时钟基于来自主处理器的时钟脉冲,摩托罗拉没有定义任何通用SPI的时钟规范。然而,最常用的时钟设置基于时钟极性(CPOL)和时钟相位(CPHA)两个参数,CPOL定义SPI串行时钟的活动状态,而CPHA定义相对于SO-数据位的时钟相位。CPOL和CPHA的设置决定了数据取样的时钟沿。如图1所示,根据CPOL和CPHA的不同,有四种不同的工作模式。
图1 SPI时序分析
其中,CPOL是用来决定SCK时钟信号空闲时的电平。CPOL=0,空闲电平为低电平,CPOL=1时,空闲电平为高电平。CPHA用来决定采样时刻的,CPHA=0,在每个周期的第一个时钟沿采样。CPHA=1,在每个周期的第二个时钟沿采样。
CPHA = 0表示在每个周期的第一个时钟沿采样,对应存在delay;
CPHA = 1表示在每个周期的第二个时钟沿采样,对应无delay。