stm32 之SPI通信协议

本文为大家介绍 SPI 通信协议的基础知识。

文章目录

  • 前言
  • 一、SPI协议的概念
  • 二、SPI总线架构
  • 三、SPI通讯时序
      • 1. 起始,停止 信号
      • 2.CPOL(时钟极性)/CPHA(时钟相位)
  • 四, I2C 总线 和SPI 总线比较
      • 相同点:
      • 不同点:
  • 总结

前言


一、SPI协议的概念

​ SPI(Serial Peripheral Interface)协议是由摩托罗拉公司提出的通讯协议,即串行外围设备接口,是一种 高速全双工的通信总线。采用主从模式架构,支持多从机模式应用。SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行 方式进行通信以交换信息。

SPI总线可直接与各个厂家生产的多种标准外围器件相连,包括FLASH、 RAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。

二、SPI总线架构

​ SPI 协议通常使用四根信号线进行通信,分别是SCK,MOSI,MISO,CS。但是,在特定情况下只使用三根信号线,这被称为“三线SPI”或“3线SPI”。在这种配置下,SS信号线被省略,通常是因为只有一个从设备需要与主设备通信

SPI信号线 :

  • SCK(Serial Clock):时钟信号线,由主设备产生,用于同步数据传输。

  • MOSI(Master Output Slave Input):主设备输出,从设备输入的数据线。

  • MISO(Master Input Slave Output):主设备输入,从设备输出的数据线。

  • CS(Slave Select):从设备选择信号线,常称为片选信号线,也称为 NSS、 CS,以下用 NSS 表示。当有多个 SPI 从设 备与 SPI 主机相连时,设备的其它信号线 SCK、MOSI 及 MISO 同时并联到相同的 SPI 总线上,而每个从设备都有独立的这一条 CS 信号线, 本信号线独占主机的一个引脚,即有多少个从设备,就有多少条片选信号线
    在这里插入图片描述

三线 SPI ,单主机单从机:
在这里插入图片描述

三、SPI通讯时序

1. 起始,停止 信号

起始信号:
在图中的标号 1 处,NSS 信号线由高变低,是 SPI 通讯的起始信号。 NSS 是每个从机各自独占的信 号线,当从机检在自己的 NSS 线检测到起始信号后,就知道自己被主机选中了,开始准备与主机通讯。

停止信号:
在图中的标号 6 处,NSS 信号由低变高,是 SPI 通讯的停止信号。表示本次通讯结束,从机的选中状态被取。
在这里插入图片描述

2.CPOL(时钟极性)/CPHA(时钟相位)

​ SPI 一共有四种通讯模式,它们的主要区 别是:总线空闲时 SCK 的时钟状态以及数据采样时刻。为方便说明,在此引入“时钟极性CPOL”和 “时钟相位 CPHA”的概念。

  • 时钟极性 CPOL :是指 SPI 通讯设备处于空闲状态时, SCK 信号线的电平信号(即 SPI 通讯开始 前、 NSS 线为高电平时 SCK 的状态)。 CPOL=0 时, SCK 在空闲状态时为低电平,CPOL=1 时,则相反。

  • 时钟相位 CPHA :是指数据的采样的时刻,当 CPHA=0 时, MOSI 或 MISO 数据线上的信号将 会在 SCK 时钟线的“奇数边沿” 被采样。当 CPHA=1 时,数据线在 SCK 的“偶数边沿” 采样

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四, I2C 总线 和SPI 总线比较

相同点:

  • 串行通信:
    I2C 和 SPI 都是串行通信协议,允许在数字设备之间以串行方式传输数据。

  • 同步通信:
    I2C 和 SPI 都是同步通信协议,需要时钟信号来同步数据传输。

  • 主从结构:
    两种协议都支持主从结构,主设备控制通信并提供时钟信号,而从设备响应并提供数据。

  • 多设备支持:
    .两种总线都支持连接多个设备,尽管 SPI 通常更适合连接较少数量的设备。

不同点:

  • 线数:
    I2C 使用两根线(数据线 SDA 和时钟线 SCL),而 SPI 通常使用四根线(MOSI、MISO、时钟和片选)。

  • 速度:
    通常情况下,SPI 比 I2C 更快,因为 SPI 通常可以使用更高的时钟频率。

  • 传输方式:
    .I2C 使用两根线共享数据和时钟信号,而 SPI 使用分开的数据和时钟线,使得 SPI 可以实现全双工通信。

  • 片选机制:
    在 SPI 中,片选信号由主设备控制,并用于选择与之通信的从设备。而在 I2C 中,地址机制用于选择从设备。

  • 硬件复杂性:
    由于 SPI 使用更多的线路和片选机制,它通常比 I2C 在硬件上更复杂,需要更多的引脚和硬件支持。

  • 应用场景:
    由于 SPI 速度更快、更适合高速数据传输,因此通常用于连接高速外围设备,如存储器、传感器等。而 I2C 通常用于连接低速外围设备,如温度传感器、EEPROM 等。


总结

下一篇文章为大家介绍 串口 UART 通信协议

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/615287.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gym界面修改

资料:https://blog.csdn.net/weixin_46178278/article/details/135962782 在gym环境中使用mujoco的时候,有一个很难受的地方,界面上没有实时显示动作空间和状态空间状态的地方。 gym自己原始带的环境是用pygame画的图,所以在定义…

【PG-1】PostgreSQL体系结构概述

1. PostgreSQL体系结构概述 代码结构 其中,backend是后端核心代码,包括右边的几个dir: access:处理数据访问方法和索引的代码。 bootstrap:数据库初始化相关的代码。 catalog:系统目录(如表和索引的元数据…

Errors were encountered while processing: /var/cuda-repo-ubuntu2004-12-0-local

问题描述 mac10-SYS-7048GR-TR:~$ sudo apt-get -y install cuda Reading package lists... Done Building dependency tree Reading state information... Done cuda is already the newest version (12.0.0-1). You might want to run apt --fix-broken install to co…

区块链游戏:探索未来的可能性与挑战

区块链游戏是一种将区块链技术应用于游戏领域的创新产品,它为游戏行业带来了全新的模式和可能性。本文将深入探讨区块链游戏的优点、挑战和未来趋势,帮助读者了解这一新兴领域。 一、区块链游戏的优点 1. 公平性:区块链技术保证了游戏中的物…

应急响应-CS流量分析心跳指令特征提取

知识点 战后-流量分析-CS 一、演示案例-流量分析-CS-HTTP/S协议-基础特征&源码特征 HTTP 1、基础特征:解密心跳请求 https://blog.didierstevens.com/didier-stevens-suite/ python 1768.py xxxx.vir2、请求特征: URL路径 下发指令 UA头&…

(笔记)KEIL经常碰到的错误(持续整理)

KEIL常碰到的错误 一、ERROR报错1、Build时报错 Error: L6218E2、Build时报错 error 653、Default Compiler Version 54、core_cm3.h(1213): error: unknown type name inline 二、调试与仿真1、keil5软件仿真没有实时波形2、调试模式时,程序前没有灰块3、Periphera…

微信小程序地图开发总结-规划路线

这是我做出来的自动规划效果,比较潦草 功能勉勉强强算是实现了的 在微信小程序中使用腾讯地图服务 虽然map组件使我们可以很方便的使用地图,但是map组件只提供了最基本的地图显示功能,同时,微信小程序提供的关于地图的API也只是提…

1.汉诺塔问题

C力扣 汉诺塔 class Solution { public:void hanota(vector<int>& a, vector<int>& b, vector<int>& c) {dfs(a,b,c,a.size());}void dfs(vector<int>& a, vector<int>& b, vector<int>& c,int n){if(n1){c.push…

CSS基础+基本选择器和复合选择器(如果想知道CSS的基础+基本选择器和复合选择器知识点,那么只看这一篇就足够了!)

前言&#xff1a;在我们学习完了html之后&#xff0c;我们就要开始学习三大件中的第二件—CSS&#xff0c;CSS 可以控制多重网页的样式和布局&#xff0c;也就是将我们写好的html代码加上一层华丽的衣裳&#xff0c;使网页变得更加精美。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨…

软考中级--网络工程师-计算机基础与理论第二节无线基础知识

IEEE802.11 规定了多种 WLAN 通信标准&#xff0c;其中&#xff08; &#xff09;与其他标准采用的频段不同&#xff0c;因而不能兼容。 A IEEE802.11a B IEEE802.11b C IEEE802.11g D IEEE802.11n 试题答案 正确答案&#xff1a; A 答案解析 IEEE 802.11a规定采用5GHz的 ISM频…

多态——C++

这里写目录标题 衔接继承总结继承和组合白箱复用黑箱复用 多态的概念多态的定义以及实现虚函数重写的两个例外协变面试题析构函数的重写 finalvoerride重载隐藏(重定义)重写(覆盖)抽象类什么是抽象类&#xff1f; 实现继承和接口继承多态的原理虚函数表 那多态的调用是怎么实现…

2024年mathorcup数学建模思路及论文助攻

题目C题 物流网络分拣中心货量预测及人员排班 电商物流网络在订单履约中由多个环节组成&#xff0c;图1是一个简化的物流网络示意图。其中&#xff0c;分拣中心作为网络的中间环节&#xff0c;需要将包裹按照不同流向进行分拣并发往下一个场地&#xff0c;最终使包裹到达消费者…