SPI硬件电路设计,SPI协议

SPI硬件电路设计

1  SPI简介

2  SPI的特点和基本概念

2.1 SPI的特点

2.2 SPI的基本概念

3  SPI协议(摩托罗拉)

3.1 SPI控制器内部寄存器

3.2 时钟极性(CPOL)和时钟相位(CPHA)

3.3 SPI时序图

4  SPI原理图设计

4.1 W25Q256JV--SPI通信FLASH,华邦

4.2 SC18IS602B,IIC转SPI芯片--NXP

5  SPI资料及芯片选型推荐

SPI硬件电路设计

1  SPI简介

SPI是串行外设接口(Serial Peripheral Interface)的缩写,是美国摩托罗拉公司(Motorola)最先推出的一种同步串行传输规范,也是一种单片机外设芯片串行扩展接口,是一种高速、全双工、同步通信总线,所以可以在同一时间发送和接收数据。SPI没有定义速度限制,通常能达到10-100M/bps。

SPI有主、从两种模式,通常由一个主模块和一个或多个从模块组成(SPI不支持多主机),主模块选择一个从模块进行同步通信,从而完成数据的交换。提供时钟的为主设备(Master),接收时钟的设备为从设备(Slave),SPI接口的数据传输(对FLASH来说是读写操作)都是由主设备发起,当存在多个从设备时,通过各自的片选信号进行管理。

标准SPI通信接口包含以下四根线:

MISO(Master Input Slave Output):主设备数据输入,从设备数据输出;

MOSI(Master Output Slave Input):主设备数据输出,从设备数据输入;

SCLK(Serial Clock):时钟信号,由主设备产生;

CS/SS/NSS(Chip Select/Slave Select):从设备使能信号,由主设备控制,一主多从时,CS/SS是从芯片是否被主芯片选中的控制信号,只有片选信号为预先规定的使能信号时(高电平或低电平,查找从设备Datasheet),主芯片对此从芯片的操作才有效。

2  SPI的特点和基本概念

2.1 SPI的特点

(1)主模式和从模式

(2)高速、全双工、同步通信

(3)双向模式,3线SPI,Dual SPI,Qual SPI(QSPI)

(4)多从机时,从选择输出

(5)模式错误标志,多主时报错,CPU中断功能

(6)双向数据缓冲寄存器,移位寄存器

(7)可编程的时钟极性(CPOL/CKP)和时钟相位(CPHA/CKE)

(8)在等待模式下对SPI的控制,等待模式是一种可配置的低功率模式

2.2 SPI的基本概念

2.2.1 SPI总线术语

SS/CS:Slave Select

SCK:Serial Clock

MOSI:Master Output, Slave Input

MISO:Master Input, Slave Output

MOMI:Master Output, Master Input

SISO:Slave Input, Slave Output

2.2.2 SPI控制器内部结构框图

SPI的主要部分是状态、控制数据寄存器移位器逻辑波特率发生器主/从控制逻辑和端口控制逻辑。此结构为摩托罗拉协议的结构,每个主控制器内部SPI结构可能略有差异。

2.2.3 SPI总线的运行状态

SPI有三种模式,即运行、等待和停止。

运行模式:这是最基本的操作方式。

等待模式:等待模式下的SPI操作是一种可配置的低功率模式,由位于SPICR2寄存器中的SPISWAI位控制。在等待模式下,如果SPISWAI位被清除,SPI进入运行模式。如果设置了SPISWAI位,则SPI将进入功率保守状态,而SPI时钟生成将被关闭。如果SPI配置为主服务器,任何正在进行的传输都将停止,但在CPU进入运行模式后恢复。如果SPI配置为从服务器,则字节的接收和传输继续,以便从服务器与主服务器保持同步。

停止模式:SPI在停止模式下处于非活动状态,以降低功耗。如果SPI配置为主服务器,任何正在进行的传输都将停止,但在CPU进入运行模式后恢复。如果SPI配置为从服务器,则字节的接收和传输继续,以便从服务器与主服务器保持同步。

更为详细的描述见协议文档,只需大概了解即可。

2.2.4 标准SPI和3线SPI,Dual SPI和Qual SPI(6线)的区别

(1)标准SPI:标准SPI通常就称SPI,有4根引脚信号:clk , cs, mosi, miso。

(2)3线SPI:在SPI控制寄存器2中设置SPC0位时,选择双向模式。在此模式下,SPI只使用一个串行数据脚。MSTR位决定使用哪个引脚MOSI引脚成为主模式的串行数据I/O(MOMI)引脚而MISO引脚成为从属模式的串行数据I/O(SISO)引脚。SPI不使用主模式下的MISO引脚和从属模式下的MOSI引脚。因此三线SPI包含3跟信号线,CLK,CS,MOMI(SOSI)。摩托罗拉的3线SPI是有CS的,数据线变成双向。

TI的3线SPI是没有CS信号,使用CLK、MOSI、MISO,不能多从操作。并且说明了不支持2线单向操作,即只使用CLK和MOSI或MISO。

 

(3)Dual SPI(Dual serial peripheral interface)双线串行外设接口

Dual SPI一般是对SPI Flash而言,不是所有SPI外设都支持该模式。对于SPI Flash,全双工并不常用,因此扩展了mosi和miso的用法,让它们工作在半双工,用以加倍数据传输。也就是对于Dual SPI Flash,可以发送一个命令字节进入dual mode,这样mosi变成SIO0(serial io 0),miso变成SIO1(serial io 1),这样一个时钟周期内就能传输2个bit数据,加倍了数据传输。只能半双工工作。

(4)Qual SPI(Quad serial peripheral interface)4跟数据线

与Dual SPI类似,也是对SPI Flash而言,Qual SPI Flash增加了两根I/O线(SIO2(WP),SIO3(HOLD)),目的是一个时钟内传输4个bit。

所以对于SPI Flash,有标准spi flash,dual spi , qual spi 三种工作模式。可以用3-wire, 4-wire, 6-wire工作,在相同clock下,线数越多,传输速率越高。

注:更多内容欢迎关注B站:硬件工程师老刘,视频讲解相关电路知识,协议学习。

猜你喜欢

转载自blog.csdn.net/weixin_49336610/article/details/130834565
SPI