报价
HOME
报价
正文内容
nand spi接口 常用数字接口(2) SPI
发布时间 : 2025-02-05
作者 : 小编
访问数量 : 23
扫码分享至微信

常用数字接口(2) SPI

【SPI概述】

SPI,是Serial Peripheral interface(串行外设接口)缩写。是Motorola首先在其MC68HCXX系列处理器上定义,用来做MCU与外设之间的通信接口。

【SPI接口信号】

如表1所示,SPI接口总共包含四根信号线。

表1 SPI接口信号

【SPI应用框图】

图1 SPI应用框图

图1为SPI典型的应用框图,SPI主设备和从设备之间通过四根信号线连接。MISO/ MOSI信号采样时钟SCK由主设备波特率发生器提供,波特率分频系数可配置范围为(1+N)*2^(M+1),N,M=0~7,最小2分频,最大2048分频。如果主时钟为25MHz,则SCK时钟频率范围为12.5MHz~12.21KHz。主从设备各有8bit移位寄存器。移位寄存器在每个SCK有效沿时,在MISO/MOSIO组成的环路上进行串行移位,8个SCK周期即可完成主从设备之间的数据交换。图中由于仅一个从设备,因此主设备SSn上拉至电源,从设备下拉至地。若有多个从设备则需要多个用以区分和那个从设备进行数据交换。

【SPI工作模式】

图2 SPI工作模式

如图2所示,SPI根据时钟极性(CPOL),采样相位(CPHA)的不同分为四种工作模式。CPOL代表SCK空闲时电平极性,为0时表示空闲时SCK为低电平,为1时表示空闲时SCK为高电平。CPHA代表采样相位,为0时使用SCK单个周期中第一个时钟沿采样,为1时使用SCK单个周期中第二个时钟沿采样。

【后记】

一般地SPI控制器支持Motorola模式和TI模式两种模式。TI模式SPI又称为SSI,其和Motorola模式的区别主要在片选信号的区别。Motorola模式在有效数据传输时片选一直为低有效,而TI模式仅在第一bit数据传输前一个周期有效,用于表示数据开始传输,其他周期均为低电平。TI模式时钟极性和采样是固定的。具体时序如图3所示。

图3 SPI TI模式

常用数字接口(1) UART

干货 快速理解SPI总线协议及SPI时序图

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

下面为一种情况例举:

上升沿发送、下降沿接收、高位先发送。

上升沿到来的时候,sdo上的电平将被发送到从设备的寄存器中。

下降沿到来的时候,sdi上的电平将被接收到主设备的寄存器中。

假设主机和从机初始化就绪:并且主机的sbuff=0xaa (10101010),从机的sbuff=0x55 (01010101),下面将分步对spi的8个时钟周期的数据情况演示一遍(假设上升沿发送数据)。

这样就完成了两个寄存器8位的交换,上面的0--1表示上升沿、1--0表示下降沿,sdi、 sdo相对于主机而言的。根据以上分析,一个完整的传送周期是16位,即两个字节,因为,首先主机要发送命令过去,然后从机根据主机的名准备数据,主机在 下一个8位时钟周期才把数据读回来。

SPI总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO; 用于 CPU与各种外围器件进行全双工、同步串行通讯。SPI主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束 中断标志;写冲突保护;总线竞争保护等。

SPI总线有四种工作方式(SP0, SP1, SP2, SP3),其中使用的最为广泛的是SPI0和SPI3方式。

SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果 CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传 输协议之一进行数据传输。如果 CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。 SPI主模块和与之通信的外设音时钟相位和极性应该一致。

SPI接口在模式0下输出第一位数据的时刻

SPI接口有四种不同的数据传输时序,取决于CPOL和CPHL这两位的组合。图1中表现了这四种时序,时序与CPOL、CPHL的关系也可以从图中看出。

图1

CPOL是用来决定SCK时钟信号空闲时的电平,CPOL=0,空闲电平为低电平,CPOL=1时,空闲电平为高电平。CPHA是用来决定采样时刻的,CPHA=0,在每个周期的第一个时钟沿采样,CPHA=1,在每个周期的第二个时钟沿采样。

由于我使用的器件工作在模式0这种时序(CPOL=0,CPHA=0),所以将图1简化为图2,只关注模式0的时序。

图2

我们来关注SCK的第一个时钟周期,在时钟的前沿采样数据(上升沿,第一个时钟沿),在时钟的后沿输出数据(下降沿,第二个时钟沿)。首先来看主器件,主器件的输出口(MOSI)输出的数据bit1,在时钟的前沿被从器件采样,那主器件是在何时刻输出bit1的呢?bit1的输出时刻实际上在SCK信号有效以前,比 SCK的上升沿还要早半个时钟周期。bit1的输出时刻与SSEL信号没有关系。再来看从器件,主器件的输入口MISO同样是在时钟的前沿采样从器件输出的bit1的,那从器件又是在何时刻输出bit1的呢。从器件是在SSEL信号有效后,立即输出bit1,尽管此时SCK信号还没有起效。关于上面的主器件和从器件输出bit1位的时刻,可以从图3、4中得到验证。

图3

注意图3中,CS信号有效后(低电平有效,注意CS下降沿后发生的情况),故意用延时程序延时了一段时间,之后再向数据寄存器写入了要发送的数据,来观察主器件输出bit1的情况(MOSI)。

可以看出,bit1(值为1)是在SCK信号有效之前的半个时钟周期的时刻开始输出的(与CS信号无关),到了SCK的第一个时钟周期的上升沿正好被从器件采样。

图4

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

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

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

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

一、技术性能

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

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

二、接口定义

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

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

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

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

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

三、内部结构

四、传输时序

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

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

相关问答

spi 是串口还是并口?

是串口。SPI是串口外设接口的缩写,是一种高速的、全双工、同步的通信协议,是微处理器与外围IC之间常用的一种通讯方式。SPI是主从式的通信协议,可以一主机一...

什么是 SPI接口 ?

SPI--SPI是串行外设接口(SerialPeripheralInterface)SDIO--(SecureDigitalInputandOutput)安全数字输入输出卡定义了一种...

什么是 SPI接口 ?

一般是指同步外设接口串行外设接口(SerialPeripheralInterface)是一种同步外设接口,它可以使单片机与各种外围设备以串行方式进行通信以交换信息。外围设...

压力单位 spi 是什么意思?

SPI(SerialPeripheralInterface--串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASHRAM...

spi 和api的区别是什么?

很高兴为你作答。api与spi的区别:1、API(ApplicationProgrammingInterface)在java中,API是指可以用来完成某项功能的类、接口或者方法。2、SP...

SPI接口 使用几条线?

SPI,就是高速同步串行口。3~4线接口,收发独立、可同步进行SPI,就是高速同步串行口。3~4线接口,收发独立、可同步进行

串口与 SPI 口有什么区别?

SPI与RS232的区别:1、spi:高速同步串行口。是一种标准的四线同步双向串行总线。spi,是英语SerialPeripheralinterface的缩写,顾名思义就是串行外围设备接...

谁能解释一下 spi 协议啊?

SPI总线有4根线,分别是SCK,SDO,SDI,SS,可以挂多个从设备,但是在挂多个从设备时,主设备端还需要做一个n选一的译码器,用于选择将要访问的从设备,因此,主...SPI...

飞思卡尔两个单片机如何进行 SPI 通信?

飞思卡尔S12系列的单片机基本上都有SPI接口,而且一般可以切换复用的,比如XS128就可以用PS4-7或者PM口进行通信,2个单片机进行SPI通信的时候,普通模式下需要4...

spi 与iic有什么区别?

SPI是串行外设接口(SerialPeripheralInterface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为...S...

 千人杂志  背水一战的主要人物 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部