SPI通信基础学习
阅读原文时间:2023年07月10日阅读:2

SPI是“Serial Peripheral Interface”的缩写,即“串行外设接口”,是摩托罗拉公司推出的一种串行接口通信协议。

接线的示意图:

SPI总线的原理可以借鉴I2C,两者不同之处有以下几点:

(1)I2C只有两根信号线,一条数据线SDA,一条时钟线SCL;SPI有四根信号线:MISO、MOSI、SCK和NSS。

  • MOSI:Master Output Slave Input,主设备输出/从设备输入。数据从主机输出到从机,主机发送数据。
  • MISO:Master Iutput Slave Output,主设备输入/从设备输出。数据由从机输出到主机,主机接收数据。
  • SCK:时钟信号线,用于通讯同步。
  • NSS:片选信号线,用于选择通讯的从设备,也可用CS(低电平有效)表示。每个从设备都有一条独立的NSS信号线,主机通过将某个设备的NSS线置低电平来选择与之通讯的从设备。所以SPI通讯以NSS线电平置低为起始信号,以NSS线电平被拉高为停止信号。

(2)I2C通信是半双工的,SPI通信是全双工的。即I2C不能收发数据同时进行,而SPI可以。

(3)I2C依靠地址来选取从设备,且每次收发都有应答信号;SPI依靠片选信号来选取从设备,没有应答信号,随便收发。

工作过程:

以从机的片选线NSS被拉低开始,每个时钟周期进行一次数据触发和采样,最后当NSS被拉高后,通信结束。

上图展示的工作模式是SCK上升沿触发,下降沿采样。SPI实际有四种工作方式,取决于“时钟极性CPOL”和“时钟相位CPHA”的状态,如下。

SPI四种工作模式的主要区别是总线空闲时SCK的状态数据采样时刻

如果CPOL被清0,则SCK在空闲状态保持低电平,反之被置1则保持高电平;如果CPHA位被清0,则在SCK每个时钟周期的第1个边沿(奇数边沿)进行数据位采样,反之被置1则在SCK每个时钟周期的第2个边沿(偶数边沿)采样。

下表展示了SPI四种工作模式的状态:

数据传输时从最高位开始,一位一位传输。


参考文章:

https://zhuanlan.zhihu.com/p/27376153

https://zhuanlan.zhihu.com/p/27462822

https://zhuanlan.zhihu.com/p/33356830

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章