基于SPI协议的Flash全擦除实验

1、理论知识

        SPI(Serial Peripheral Interface,串行外围设备接口)通讯协议,是Motorola公司提出的一种同步串行接口技术,是一种高速、全双工、同步通信总线,在芯片中只占用四根管脚用来控制及数据传输,广泛用于EEPROM、Flash、RTC(实时时钟)、ADC(数模转换器)、DSP (数字信号处理器)以及数字信号解码器上,是常用的也是较为重要的通讯协议之一。

        SPI通讯协议的优点是支持全双工通信,通讯方式较为简单,且相对数据传输速率较快;缺点是没有指定的流控制,没有应答机制确认数据是否接收,与IIC总线通讯协议相比,在数据可靠性上有一定缺陷,IIC总线通讯协议的相关内容会在后面章节进行讲解。

        对于SPI通讯协议的相关内容我们分为物理层、协议层两部分进行讲解,具体内容如下。

1.1 物理层

SPI通讯设备的通讯模式是主从通讯模式,通讯双方有主从之分,根据从机设备的个数,SPI通讯设备之间的连接方式可分为一主一从和一主多从

一主一从
一主一从模式
一主多从模式

 

1.2 协议层

1.2.1 CPOL/CPHA及通讯模式

CPOL:时钟极性(clock polarity)状态 0 1

CPHA:时钟相位(clock phase)状态 0 1

SPI通讯协议一共有四种通讯模式,模式0、模式1、模式2以及模式3,这4种模式分别由时钟极性(CPOL,Clock Polarity)和时钟相位(CPHA,Clock Phase)来定义,其中CPOL参数规定了空闲状态(CS_N为高电平,设备未被选中)时SCK时钟信号的电平状态,CPHA规定了数据采样是在SCK时钟的奇数边沿还是偶数边沿

模式0:CPOL= 0,CPHA=0。空闲状态时SCK串行时钟为低电平;数据采样在SCK时钟的奇数边沿,本模式中,奇数边沿为上升沿;数据更新在SCK时钟的偶数边沿,本模式中,偶数边沿为下降沿。

模式1:CPOL= 0,CPHA=1。空闲状态时SCK串行时钟为低电平;数据采样在SCK时钟的偶数边沿,本模式中,偶数边沿为下降沿;数据更新在SCK时钟的奇数边沿,本模式中,偶数边沿为上升沿。

模式2:CPOL= 1,CPHA=0。空闲状态时SCK串行时钟为高电平;数据采样在SCK时钟的奇数边沿,本模式中,奇数边沿为下降沿;数据更新在SCK时钟的偶数边沿,本模式中,偶数边沿为上升沿。

模式3:CPOL= 1,CPHA=1。空闲状态时SCK串行时钟为高电平;数据采样在SCK时钟的偶数边沿,本模式中,偶数边沿为上升沿;数据更新在SCK时钟的奇数边沿,本模式中,偶数边沿为下降沿。

SPI通讯模式时序图

        对于4种通讯模式中,CPOL比较好理解,就是表示设备未被选中的空闲状态时,串行时钟SCK的电平状态,CPOL = 0,空闲状态时SCK为低电平,CPOL = 1,空闲状态时SCK为高电平;CPHA的不同参数则规定了数据采样是在SCK时钟的奇数边沿还是偶数边沿,CPHA = 0,数据采样是在SCK时钟的奇数边沿,CPHA = 1,数据采样是在SCK时钟的偶数边沿,这里不使用上升沿或下降沿表示,是因为不同模式下,奇数边沿或偶数边沿与上升沿或下降沿的对应不是固定的。 

CPHA=0时的SPI通讯模式

        首先,根据SCK在空闲状态时的电平,分为两种情况。CPOL = 0,SCK信号线在空闲状态为低电平; CPOL = 1,SCK信号线在空闲状态为高电平。

        无论CPOL = 0还是1,我们配置的时钟相位CPHA = 0,在图中可以看到,采样时刻都是在SCK的奇数边沿。注意当CPOL=0的时候,时钟的奇数边沿是上升沿,而CPOL=1的时候,时钟的奇数边沿是下降沿。所以SPI的采样时刻不是由上升/下降沿决定的。MOSI和MISO数据线的有效信号在SCK的奇数边沿保持不变,数据信号将在SCK奇数边沿时被采样,在非采样时刻,MOSI和MISO的有效信号才发生切换。

类似地,当CPHA=1时,不受CPOL的影响,数据信号在SCK的偶数边沿被采样,具体见图 。

CPHA=1时的SPI通讯模式

1.2.2 SPI通讯过程 

上文中,我们详细介绍了SPI通讯协议的4中通讯模式,其中模式0和模式3比较常用,下面我们以模式0为例,为大家讲解一下SPI基本的通讯过程。SPI模式0通讯时序图,即空闲时为低电平,采样点为奇数边沿。具体见图。

SPI模式0通讯时序图

        此图表示的是主机视角的通讯时序。SCK、MOSI、CS_N信号均由主机控制产生SCK是时钟信号,用以同步数据MOSI是主机输出从机输入信号,主机通过此信号线传输数据给从机,CS_N为片选信号用以选定从机设备,低电平有效;而MISO的信号由从机产生,主机通过该信号线读取从机的数据。MOSI与MI SO的信号只在CS_N为低电平的时候才有效,在SCK的每个时钟周期MOSI和MISO传输一位数据。 

        CS_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Super_WY_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值