SPI,是英语Serial Peripheral interface的缩写,望文生义便是串行外围设备接口。是Motorola首要在其MC68HCXX系列处理器上界说的。SPI接口首要运用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通讯总线,而且在芯片的管脚上只占用四根线,节约了芯片的管脚,一起为PCB的布局上节约空间,供给方便,正是出于这种简略易用的特性,现在越来越多的芯片集成了这种通讯协议。
SCSPI的通讯原理很简略,它以主从方法作业,这种形式一般有一个主设备和一个或多个从设备,需求至少4根线,事实上3根也可以(用于单向传输时,也便是半双工方法)。也是一切依据SPI的设备共有的,它们是SDI(数据输入MOSI)、SDO(数据输出MISO)、SCLK(时钟)、CS(片选)。
(1)MOSI– SPI总线主机输出/从机输入(SPI Bus Master Output/Slave Input);
(2)MISO– SPI总线主机输入/从机输出(SPI Bus Master Input/Slave Output);
(3)SCLK –时钟信号,由主设备发生;
(4)CS –从设备使能信号,由主设备操控(Chip select),有的IC此pin脚叫SS。
其间CS是操控芯片是否被选中的,也便是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有用。这就答应在同一总线上衔接多个SPI设备成为可能。
接下来就担任通讯的3根线了。通讯是经过数据交流完结的,这儿先要知道SPI是串行通讯协议,也便是说数据是一位一位的传输的。这便是SCLK时钟线存在的原因,由SCK供给时钟脉冲,SDI,SDO则依据此脉冲完结数据传输。数据输出经过SDO线,数据在时钟上升沿或下降沿时改动,在紧接着的下降沿或上升沿被读取。完结一位数据传输,输入也运用相同原理。这样,在至少8次时钟信号的改动(上沿和下沿为一次),就可以完结8位数据的传输。
在点对点的通讯中,SPI接口不需求进行寻址操作,且为全双工通讯,显得简略高效。在多个从设备的体系中,每个从设备需求独立的使能信号,硬件上比I2C体系要略微杂乱一些。
运用举例:设主机和从机初始化安排妥当,而且主机的sbuff=0xaa,从机的sbuff=0x55,下面将分步对spi的8个时钟周期的数据状况演示一遍:假定上升沿发送数据
脉冲主机sbuff从机sbuff sdi sdo
0 10101010 01010101 0 0
1上0101010x 1010101x 0 1
1下01010100 10101011 0 1
2上1010100x 0101011x 1 0
2下10101001 01010110 1 0
3上0101001x 1010110x 0 1
3下01010010 10101101 0 1
4上1010010x 0101101x 1 0
4下10100101 01011010 1 0
5上0100101x 1011010x 0 1
5下01001010 10110101 0 1
6上1001010x 0110101x 1 0
6下10010101 01101010 1 0
7上0010101x 1101010x 0 1
7下00101010 11010101 0 1
8上0101010x 1010101x 1 0
8下01010101 10101010 1 0
这样就完结了两个寄存器8位的交流,上面的上表明上升沿、下表明下降沿,sdi、sdo相对于主机而言的。其间ss引脚作为主机的时分,从机可以把它拉底被迫选为从机,作为从机的是时分,可以作为片选脚用。依据以上剖析,一个完好的传送周期是16位,即两个字节,由于,首要主机要发送指令曩昔,然后从机依据主机的指令预备数据,主机鄙人一个8位时钟周期才把数据读回来。SPI总线是Motorola公司推出的三线同步接口,同步串行3线方法进行通讯:一条时钟线SCK,一条数据输入线MISO,一条数据输出线MOSI;用于CPU与各种外围器材进行全双工、同步串行通讯。SPI首要特点有:可以一起发出和接纳串行数据;可以当作主机或从机作业;供给频率可编程时钟;发送完毕中止标志;写抵触维护;总线竞赛维护等。下图示出SPI总线作业的四种方法,其间运用的最为广泛的是SPI0和SPI3方法
SPI总线四种作业方法SPI模块为了和外设进行数据交流,依据外设作业要求,其输出串行同步时钟极性和相位可以进行装备,时钟极性(CPOL)对传输协议没有严重的影响。假如CPOL=0,串行同步时钟的闲暇状况为低电平;假如CPOL=1,串行同步时钟的闲暇状况为高电平。时钟相位(CPHA)可以装备用于挑选两种不同的传输协议之一进行数据传输。假如CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;假如CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI