????????SPI,SerialPeripheralInterface,串行外围设备接口,是Motorola公司推出的一种同步串行接口技术。SPI总线在物理上是通过连接在微处理控制单元(MCU)上叫作同步串行端口(SynchronousSerialPort)的模块(Module)来实现的,它允许MCU以全双工的同步串行方式,与各种外围设备进行高速数据通信。
一、SPI 接口原理
????????SPI总线是串行外围设备接口,是一种高速的、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线。SPI的通信原理为:以主从方式工作,通常有一个主设备和一个或多个从设备,需要至少4根线。
????????SDO–主设备数据输出,从设备数据输入
????????SDI–主设备数据输入,从设备数据输出
????????SCLK–用来为数据通信提供同步时钟信号,由主设备产生
????????CS–从设备使能信号,由主设备控制
???????????????????????????????????????????????????????????????????????图 SPI 总线结构
????????SPI接口实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。上升沿发送,下降沿接收。(有的器件是上升沿接收,下降沿发送)
????????SPI总线在一次数据传输过程中,接口上只能有一个主机和一个从机能够通信。并且,主机总是向从机发送一个字节数据,而从机也总是向主机发送一个字节数据。在SPI传输中,数据是同步进行发送和接收的。数据传输的时钟基于来自主处理器的时钟脉冲,当SPI接口上有多个SPI接口的单片机时,应区别其主从地位,在某一时刻只能由一个单片机为主器件。从器件只能在主机发命令时,才能接收或向主机传送数据。其数据的传输格式是高位(MSB)在前,低位(LSB)在后。SPI接口的一个缺点:没有应答机制确认是否接收到数据。
二、SPI 接口应用
????????SPI主要应用在EEPROM、Flash、实时时钟(RTC)、数模转换器(ADC)、数字信号处理器(DSP)以及数字信号解码器之间。它在芯片中只占用四根管脚(Pin)用来控制以及传输数据,节约了芯片的pin数目,同时为PCB在布局上节省了空间。正是出于这种简单易用的特性,现在越来越多的芯片上都集成了SPI技术。
????????????????????????????????????????????????图 用 SPI 总线连接的 EEPROM 电路
????????现有的串行NORFlash所采用的接口全部是SPI接口,因此也将串行NORFlash称为SPIFlash。SPIFlash(串行NORFlash)内部存储矩阵的访问和存储结构和并行NORFlash的一致,但是多了一个串行接口(SPI控制器),用于实现对串行数据的解码。
????????????????????????????????????????????????图 SPI Flash(串行 NOR Flash)结构框图
SPI Flash 输入输出引脚说明: