SPI通信协议

本文详细介绍了SPI接口的工作原理,包括其同步全双工通信机制、四种工作模式(CPOL和CPHA设置)、从机的常规配置与菊花链模式,以及SPI的优缺点。重点提到了接口的构成和引脚功能,如SCLK、SDA和CS等。
摘要由CSDN通过智能技术生成

3.1定义

串行外设接口( Serial Peripheral Interface,SPI )是一种同步全双工主从式接口。SPI一般包括四根线,分别为CS(片选),SCLK(时钟线),MOSI(主机输出,从机输入),MISO(主机输入,从机输出)。其中CS片选是用来选择哪一台从机与主机通信,当从机片选引脚为高电平或者为低电平时(一般为低电平,具体看芯片手册),主机就知道了与哪一个从机通信,因为是一台主机,多台从机通信方式,所以称为主从式通信方式,当使用多个从机时,主机需要为每个从机提供单独的片选信号。SCLK为主机发出的时钟信号线,主机发出一种固定频率的方波作为时钟信号,用来确定发出和接受的数据,因为通过时钟线确定数据,所以是一种同步接口。MOSI是主机发出数据线,从机的接受数据线。MISO是主机接受数据线,从机发出数据线。因为有两条数据线,可以同时发出和接受数据,所以是全双工。
image.png

3.2四种模式

SPI有4种工作模式是指采集传输数据线上数据的4种不同的时机。在芯片上有两个寄存器分别为CPOL (Clock POlarity)和 CPHA (Clock PHAse)。CPOL配置SPI总线的极性,CPHA配置总线的相位。SPI总线的极性会影响总线空闲时的时钟信号是低电平还是高电平。CPOL=1时,总线空闲时是高电平,CPOL=0时,总线空闲时是低电平。SPI总线的相位决定从哪个跳变沿采集数据,一个时钟周期会有两个跳变沿。CPHA = 0:表示从第一个跳变沿开始采样。CPHA = 1:表示从第二个跳变沿开始采样。

image.png
PS:移出也就是输出数据。下面完整的时序图中绿色虚线代表数据传输的开始和结束,橙色代表数据的采样边沿,蓝色代表数据的移位边沿。

3.2.1 模式0(CPOL=0; CPHA=0)

CPOL = 0:空闲时是低电平,第1个跳变沿是上升沿,第2个跳变沿是下降沿
CPHA = 0:数据在第1个跳变沿(上升沿)采样

image.png

3.2.2 模式1(CPOL=0; CPHA=1)

CPOL = 0:空闲时是低电平,第1个跳变沿是上升沿,第2个跳变沿是下降沿
CPHA = 0:数据在第2个跳变沿(下降沿)采样

image.png

3.2.3 模式2(CPOL=1; CPHA=0)

CPOL = 0:空闲时是高电平,第1个跳变沿是下降沿,第2个跳变沿是上升沿
CPHA = 0:数据在第1个跳变沿(下降沿)采样

image.png

3.2.3 模式3(CPOL=1; CPHA=1)

CPOL = 0:空闲时是高电平,第1个跳变沿是下降沿,第2个跳变沿是上升沿
CPHA = 0:数据在第2个跳变沿(上升沿)采样

image.png

3.3从机配置

从机配置有常规的配置和菊花链模式配置。

3.3.1常规配置

常规配置需要给每个从机设备分配一个片选引脚用于从机的选择。主机的片选线数量必须大于等于从机的数量,可以使用多路复用器产生片选信号来减少主机的片选线。
image.png

3.3.2菊花链模式

在菊花链模式下,所有从机的片选信号连接在一起,数据从一个从机传播到下一个从机。在此配置中,所有从机同时接收同一SPI时钟。来自主机的数据直接送到第一个从机,该从机将数据提供给下一个从机,依此类推。并不是所有器件支持菊花链模式。
image.png

3.4 SPI优缺点

优点:

  • 全双工串行通信
  • 高速数据传输速率
  • 简单的软件配置
  • 极其灵活的数据传输,不限于8位,它可以是任意大小的字
  • 非常简单的硬件结构。从站不需要唯一地址(与I2C不同)。从机使用主机时钟,不需要精密时钟振荡器/晶振(与UART不同)。不需要收发器(与CAN不同)

缺点:

  • 没有硬件从机应答信号(主机可能在不知情的情况下无处发送)
  • 通常仅支持一个主设备
  • 需要更多的引脚(与I2C不同)
  • 没有定义硬件级别的错误检查协议
  • 与RS-232和CAN总线相比,只能支持非常短的距离

3.5 SPI接口屏幕

SPI接口的屏幕一般有VCC,GND,SCLK,SDA,CS,RST,RS/DC七个引脚。与SPI有关的是SCLK,SDA和CS引脚。

引脚名定义
VCC电源正极
GND
SCLKSPI的时钟线
SDASPI的MOSI引脚,主机发数据,屏幕接受数据
CS片选引脚
RST屏幕复位引脚
RS/DC数据/命令控制引脚
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值