SPI(Serial Peripheral Interface,串行外设接口)是Motorola公司提出的一种同步串行数据传输规范,在许多器材中被广泛应用。
1. 接口
SPI接口常常被称为4线串行总线,以主/从方法作业,数据传输进程由主机初始化。如图1所示,其运用的4条信号线别离为:
1) SCLK:串行时钟,用来同步数据传输,由主机输出;
2) MOSI:主机输出从机输入数据线;
3) MISO:主机输入从机输出数据线;
4) SS:片选线,低电平有用,由主机输出。
在SPI总线上,某一时间能够呈现多个从机,但只能存在一个主机,主机经过片选线来确定要通讯的从机。这就要求从机的MISO口具有三态特性,使得该口线在器材未被选通时表现为高阻抗。
在一个SPI时钟周期内,会完结如下操作:
1) 主机经过MOSI线发送1位数据,从机经过该线读取这1位数据;
2) 从机经过MISO线发送1位数据,主机经过该线读取这1位数据。
这是经过移位寄存器来完结的。如图2所示,主机和从机各有一个移位寄存器,且二者连接成环。跟着时钟脉冲,数据依照从高位到低位的方法顺次移出主机寄存器和从机寄存器,而且顺次移入从机寄存器和主机寄存器。当寄存器中的内容悉数移出时,相当于完结了两个寄存器内容的交流。
主机和从机的发送数据是一起完结的,两者的接纳数据也是一起完结的。所以为了确保主从机正确通讯,应使得它们的SPI具有相同的时钟极性和时钟相位。
举例来说,别离选取MSP430控制器和OLED驱动SH1101A为主从机,图3和图4为它们的SPI时序。由图4可知,SH1101A的SPI时钟空闲时为高电平,而且在后时钟沿接纳数据,则MSP430控制器SPI的设置应与此保持一致。从图3中能够看出,要使得时钟在空闲时为高电平,应将UCCKPL置1;要使得在后时钟沿接纳数据,应将UCCKPH清零。
SPI接口具有如下长处:
1) 支撑全双工操作;
2) 操作简略;
3) 数据传输速率较高。
一起,它也具有如下缺陷:
1) 需求占用主机较多的口线(每个从机都需求一根片选线);
2) 只支撑单个主机。