spi总线

    SPI总线是摩托罗拉提出的三线同步串行外围接口,采用主从模式架构,支持单主设备。时钟由主设备控制,数据在时钟脉冲下按位输出,高位在前。

    SPI一般有4根线,分别是:

    MOSI:主器件输出,从器件输入(也有叫sdo)

    MISO:主器件输入,从器件输出 (也有叫sdi)

     SCK:时钟信号,由主设备控制发出。

    /SS :设备选择信号,由主设备控制,根据这个信号可以决定能连接到从设备的数量


    spi的数据传输主要是在SCK的的控制下,两个双向以寄存器进行数据的交换。

     

    SPI总线根据时钟极性(CPOL)和时钟相位(CPHA)的不同,有四种工作方式:

CPOL决定了SCK时钟信号空闲时的电平,CPOL用来决定SCK时钟信号空闲时的电平,CPOL=0时,空闲电平为低电平,CPOL=1时,空闲电平为高电平。CPHA是用来决定采样时刻的,CPHA=0时在第一个时钟沿采样,CPHA=1,在每个周期第二个时钟沿采样。SPI主从模块的时钟极性和时钟相位应该设为一致

SPI总线协议及SPI时序图详解【转】 - pcwebmaster - pcwebmaster的博客

 

    当CPOL=0,CPHA=0时

SPI总线协议及SPI时序图详解【转】 - pcwebmaster - pcwebmaster的博客

 当CPOL和CPHA都为0时,SCK空闲时候为低电平,主从器件都是时钟前沿采样,时钟后沿输出数据,那么对于主从设备,它们的第一位数据bit1是什么时候发出去的呢。

主器件是在SCK信号有效以前发送bit1,由图1可以看出,主设备的bit1是在SCK上升沿的前半个时钟发出。与从机选择SSEL(下图的CS脚)没有关系。

从器件是在SSEL信号有效后,立即输出bit1,尽管此时SCK并没有起效,由图2可以看出。

SPI总线协议及SPI时序图详解【转】 - pcwebmaster - pcwebmaster的博客

图1

 CS信号有效后(低电平有效,注意CS下降沿后发生的情况),故意用延时程序

延时了一段时间,之后再向数据寄存器写入了要发送的数据,来观察主器件输出bit1的情况(MOSI)。

可以看出,bit1(值为1)是在SCK信号有效之前的半个时钟周期的时刻开始输出的(与CS信号无关),

到了SCK的第一个时钟周期的上升沿正好被从器件采样。

SPI总线协议及SPI时序图详解【转】 - pcwebmaster - pcwebmaster的博客

图2

注意看CS和MISO信号。我们可以看出,CS信号有效后,从器件立刻输出了bit1(值为1)。

 

通常我们进行的spi操作都是16位的。图3记录了第一个字节和第二个字节间的相互衔接的过程。

第一个字节的最后一位在SCK的上升沿被采样,随后的SCK下降沿,从器件就输出了第二个字节的第一位。

SPI总线协议及SPI时序图详解【转】 - pcwebmaster - pcwebmaster的博客

图3

SPI总线协议介绍(接口定义,传输时序)

一、技术性能

SPI接口是Motorola 首先提出的全双工三线同步串行外围接口,采用主从模式(Master Slave)架构;支持多slave模式应用,一般仅支持单Master。

时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后(MSB first);SPI接口有2根单向数据线,为全双工通信,目前应用中的数据速率可达几Mbps的水平。

-------------------------------------------------------

二、接口定义

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

SPI总线协议及SPI时序图详解【转】 - pcwebmaster - pcwebmaster的博客

(1)MOSI:主器件数据输出,从器件数据输入

(2)MISO:主器件数据输入,从器件数据输出

(3)SCLK :时钟信号,由主器件产生

(4)/SS:从器件使能信号,由主器件控制

-------------------------------------------------------

三、内部结构

SPI总线协议及SPI时序图详解【转】 - pcwebmaster - pcwebmaster的博客

-------------------------------------------------------

四、传输时序

SPI接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图所示,在SCLK的下降沿上数据改变,上升沿一位数据被存入移位寄存器。

SPI总线协议及SPI时序图详解【转】 - pcwebmaster - pcwebmaster的博客

SPI接口没有指定的流控制,没有应答机制确认是否接收到数据。


参考自:http://blog.sina.com.cn/s/blog_678f4ab70100p1lk.html

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