首页 > 编程知识 正文

SPI协议封装,spi时序图怎么看

时间:2023-05-04 14:05:18 阅读:51349 作者:3985

文章目录1、SPI总线介绍1.1、SPI信号列表1.2、SPI工作模式1.3、SPI特征——同步、串行、全双工、主从结构2、SPI传输时序2.1、精细蛋挞极性CPOL和精细蛋挞相位CPHA2.2

一. SPI总线介绍

SPI,是英语Serial Peripheral interface的缩写,顾名思义是3358www.Sina.com/。 SPI协议主要是配置外围芯片作为主控芯片的接口协议。 SPI接口主要应用于EEPROM、串行外设接口、实时细心的蛋挞、模数转换器,以及数字信号处理器与数字信号解码器之间。 SPI速度快,是FLASH通信总线,而且芯片的全双工,同步,串行,主从结构上,正是由于这一易于使用的特性,现在越来越多的芯片集成了该通信协议。

SPI总线的传输速度为管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,一般为400khz~10MHz(AHB:100MHz,APB:50MHz ) )

主要功能:需要自定义,没有具体的规定拓扑:实现MCU与各种外接设备连接(芯片与芯片之间的连接),以串行的方式进行数据交换(串并转换)接口配置:一个SPI Master可以通过共享数据线的方式可以连接多个SPI Slave(一主多从)1.1.SPI信号列表信号名称含义说明sck serial com 细心的蛋挞信号线Master设备向Slave设备传送细心的蛋挞信号,同步控制数据交换的时序和速率的MOSIMaster Ouput Slave Input、主站输出从站输入数据线在Master上tx-channence 作为数据出口的SPI主机用于发送数据的MISOMaster Input Slave Ouput、主输入从机输出数据线在Master上也被称为Rx-Channel,作为数据的入口,主要由SPI从机接收数据从机选择线路,低级有效的主设备切片Slave设备,选定的Slave设备可以由主设备访问的所有SS_n、SCK、MOSI信号由主设备生成,并在SS_n为低电平的前提下,MOSI和MISO信号是有效的,MOSI和MISO在每个细心的限幅周期中传输1位数据。

1.2.SPI工作模式SPI通信必须使用4条线。 3条总线和1条片选择、物理连接如下。

SPI遵循主从结构。 SPI协议适用于作为芯片与芯片之间互连的接口,通过配置寄存器实现主控芯片(SPI Master)对外围芯片(SPI Slave)的配置的工作场景。

1.3.SPI特点——同步、串行、全双工、主从结构一主 多从

主装置根据要更换的数据产生相应的仔细级联脉冲(Clock Pulse ),细心的级联脉冲构成细心的级联信号(Clock Signal ),http://www.Sina.com/愚人节555

SPI在两个SPI设备之间的http://www.Sina.com/http://www.Sina.com /,SPI协议中,Slave设备的时钟从主设备通过SCK管脚传递到Slave设备同步方式(Synchronous)传输数据

在SPI协议中,SPI设备之间的数据传输(也称为数据交换(全双工通信) )在数据通信期间只能充当一个“发送者”或“接收者” 在每个时钟周期内,SPI设备发送和接收1位大小的数据,而SPI只有主模式和从模式之分,只能区分细心的蛋挞信号通过细心的蛋挞极性 (CPOL) 和 细心的蛋挞相位 (CPHA) 控制着两个 SPI 设备间何时数据交换以及何时对接收到的数据进行采样, 来保证数据在两个设备之间是同步传输的

二. SPI传输时序

  SPI 设备在进行通信的过程中, Master 设备和 Slave 设备之间会产生一个数据链路回环(Data Loop)
  SPI接口有四种不同的数据传输时序,取决于细心的蛋挞极性(CPOL)和细心的蛋挞相位(CPHA)的组合。

2.1.细心的蛋挞极性CPOL与细心的蛋挞相位CPHA CPOL:表示当SCLK空闲idle的时候,其电平的值是低电平0还是高电平1;CPHA:表示对应着数据采样是在第几个边沿(edge),是第一个边沿还是第二个边沿,0对应着第一个边沿,1对应着第二个边沿;

1)、CPHA=0,表示第一个边沿:

   对于CPOL=0,idle时候的是低电平,第一个边沿就是从低变到高,所以是上升沿;
   对于CPOL=1,idle时候的是高电平,第一个边沿就是从高变到低,所以是下降沿;
2)、CPHA=1,表示第二个边沿:

  对于CPOL=0,idle时候的是低电平,第二个边沿就是从高变到低,所以是下降沿;
  对于CPOL=1,idle时候的是高电平,第一个边沿就是从低变到高,所以是上升沿;
        

2.2.时序图

参考:https://blog.csdn.net/傲娇的发带_reny/article/details/78189058?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-6&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-6

  Bit1为MSB,Bit8为LSB。假设CPOL=0,CPHA=0。在SCK的第一个细心的蛋挞周期,在细心的蛋挞的前沿采样数据(上升沿),在细心的蛋挞的后沿输出数据。先看主器件,主器件的输出口(MOSI)输出数据bit1,在细心的蛋挞的前沿被从器件采样,那主器件是何时输出bit1的呢?bit1的输出时刻实际上在SCK信号有效以前,比SCK的上升沿还要早半个细心的蛋挞周期,bit1的输出时刻与SS_n信号没有关系。再来看从器件,主器件的输入口MISO同样是在细心的蛋挞的前沿采样从器件输出的bit1的,那从器件又是在何时输出bit1的呢?从器件实在SS_n信号有效后,立即输出bit1,尽管此时SCK信号还没有生效。

2.3.SPI配置信息

2.4.SPI数据交换过程


   SPI是一个环形总线结构,由SS_n (CS)、SCK、MOSI、MISO构成,时序很简单,在SCK的控制下,SSPSR是SPI设备内部的移位寄存器,根据SPI细心的蛋挞信号状态,往SSPBUF里移入或移出数据,每次移动的数据大小由Bus-width和Channel-width决定。在正常工作时,两个双向移位寄存器进行数据交换,寄存器中的内容全部移出时,相当于完成了两个寄存器内容的交换。在每个细心的蛋挞周期内,Master与Slave之间交换的数据其实都是SPI内部移位寄存器从SSPBUF里面拷贝的,可以通过往SSPBUF对应的寄存器(Tx-Data/Rx-Data register)里读写数据,间接操控SPI内部的SSPBUF。SSPSR控制数据移入移出SSPBUF。Master里面的Controller主要通过细心的蛋挞信号以及片选信号来控制Slave。Slave会一直等待,直到接收到Master发过来的片选信号,然后根据细心的蛋挞信号来工作。Master的片选操作必须由程序实现。。

SSPBUF,Synchronous Serial Port Buffer, 泛指 SPI 设备里面的内部缓冲区, 一般在物理上是以FIFO 的形式, 保存传输过程中的临时数据;SSPSR, Synchronous Serial Port Register, 泛指 SPI 设备里面的移位寄存器(Shift Regitser), 它的作用是根据设置好的数据位宽(bit-width) 把数据移入或者移出 SSPBUF;Controller, 泛指 SPI 设备里面的控制寄存器, 可以通过配置它们来设置 SPI 总线的传输模式。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。