电工技术基础_电工基础知识_电工之家-电工学习网

欢迎来到电工学习网!

SPI时序开端知道

2017-04-03 12:55分类:PLC基础知识 阅读:

 

UART、I2C和SPI是单片机通讯中最常用的三种通讯协议。前边咱们现已学了UART和I2C通讯协议,这篇文章咱们来学习剩下的SPI通讯协议。SPI是英语SerialPeripheralInterface的缩写,望文生义即是串行外围设备接口。SPI是一种高速的、全双工、同步通讯总线,规范的SPI也仅仅运用4个引脚,常用于单片机和EEPROM、FLASH、实不时钟、数字信号处理器等器材的通讯。SPI通讯原理比I2C要简略,它首要是主从办法通讯,这种办法一般只需一个主机和一个或许多个从机,规范的SPI是4根线,别离是SSEL(片选,也写作SCS)、SCLK(时钟,也写作SCK)、MOSI(主机输出从机输入MasterOutput/SlaveInput)和MISO(主机输入从机输出MasterInput/SlaveOutput)。

SSEL:从设备片选使能信号。假定从设备是低电平使能的话,当拉低这个引脚后,从设备就会被选中,主机和这个被选中的从机进行通讯。

SCLK:时钟信号,由主机发作,和I2C通讯的SCL有点相似。

MOSI:主机给从机发送指令或许数据的通道。

MISO:主机读取从机的状况或许数据的通道。

在某些状况下,咱们也能够用3根线的SPI或许2根线的SPI进行通讯。比方主机只给从机发送指令,从机不需求回复数据的时分,那MISO就能够不要;而在主机只读取从机的数据,不需求给从机发送指令的时分,那MOSI能够不要;当一个主机一个从机的时分,从机的片选有时能够固定为有用电平而一向处于使能状况,那么SSEL能够不要;此刻假定再加上主机只给从机发送数据,那么SSEL和MISO都能够不要;假定主机只读取从机送来的数据,SSEL和MOSI都能够不要。3线和2线的SPI咱们要知道怎么回事,实习运用也是有运用的,可是当咱们提及SPI的时分,一般都是政策准SPI,都是指4根线的这种办法。

SPI通讯的主机也是咱们的单片机,在读写数据时序的进程中,有四种办法,要了解这四种办法,首要咱们得学习一下2个名词。

CPOL:ClockPolarity,即是时钟的极性。
时钟的极性是啥概念呢?通讯的悉数进程分为闲暇时刻和通讯时刻,SCLK在数据发送之前和往后的闲暇状况是高电平那么CPOL=1,假定闲暇状况SCLK是低电平,那么CPOL=0。

CPHA:ClockPhase,即是时钟的相位。

主机和从机要沟通数据,就牵涉到一个疑问,即主机在啥时刻输出数据到MOSI上而从机在啥时刻采样这个数据,或许从机在啥时刻输出数据到MISO上而主机啥时刻采样这个数据。同步通讯的一个特征即是悉数数据的改动和采样都是伴跟着时钟沿进行的,也即是说数据老是在时钟的边际邻近改动或被采样。而一个时钟周期必定包含了一个上升沿和一个下降沿,这是周期的界说所抉择的,仅仅这两个沿的先后并无规矩。又因为数据从发作的时刻到它的安稳是需求必守时刻的,那么,假定主机在上升沿输出数据到MOSI上,从机就只能鄙人降沿去采样这个数据了。反之假定一方鄙人降沿输出数据,那么另一方就有必要在上升沿采样这个数据。

CPHA=1,就标明数据的输出是在一个时钟周期的榜首个沿上,至于这个沿是上升沿仍是下降沿,这要是CPOL的值而定,CPOL=1那即是下降沿,反之即是上升沿。那么数据的采样天然即是在第二个沿上了。

CPHA=0,就标明数据的采样是在一个时钟周期的榜首个沿上,一样它是啥沿由CPOL抉择。那么数据的输出天然就在第二个沿上了。细心想一下,这儿会有一个疑问:即是当一帧数据开端传输榜首bit时,在榜首个时钟沿上就采样该数据了,那么它是在啥时分输出来的呢?有两种状况:一是SSEL使能的边际,二是上一帧数据的终究一个时钟沿,有时两种状况还会一同收效。

咱们以CPOL=1/CPHA=1为例,把时序图像出来给咱们看一下,如图1所示,。

SPI通讯时序图(1)

1SPI通讯时序图(1)

咱们看图15-1所示,当数据未发送时以及发送结束后,SCK都是高电平,因而CPOL=1。能够看出,在SCK榜首个沿的时分,MOSI和MISO会发作改动,一同SCK第二个沿的时分,数据是安稳的,此刻采样数据是适宜的,也即是上升沿即一个时钟周期的后沿锁存读取数据,即CPHA=1。留心终究最荫蔽的SSEL片选,一般状况下,这个引脚一般用来抉择是哪个从机和主机进行通讯。剩下的三种办法,我把图像出来,简化起见把MOSI和MISO合在一同了,咱们细心对照看看研讨一下,把悉数的理论进程都弄了解,有利于你对SPI通讯的深化了解,如图2所示。

SPI通讯时序图

2SPI通讯时序图(2)

在时序上,SPI是不是比I2C要简略的多?没有了开端、接连和应对,UART和SPI在通讯的时分,只担任通讯,不论是不是通讯成功,而I2C却要经过应对信息来获取通讯成功失利的信息,所以相对来说,UART和SPI的时序都要比I2C简略一些。

上一篇:单片机波特率的计划

下一篇:单片机内部并行I/O口及其效果

相关推荐

电工推荐

    电工技术基础_电工基础知识_电工之家-电工学习网
返回顶部