SPI相关理论知识总结

来源:互联网 发布:数据库中的decode 编辑:程序博客网 时间:2024/05/21 10:19

SPI

1简述

    SPI(SerialPeripheral Interface):串行外设接口。SPI,是一种全双工(可以同时(瞬时)进行信号的双向传输(A→B且B→A))、同步的通行总线。目前传输速度可以达到几Mbps,数据传输速度总体来说比I2C总线要快。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。

       必须明白SPI接口是物理特性,是实实在在存在的接口,就像USB接口一样。SPI协议是为了使数据进行传输双方约定的一种传输协议(不然双方怎么知道什么时候该接收数据,什么时候该发数据)。如果没有SPI接口,则可以用程序模拟SPI通信(注意仅仅只是模拟)。

       SPI以总(Master)从(Slave)方式工作,通常有一个主设备和若干个从设备,其中从设备是否工作由主设备通过控制片选CS(SS)来决定。

        由于SPI接口是同步串行外围接口,SPI是串行通讯协议。也就是说数据是一位一位的传输的,这就是SCLK时钟线存在的原因,由SCLK提供时钟脉冲,数据的输出与输入是基于脉冲的上升沿或下降沿完成传输。

    优点

(1)由于时钟信号线(SCLK)只由主设备控制,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCLK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对SCLK时钟线的控制可以完成对通讯的控制。

(2)SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效

(3)接口简单(SPI接口在内部硬件实际上是两个简单的移位寄存器),利于硬件设计与实现。

(4)相对抗干扰强,传输稳定。

    缺点

(1)   没有指定的流控制,没有应答机制确认是否接收到数据,主从器件均不对消息进行确认,且主设备无法得知从设备是否繁忙,导致增加了软件开销

(2)   没有多主模式,必须在软件设计和外部逻辑上实现多主器件架构,比较复杂。

(3)   在多个从器件的系统中,每个从器件需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。。

2.引脚介绍

(1)MISO[Masterinput slave output](SDO) – 主设备数据输出,从设备数据输入;

(2)MOSI[Masteroutput slave input](SDI) – 主设备数据输入,从设备数据输出;

(3)SCLK– 时钟信号,由主设备产生;

(4)CS(/SS、NSS)– 从设备使能信号,由主设备控制。

3.四种工作模式及时序分析

SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换,数据按位传输,高位在前,地位在后。

4种模式完全由时钟决定,其中根据时钟的极性(CPOL)和相位(CPHA)的不同组成4种不同模式,具体见表3-1。

表3-1  4种不同的传输模式

 

 

传输模式

时钟极性(CPOL)

时钟相位(CPHA)

CPOL:定义时钟空闲时候(不工作)时候的电平

CPOL=0:空闲为低电平

CPOL=1:空闲为高电平

CPHA:定义数据在跳变沿(上升或下降沿)的采样时间。

CPHA=0:第一个跳变沿进行数据采样

CPHA=1:第二个跳变沿进行数据采样

SP0

0

0

SP1

0

1

SP2

1

0

SP3

1

1

       SPI模块再与外设进行数据交换时候,根据外设工作要求,可以对CPOL和CPHA进行配置,SPI主模块和其通信外围设备的时钟相位和极性应该一致。SPI的4种工作方式中,其中引用比较广泛的是SPI0和SPI3。下面以图解的形式进行讲解,如图3-1,3-2。

图3-1  4种传输模式


图3-2  4种传输模式详解



 

 

 

 

 

 

 

 

 

附1:移位寄存器的工作方式

:

          

 

0 0
原创粉丝点击