当前位置: 首页 > ai >正文

SPI通信协议

1.串行外设接口概述 SPI

2.基本概念

SPI---串行外设接口----Motorola公司

全双工----采用主从模式(Master—Slave)架构,支持一个或多个Slave设备

3.引脚定义

(1)MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。

(2)MOSI:主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。

(3)SCK:串口时钟,作为主设备的输出,从设备的输入。

(4)NSS:从设备选择。这是一个可选的引脚,用来选择主/从设备。它的功能是用来作为片选引脚,让主设备可以单独地与特定从设备通信,避免数据线上的冲突。

4.通信结构

初始状态

主机读取一个bit过程

当读取7次后,也就是读取7位后

总结:

没有读和写的说法,因为实质上每次SPI主从设备在交换数据。也就是说,你发一个数据必然会收到一个数据;你要收一个数据必须也要先发一个数据。

5.通信速率

对比一下

IIC--速率--100KHz 400KHz

SPI--速率--是由从机决定   0MHz~10MHz的速率(只有少数模块能达到10MHz的速率)

可以看到SPI1外设的通信速率可以高达42Mbps,SPI2和SPI3也可以达到21Mbps,但是一些外围器件的通信速率最高也就是10Mbps左右,极少数可以超过10Mbps(W25Q128芯片)。

6.工作模式

7.时钟极性

控制的是初始电平状态

8.时钟相位

取的边沿状态---(边沿检测器)

9.工作模式选择

工作模式的选择依赖的模块规定(数据手册有规定使用哪一种模式)

模式0

模式1

模式2

模式3

CPOL极性

0

0

1

1

CPHA相位

0

1

0

1

描述

初始低电平,取第一边沿(上升沿)

  • RFID模块

规定模式0

  • 2.4G无线通信模块

规定模式0

  • 串行Flash芯片

W25Q128--规定模式0 或者模式3

10.数据格式

11.SPI编程

方法一:看 how to use

方法二:看 帮助手册

12.数据发送

你发一个数据必然会收到一个数据;你要收一个数据必须也要先发一个数据。

对比所学

引脚

速率

传输方向

时钟

串口

TX/RX

波特率决定

全双工

异步

单总线DHT11

DATA

-

半双工

异步

IIC

SCL/SDA

100KHz/400KHz

半双工

同步

SPI

SCK/MISO/MOSI/CS

10MHZ  <APB2/2

全双工

同步

http://www.xdnf.cn/news/16412.html

相关文章:

  • 分布式渲染效能探析:关键网络性能要素
  • 机器学习基础-matplotlib
  • linux系统----Ansible中的playbook简单应用
  • 计算机视觉---Halcon概览
  • 【算法训练营Day17】二叉树part7
  • 【学习路线】Android开发2025:从入门到高级架构师
  • linux命令grep的实际应用
  • MySQL 与 PostgreSQL 对比
  • Redis四种GetShell方式完整教程
  • 【WRF-Chem第二期】WRF-Chem有关 namelist 详解
  • 1.DRF 环境安装与配置
  • 零基础学习性能测试第九章:全链路追踪-系统中间件节点监控
  • LeetCode 刷题【18. 四数之和】
  • 计算机网络编程-Socket通信以及实战
  • 企业级JWT验证最佳方案:StringUtils.hasText()
  • 使用Ettus USRP X440对雷达和EW系统进行原型验证
  • 分布式IO选型指南:2025年分布式无线远程IO品牌及采集控制方案详解
  • Python动态规划:从基础到高阶优化的全面指南(2)
  • socketpair函数详解
  • Qt小组件 - 8 图片浏览器
  • go‑cdc‑chunkers:用 CDC 实现智能分块 强力去重
  • SpringBoot轻松集成豆包AI
  • 精简 RT-Thread 工程并查找占用空间大的模块
  • 中国汽车能源消耗量(2010-2024年)
  • java里List链式编程
  • 【智慧物联网平台】安装部署教程——仙盟创梦IDE
  • Jenkins流水线部署+webhook2.0
  • 四、计算机组成原理——第7章:输入/输出系统
  • 命令执行漏洞
  • EAP(基于事件的异步编程模式)