SPI通信协议详解


介绍SPI

SPI由时钟线、主机发送线、主机接收线、从机选择线(一个或多个)组成,拥有高速的速率,使用比较简单,但是需要的线更多,更容易造成资源的浪费。
四根通讯线的命名在不同的地方可能会有差异,需要甄别。
在这里插入图片描述

硬件电路

主机与从机通信线对应,对于多从机发送时,为了避免冲突,当从机的SS高电平(未被选中时)设为高阻态,选中时配置为推挽输出
在这里插入图片描述

移位示意图

SPI的数据收发原理如下:波特率发生器产生一个上升沿,通过时钟线影响,主机与从机的移位寄存器都向左(高位)移位一位,然后把数据保存到对应的数据寄存器中,然后波特率产生下降沿,主机与从机的移位寄存器把数据寄存器的数据取出,依次8次完成一个字节的数据的交换。当想只发送或接收数据,就时另一个移位寄存器发送一个特定的字节当做没有内容即可。
在这里插入图片描述

SPI时序

开始与结束时序单元

数据交换期间ss都为低电平
在这里插入图片描述

交换字节时序单元

可以通过配置CPOL、CPHA来确定这个时序的模式。
MISO的中间高度的线表示高阻态。

模式0(最常用)

这里对比模式1来理解,时钟相位提前,第一个上升沿就要移入数据,所以在时钟线产生上升沿之前就要先移出一位数据,才能在第一个上升沿移入数据,因此在最后一个时钟线下降沿之后要提前把下一个字节的最高位放入,如果是最后一位也要放入一个特定的数据。
在这里插入图片描述

模式1

这个模式与上面移位示意图所讲的时序一致
在这里插入图片描述

模式2

对比与模式0颠倒了时钟线
在这里插入图片描述

模式3

对比与模式1颠倒了时钟线
在这里插入图片描述

发送时序

在这里插入图片描述

指定地址写

由于使用的W25Q64外设内存大,需要指定3个字节的地址
在这里插入图片描述

指定地址读

在这里插入图片描述


相关推荐

  1. SPI协议详解

    2024-03-30 05:54:03       5 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-30 05:54:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-30 05:54:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-30 05:54:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-30 05:54:03       20 阅读

热门阅读

  1. gdb | 实战调试死循环

    2024-03-30 05:54:03       11 阅读
  2. 山峰三元组问题的O(n)解法

    2024-03-30 05:54:03       17 阅读
  3. 汽车电子行业知识:什么是车联网V2X技术

    2024-03-30 05:54:03       19 阅读
  4. elementUI 输入框按回车刷新页面问题

    2024-03-30 05:54:03       18 阅读
  5. 视频主题分类

    2024-03-30 05:54:03       19 阅读
  6. 机器学习概念、分类、步骤、和实现

    2024-03-30 05:54:03       15 阅读
  7. opencv-python库 cv2.imread() 读取图片

    2024-03-30 05:54:03       17 阅读
  8. windows安装elasticsearch相关产品

    2024-03-30 05:54:03       17 阅读