SPI(一) -- 协议介绍

SPI硬件知识

硬件连线

SPI设备的硬件连线参考图(图源自韦东山SPI课程 02_SPI协议介绍)
上图由三块硬件组成,左边是MCU主控制器,右边是SPI flash设备以及SPI OLED设备。右图是哪些设备和多少设备不重要,主要是为了介绍SPI协议中,设备的物理连接方式和通讯方式。

四根物理线:

  • SCK:Serial Clock,时钟信号,由主机产生发送给从机。
  • MOSI:Master Output Slave Input,主机输出信号线,从机接收数据。
  • MISO:Master Input Slave Output,主机输入信号线,从机输出数据。
  • CS:Chip Select,片选信号,由主机发送,控制与哪一个从机进行数据通讯,一般是低电平有效。

其中三根SCK,MOSI,MISO是公用的线,CS负责主机控制与哪一个从机进行通讯。

时钟信号

相比较UART的通讯方式,SPI是一个同步的数据总线。途中可以看到它有一根SCK的时钟信号和各个硬件模块相连,为了保证发送端和接收端的同步,告诉这根线上的设备,“我要开始同步(发送或接收)数据了”。一般产生时钟信号的称作主机,基本由主控制器产生,多个从机负责接收时钟信号。
SPI数据的传输速率由波特率寄存器来控制,最大传输速率由主控制器总线上的时钟频率来决定。

极性与相位

SPI的数据采集时机为边沿触发,即上升沿或者下降沿。这里由时钟极性(CPOL)和时钟相位(CPHA)两个变量来控制。

CPOL:表示SCK的初始电平,0为低电平,1为高电平。
CPHA:表示相位,即第一个还是第二个时钟沿采样数据,0为第一个时钟沿,1为第二个时钟沿。

CPOLCPHA模式含义
000SCLK初始电平为低电平,在第一个时钟沿采样数据
011SCLK初始电平为低电平,在第二个时钟沿采样数据
102SCLK初始电平为高电平,在第一个时钟沿采样数据
113SCLK初始电平为高电平,在第二个时钟沿采样数据

上升沿时刻采集数据,模式0,CPOL=1,CPHA=1
以上图为例,数据采集信号的时刻是时钟第二个边沿(上升沿),即CPHA为1,同时因为SCLK的初始电平为高电平,所以CPOL为1.

数据传输

假设现在主控芯片需要传输一个0x56的数据给SPI flash,时序如下图所示:
写入0x56数据的时序图
0x56的二进制也就是 0101 0110,最高位MSB为0,LSB为0,数据传输的方向是从MSB最高位到最低位LSB一位一位的移动进入SPI 的data register。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值