SPI通信总线原理及工作过程

SPI, serial peripheral interface, 串行外围设备接口。高速的,全双工的,同步通信总线。有四个引脚:SDI(数据输入)SDO(数据输出)SCLK(时钟)CS(片选)

 

应用:

常作为单片机外设芯片串行扩展接口,主要应用于EEPROM,FLASH,实时时钟,AD转换器,数字信号处理器和数字信号解码器之间。

 

通信原理:

以主从方式工作

MOSI(SDO):主器件数据输出,从器件数据输入。
MISO(SDI)
:主器件数据输入,从器件数据输出。

 SCLK :时钟信号,由主器件产生。

SPI串行传输,数据一位一位从MSBLSB开始传输,产生相应的脉冲沿时,MOSI,MISO才进行数据传输。
CS
:从器件使能信号,由主器件控制。

      CS控制芯片是否被选中,只有片选信号为实现约定的使能信号时(高电位或地电位),对此芯片的操作才有效,这也就允许同一总线上连接多个SPI设备。

 

工作过程:

SPI可以用全双工通信方式同时发送和接收8(16)位数据,过程如下:

主机启动发送过程,送出时钟脉冲信号——>主移位寄存器的数据通过SDO移入到从移位寄存器,同时从移位寄存器中的数据通过SDI移人到主移位寄存器中——>8(16)个时钟脉冲过后,时钟停顿,主移位寄存器中的8(16)位数据全部移人到从移位寄存器中,随即又被自动装入从接收缓冲器中,从机接收缓冲器满标志位(BF)和中断标志位(SSPIF)“1”。同理,从移位寄存器中的8位数据全部移入到主寄存器中,随即又被自动装入到主接收缓冲器中.主接收缓冲器满标志位(BF)和中断标志位(SSPIF)“1——>CPU检测到主接收缓冲器的满标志位或者中断标志位置1后,就可以读取接收缓冲器中的数据。同样,从CPU检测到从接收缓冲器满标志位或中断标志位置1后,就可以读取接收缓冲器中的数据,这样就完成了一次相互通信过程。

 

SPI总线接口及时序

SPI输出串行同步时钟极性和相位可以根据外设工作要求进行配置。

CPOL = 0,串行同步时钟的空闲状态为低电平;

CPOL = 1,串行同步时钟的空闲状态为高电平;

时序如下

SPI通信总线原理及工作过程_第1张图片

CPHA = 0,在串行同步时钟的第一个跳变沿(上升或下降)数据将被采样;

CPHA = 1,在串行同步时钟的第二个跳变沿(上升或下降)数据将被采样;

时序如下:

 SPI通信总线原理及工作过程_第2张图片

SPI主模块与与之通信的外设空闲状态的极性和时钟相位应该一致。

 

你可能感兴趣的:(单片机,单片机项目)