串行通讯 -- SPI通讯原理

       前言

       SPI是最常见的串行通讯之一,其通信速率比较高,适合需要传输大量数据的应用。常见的有SPI FLASH,无线模块等。

         一、SPI通讯规则

  • 采用4条通讯线:时钟线SCLK,数据线MOSI,MISO,片选SS。图中SS[2:0]表示3条线。MOSI是主机输出,从机输入数据线。MISO是主机输入,从机输出数据线。
  • 主从方式通讯,一个主机(一般是单片机),可以多个从机(器件)。
  • 主机发送一个数据的同时,同时会读一个数据。

二、通讯规则

1、极性CPOL和相位CPHA:

       极性CPOL确定SCLK时钟空闲时的电平,CPOL=0,空闲时低电平,CPOL=1,空闲时高电平。

       相位CPHA确定数据采样的时钟沿,CPHA=0,第一个时钟沿采样数据。CPHA=1,第二个时钟沿采样数据。

1.1、CPOL=0,CPHA=0

       极性CPOL=0,所以SCLK空闲时低电平,CPHA=0,第一个时钟沿采样数据,所以SCLK上升沿采样数据,对MOSI数据线,在第一个SCLK上升沿前需要准备好数据,图中数据线的上下箭头表示切换高低电平。MISO也是在上升沿读数据,发送一个数据同时读入一个数据。SS是片选,低电平有效。

1.2、CPOL=0,CPHA=1

       极性CPOL=0,所以SCLK空闲时低电平,CPHA=1,第二个时钟沿采样数据,所以SCLK下降沿采样数据。 

1.3、CPOL=1,CPHA=0

       极性CPOL=1,所以SCLK空闲时高电平,CPHA=0,第一个时钟沿采样数据,所以SCLK下降沿采样数据。

1.4、CPOL=1,CPHA=1

       极性CPOL=1,所以SCLK空闲时高电平,CPHA=1,第二个时钟沿采样数据,所以SCLK上升沿采样数据。

总结:SPI通信主要是极性和相位的理解,主机和从机必须配置相同的极性和相位。

猜你喜欢

转载自blog.csdn.net/ccwaff/article/details/127754159