SPI接口协议详解

一、SPI总线简介

SPI总线是摩托罗拉公司开发的一种高速、全双工、同步的通信总线,它通常由四条线组成:

  • CS 片选信号
  • SCLK 时钟信号
  • MOSI 主机输出从机输入接口
  • MISO 主机输入从机输出接口

SPI分为主机和从机,主机提供通信所需的时钟信号。

二、SPI四种工作模式

SPI最重要的两个参数分别是时钟的极性(CPOL)和相位(CPHA)。

  • CPOL:Clock Polarity 决定时钟空闲状态电平是高电平还是低电平
    CPOL = 0:时钟空闲时为低电平,时钟高电平时有效
    CPOL = 1:时钟空闲时为高电平,时钟低电平时有效
  • CPHA:Clock Phase 决定数据传输采样和移位方式
    CPHA = 0 :在时钟信号SCK的第一个跳变沿采样
    CPHA = 1 :在时钟信号SCK的第二个跳变沿采样

时钟和相位的不同组合,形成了SPI的四种工作模式:

模式 CPOL CPHA
Mode 0 0 0
Mode 1 0 1
Mode 2 1 0
Mode 2 1 1

我们以stm32的spi总线为例:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9OwUvZlb-1684380768088)(https://note.youdao.com/yws/res/c/WEBRESOURCE6fa0a4da0531edd907132ba7f118eecc)]

Mode 0:CPOL为0,CPHA为0时,数据在时钟第一个跳变沿(上升沿)采样;
Mode 1:CPOL为0,CPHA为1时,数据在第一个跳变沿(下降沿)采样;
Mode 1:CPOL为1,CPHA为0时,数据在第一个跳变沿(下降沿)采样;
Mode 1:CPOL为1,CPHA为1时,数据在第一个跳变沿(上升沿沿)采样;

模式 相位极性 采样 SCL空闲电平
Mode 0 CPOL = 0, CPHA = 0 上升沿 低电平
Mode 1 CPOL = 0, CPHA = 1 下降沿 低电平
Mode 2 CPOL = 1, CPHA = 0 下降沿 高电平
Mode 2 CPOL = 1, CPHA = 1 上升沿 高电平

SPI slave设备SCL在空闲的时候是高电平还是低电平,决定了CPOL是0还是1。

三、SPI全双工和半双工

在使用stm32等mcu时,SPI通常会有全双工、半双工的选项。所谓全双工就是SPI在发送数据的同时也能够接收数据,所谓半双工就是SPI的发送和接收分时,即发送的时候不能接收数据,接收数据的时候不能发送数据。

四、应用电路

一对一:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RNS6qVX4-1684380768089)(https://note.youdao.com/yws/res/3/WEBRESOURCEbcfee40b7104f052142da5dfae066243)]

一对多:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K9y2IF3R-1684380768089)(https://note.youdao.com/yws/res/2/WEBRESOURCEb86351644c9f57c7454e667e86b48802)]

猜你喜欢

转载自blog.csdn.net/weixin_39270987/article/details/130743621
今日推荐