赞
踩
SPI 协议是摩托罗拉公司开发的协议,SPI 的英文全称为 serial Perripheral Interface,翻译过来 就是“串行外围设备接口”,属于一种高速全双工的通信,广泛的用于 MCU 与 ADC、flash 等外 部设备(外围设备)的通信。
实际上,SPI的协议分了很多种,包括:Standard SPI(标准SPI)
、Dual SPI(双线 SPI)
和Quad SPI(四线 SPI)
等
只不过我们平时最常用的是Standard SPI标准SPI
关于Standard SPI的介绍,可以查看
《SPI原理超详细讲解—值得一看》
这篇博文,具体的就不再阐述了
通常我们说的SPI就是Standard SPI,有4根信号线,分别为CLK、CS、MOSI和MISO。数据线工作在全双工
通过对SPI的基本了解,我们知道SPI是全双工的,即同一时刻下可以发送数据,也可以接收数据,但是对于一些SPI设备而言,其并不需要全双工,反而需要更快的速度,比方说Flash存储芯片,大部分情况下都是单独存储数据,然后读取数据,所以速度就成了一个很重要的指标,
为此推出了Dual SPI(双线 SPI)
,就是 MOSI、MISO 同时朝一个方向发送数据,单次可以同时传输两 bit这样一个时钟周期内就能传输2个bit数据,加倍了数据传输的速度,
而Quad SPI(四线 SPI)
,时为四线半双工,增加了两个数据引脚线IO2、IO3,此时IO0、IO1、IO2、IO3 引脚被用于向同一个方向传输数据,单次 可传输 4bit
用我们常用的W25Qxxx flash芯片来做一个举例
芯片的引脚说明图:
每个引脚的详细描述如下:
Chip Select(/CS): 片选信号Chip Select(/CS)的作用是使能或者不使能设备的操作,当CS为高时,表示设备未被选中,串行数据输出线(DO或IO0,IO1,IO2,IO3)均处于高阻态,当CS为低时,表示设备被选中,主机可以给Flash发送数据或从Flash接收数据。
DO(MISO) Data Out:Standard SPI(标准SPI)
下,从机发送数据到主机,
在Dual SPI(双线 SPI)
中作为IO1输出
Write Project(/WP):WP信号低电平有效,低电平时SPI不接收数据,高电平时SPI可以接收数据。在Quad SPI(四线 SPI)
中作为IO2输出
GND: SPI的接地引脚
DI(MOSI) Data In: Standard SPI(标准SPI)
下,从机接收主机发送过来的数据,
在Dual SPI(双线 SPI)
中作为IO0输出
CLK: 同步时钟信号线,用于传输同步时钟信号
HOLD(/HOLD) RESET : HOLD信号的作用是暂停Flash的操作。当HOLD信号为低,并且CS也为低时,串行输出信号DO将处于高阻态,串行输入信号DI与串行时钟信号SCLK将被Flash忽略。当HOLD拉高以后,QSPI Flash的读写操作能继续进行。
VCC: FLASH的电源
注意下面的两个Notes:
总结下就是:
当然,在FLASH的手册中,还提到了一个QPI
QPI 与 QUAD SPI 基本差不多,但是在使用数据线传输指令和数据时,各自的用法略有差异
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。