SPI 概述
目录
1.概述
2.SPI优缺点
3.SPI接口硬件原理
4.SPI电路结构
5.1 模式0(CPOL=0 CPHA=0)
5.2 模式1(CPOL=0 CPHA=1)
5.3 模式2(CPOL=1 CPHA=0)
5.4 模式3(CPOL=1 CPHA=1)
1.概述
SPI: Serial Peripheral interface, 串行外围设备接口。它是由Motorola公司开发的,用来在微控制器和外围设备芯片之间实现数据交换的低成本、易使用的接口。SPI总线为同步串行数据传输总线,用于单片机的外围扩展。其通用外围扩展器件由SRAM、EEPROM、FLASH、ADC、DAC、RTC、I/O口。外围设备模块有LCD驱动控制器构成的LCD显示器,各种LCD驱动控制器构成的段式、图形点阵、字符点阵液晶显示器,通用接口如键盘、码盘、打印机接口等。
SPI的通信原理很简单,它以主从方式工作,通常有一个主设备和一个或多个从设备,需要至少4根线(针对于标准的SPI总线)。
与标准的UART串行接口不同,SPI接口是高速、全双工、同步、串行通信总线。
同步
利用时钟线对数据位进行同步,时钟的上升沿或下降沿锁存数据。
四线制全双工SPI,同时收发
MISO:主机输入/从机输出
MOSI:主机输出/从机输入
SCLK:串行时钟
CS或SS:外设片选或从机选择
三线制半双工SPI,分时收发
SCLK:串行时钟
CS或SS:外设片选或从机选择
DIO:数据线,输入与输出共用
2.SPI优缺点
1)全双工(输入/输出独立)
2)物理结构(移位寄存器)简单、操作简单;
3)数据传输速率较高
缺点:
1)需要占用主机较多的口线(每个从机都需要一根片选线)
2)只支持单个主机
3)没有指定的流控制,没有应答机制确认是否接收到数据
3.SPI接口硬件原理
SPI接口实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。—-由从器件决定,大多数都是高位在前,低位在后。
上升沿发送,下降沿接收。(有的器件是上升沿接收,下降沿发送)—-由从器件决定
4.SPI电路结构
单主单从连接模式
在这种模式下,可以直接将片选信号接地,这样就省了一根线。
单主多从连接模式
如果一个SPI从机没有被选中,它的数据输出端SDO将处于高阻状态,从而与当前处于激活状态的隔离开。
SPI总线添加从器件:每个从器件需要一个单独的 从选择信号。总信号数最终位n+3个,其中n是总线上从器件的数量。在SPI总线上添加新的从器件也不方便。对于额外添加的每个从器件,都需要一条新的从器件选择线。
5.SPI的四种通讯模式
SPI有4种不同的传输时序,取决于时钟极性CPOL和时钟相位CPHA的组合。
CPOL:Clock Polarity,即时钟极性。—–SCK空闲状态电平的状态
空闲状态为高电平,则CPOL=1;
空闲状态为低电平,则CPOL=0;
CPHA:Clock Phase,即时钟相位。——针对于数据输出和数据采集在第一个时钟沿还是第二个时钟沿
CPHA=1表示数据的输出是在一个时钟周期的第一个沿,数据的采集是在一个时钟周期的第二个沿。(数据的输出表示主机往总线上写,数据的采集就是从总线上读数据)
CPHA=0表示数据的采样是在一个时钟周期的第一个沿,数据的输出是在一个时钟周期的第二个沿。
5.1 模式0(CPOL=0 CPHA=0)
CPOL = 0:时钟线空闲时是低电平,第1个跳变沿是上升沿,第2个跳变沿是下降沿
CPHA = 0:数据在第1个跳变沿(上升沿)采样
时序图如下:
5.2 模式1(CPOL=0 CPHA=1)
CPOL = 0:空闲时是低电平,第1个跳变沿是上升沿,第2个跳变沿是下降沿
CPHA = 1:数据在第2个跳变沿(下降沿)采样
时序图如下:
5.3 模式2(CPOL=1 CPHA=0)
CPOL = 1:空闲时是高电平,第1个跳变沿是下降沿,第2个跳变沿是上升沿
CPHA = 0:数据在第1个跳变沿(下降沿)采样
时序图如下:
5.4 模式3(CPOL=1 CPHA=1)
CPOL = 1:空闲时是高电平,第1个跳变沿是下降沿,第2个跳变沿是上升沿
CPHA = 1:数据在第2个跳变沿(上升沿)采样
时序图如下: