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

WordPress 蜘蛛检测/公司的seo是什么意思

WordPress 蜘蛛检测,公司的seo是什么意思,爱给网,网站建设公司中了解SPI通信对于我们了解通信有非常重要的意义。 SPI(Serial Peripheral Interface)是由Motorola公司(摩托罗拉)开发的一种通用数据总线 四根通信线: SCK(Serial Clock):时钟线&a…

了解SPI通信对于我们了解通信有非常重要的意义。

SPI(Serial Peripheral Interface)是由Motorola公司(摩托罗拉)开发的一种通用数据总线

四根通信线:

SCK(Serial Clock):时钟线;

MOSI(Master Output Slave Input):主机输出从机输入线;

MISO(Master Input Slave Output):主机输入从机输出线;

SS(Slave Select):从机选择线;(代替了I2C的从机寻址机制)

另外由于SPI是单端通信所以SPI还需要另外的共地,GND线。

注意:

1.SPI是全双工,不支持多主机;

输出引脚就是输出,输入就是输入,不需要像I2C还需要输入输出转换,唯一冲突在于SS从机线

2.SPI不存在数据应答机制的设计,只有接收和发送数据。

不同设备名称可能不同,却决于明确该设备身份为从机还是主机

有时候对于数据线接口有很多不同我们往往有着更多的写法,到底什么意思还是需要自己根据使用芯片是作为主机还是从机。

这里我们拿一个W25QXX一个外挂的Flash存储器为例子,它一般作为从机,所以DO就是从机输出主机输入,DI就是从机输入主机输出。具体还是需要看设备本省需要作为从机还是主机。

当实在不清楚的时候我们可以查看具体的芯片手册。对于STM32来说,STM32常常作为主机,当然也有作为从机(支持身份转换),不过我们往往用做主机比较多。

硬件电路:

所有SPI设备的SCK、MOSI、MISO分别连在一起主机另外引出多条SS控制线,分别接到各从机的SS引脚,代替了 从机寻址的软件操作,但是需要多一根从机选择线的硬件资源。

输出引脚MOSI配置为推挽输出(I2C为开漏输出是需要兼顾于多主机仲裁等等),输入引脚MISO配置为浮空或上拉输入

同样需要注意的地方,SPI为单端信号(他们的高低电平都是相对于各自GND),需要,要求通信双方共地。

SCLK时钟线为主机绝对掌控,对于主机而言时钟线SCLK为输出,对于从机而言SCLK时钟线为输入。

(如果从机没有供电,还需要引脚引出来,主机引出供电线,给予从机寄生供电)

下面是大概框图:

需要注意:

在平时当中,SS为高电平,当主机需要时候会对相应的SS从机线置低电平,当完成通信以后主机就会将SS拉回高电平代表通信结束。就不需要像I2C需要发送从机位地址进行选择从机(从机寻址)。

输出引脚配置为推挽输出,高低电平均有很强的驱动能力,上升/下降沿速度非常快

(拉高拉低电平就会非常迅速)信号变化的快,就使得通信速度大大能达到MHZ,但是由于I2C是半双工只有两根线经常需要切换输入输出模式,同时需要兼顾多主机的时钟同步和仲裁问题,就使得其只能使用开漏输出,而开漏输出拉低非常迅速,但是拉高就比较慢,所以通信速度没有SPI那么快。

SPI不支持多主机,不要考虑冲突,唯一的冲突点在于,主机的MISO,主机一个输入而从机三个或者多个输出,就会导致冲突,因此SPI协议规定当从机未被选中,从机的MISO引脚必须切换为高阻态(不允许输出)。

软件实现:

主要就是理解一个移位的过程:

SPI一般是高位先行,我们利用时钟,当时钟产生上升沿,主机移出最高位的一个数据放在MOSI线上同时数据整体左移一位,从机移出最高位的数据放到MISO上,并且整体数据左移一位。当时钟产生下降沿,主机从MISO线上把从机放在MISO线上数据移入,放在最低位上,同样的,下降沿的时候,从机从MOSI线上把主机放在线上的高位,移入放在低位。

主机和从机都会进行采样输入直到数据完成交换过程,这就是实际的过程。

SPI时序基本单元:

起始条件:SS从高电平切换到低电平

终止条件:SS从低电平切换到高电平

SS低电平代表:正在通信;

SPI有两种可以配置的位

CPOL(Clock Polarity):时钟极性

CPHA(Clock Phase):时钟相位

综合起来可以有A^{_{2}^{2}}也就是四种模式

如下表:

模式选择

时钟极性CPOL

时钟相位CPHA

模式0

0

0

模式1

0

1

模式2

1

0

模式3

1

1

注意:

  1. 时钟极性CPOL的“0”和“1”决定了,空闲状态SCLK的电平是高还是低决定了第一个时钟沿是上升沿还是下降沿。
  2. 时钟相位CPHA 的“0”和“1”决定了,SCK第一个边沿是移入还是移出数据也可以说是决定了主机是奇数边沿采样还是偶数边沿采样。

模式介绍:

模式0:

交换一个字节(模式0)

CPOL=0:空闲状态时,SCK为低电平;

CPHA=0:SCK第一个边沿移入数据,第二个边沿移出数据;

模式0时序图

结合时序图讲解一下

首先SS由高电平变为低电平,代表SPI通信的开始,当SS由低电平变为高电平,代表SPI通信结束。

SCK由于CPOL为0,所以空闲为低电平,所以开始数据交换时候,第一个为上升沿,第二个为下降沿。所以CPOL决定的往往就是SCK,第一个为上升沿还是下降沿。

MOSI:由于CPHA为0,所以在第一个时钟沿进行数据移入操作((实际需要提前移出数据,相位提前一个时期),在第二个时钟沿进行数据移出操作。我们不断地进行操作可以发现,永远是奇数移入操作,偶数移出操作,对于主机数据采集也可以说就是奇数边沿采样。

注意:

  1. MOSI,MISO两个线交叉代表可能发送地数据是“0”或者“1”;
  2. MISO前面一个线代表上面说的高阻态,防止主机数据交换地时候有其他从机输出影响主机数据读取。

模式1:

交换一个字节(模式1)

CPOL=0:空闲状态时,SCK为低电平;

CPHA=1:SCK第一个边沿移出数据,第二个边沿移入数据;

模式1时序图

结合时序图讲解一下

首先SS由高电平变为低电平,代表SPI通信的开始,当SS由低电平变为高电平,代表SPI通信结束。

SCK由于CPOL为0,所以空闲为低电平,所以开始数据交换时候,第一个为上升沿,第二个为下降沿。所以CPOL决定的往往就是SCK,第一个为上升沿还是下降沿。

MOSI:由于CPHA为1,所以在第一个时钟沿进行数据移出操作,在第二个时钟沿进行数据移入操作。所以要求我们要提前将数据移入到线上才能保证在第一个时钟沿保证进行的是数据移出的操作,我们不断地进行操作可以发现,永远是奇数移出操作,偶数移入操作对于主机数据采集也可以说就是偶数边沿采样。

模式2:

交换一个字节(模式2)

CPOL=1:空闲状态时,SCK为高电平;

CPHA=0:SCK第一个边沿移入数据,第二个边沿移出数据;

模式2时序图

首先SS由高电平变为低电平,代表着SPI通信的开始,当SS由低电平变为高电平,代表着SPI通信的结束。

SCK:由于时钟极性CPOL为1,所以SCLK在空闲状态为高电平,所以在通信时,第一个时钟沿为下降沿,第二个为上升沿。

MOSI:由于CPHA为0,所以在第一个时钟沿进行数据移入的操作,在第二个时钟沿进行数据移出的操作。重复操作可以发现,主机为奇数边沿采样。

模式3:

交换一个字节(模式3)

CPOL=1:空闲状态时,SCK为高电平;

CPHA=1:SCK第一个边沿移出数据,第二个边沿移入数据;

模式3时序图

首先SS由高电平变为低电平,代表着SPI通信的开始,SS由低电平变为高电平代表着SPI通信的结束。

SCK:由于CPOL为1,所以SCLK空闲状态为高电平,所以SPI第一个时钟沿为下降沿,第二个为上升沿;

MOSI:由于CPHA为1,所以主机在第一个时钟沿进行数据移出的操作,在第二个边沿进行数据移入的操作,我们不断重复操作就可以发现,主机永远是在偶数时钟边沿进行数据采样。

以上就是对SPI模式的讲解,在实际使用过程当中,往往模式0使用较多。

相关文章:

SPI通信讲解

了解SPI通信对于我们了解通信有非常重要的意义。 SPI(Serial Peripheral Interface)是由Motorola公司(摩托罗拉)开发的一种通用数据总线 四根通信线: SCK(Serial Clock):时钟线&a…...

本地一键部署grafana+prometheus

本地k8s集群内一键部署grafanaprometheus 说明: 此一键部署grafanaPrometheus已包含: victoria-metrics 存储prometheus-servergrafanaprometheus-kube-state-metricsprometheus-node-exporterblackbox-exporter grafana内已导入基础的dashboard【7个…...

NIO核心依赖多路复用小记

NIO允许一个线程同时处理多个连接,而不会因为一个连接的阻塞而导致其他连接被阻塞。核心是依赖操作系统的多路复用机制。 操作系统的多路复用机制 多路复用是一种操作系统的 I/O 处理机制,允许单个进程(或线程)同时监视多个输入…...

如何彻底卸载 Microsoft Edge?

关闭 Microsoft Edge 浏览器和所有正在运行的进程。 按下 Ctrl Shift Esc 键打开任务管理器。在任务管理器中,找到所有正在运行的 Microsoft Edge 进程。右键单击每个进程,然后选择“结束任务”。 导航至 Microsoft Edge 的安装目录。 默认情况下&…...

JavaScript-对象-笔记

1.字面量创建对象、对象的使用 对象就是一组 属性和方法的集合 属性: 特征 相当于变量 静态 是什么 方法: 行为 相当于函数 动态 干什么 创建对象 创建对象的第一种:使用字面量 {} 对象中的元素是键值对 使用逗号隔开 键:值 的形式 var 对象名…...

java 运算符 选择语句

1:运算符 运算符:对字面量或者变量进行操作的符号 表达式:用运算符把字面量或者变量连接起来符合java语法的式子就可以称为表达式。不同运算符连接的表达式体现的是不同类型的表达式。 举例说明:** int a 10; int b 20; in…...

CNN:Convolutional Neural Network(上)

目录 1 为什么使用 CNN 处理图像 2 CNN 的整体结构 2.1 Convolution 2.2 Colorful image 3 Convolution v.s. Fully Connected 4 Max Pooling 5 Flatten 6 CNN in Keras 原视频:李宏毅 2020:Convolutional Neural Network 1 为什么使用…...

将Android应用修改为鸿蒙应用的工作

将Android应用修改为鸿蒙(HarmonyOS)应用需要进行一系列主要的工作。以下是在进行这一转换过程中可能需要进行的主要工作,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.项目…...

03 Strategy策略

抽丝剥茧设计模式 之 Strategy策略 - 更多内容请见 目录 文章目录 一、Strategy策略二、Comparable和Comparator源码分析使用案例Arrays.sort源码Collections.sort源码Comparable源码Comparator源码 一、Strategy策略 策略模式是一种设计模式,它定义了一系列的算法…...

Python实现分位数回归模型(quantreg算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 分位数回归是简单的回归,就像普通的最小二乘法一样,但不是最小化平方误差的总和…...

【ROS2简单例程】基于python的发布订阅实现

1、自定义消息类型Student 1.1 创建base_interfaces_demo包 1.2 创建Student.msg文件 string name int32 age float64 height 1.2 在cmakeLists.txt中增加如下语句 #增加自定义消息类型的依赖 find_package(rosidl_default_generators REQUIRED) # 为接口文件生成源代码 ro…...

【期末考试】数据库综合复习宝典

目录 第一章 数据库系统概述 第二章 关系代数 第四章 关系数据库理论 第五章 数据库设计 第六章 数据库管理系统 第八章 事务管理 第一章 数据库系统概述 1.1三级模式 ①外模式:它为特定的应用程序或用户群体提供了一个数据视图,这个视图是独立于…...

OpenHarmony南向之LCD显示屏

OpenHarmony南向之LCD显示屏 概述 LCD(Liquid Crystal Display)驱动,通过对显示器上下电、初始化显示器驱动IC(Integrated Circuit)内部寄存器等操作,使其可以正常工作。 HDF Display驱动模型 LCD器件驱…...

核心笔记-短篇

接口管理平台:yapi 对象拷贝:Spring Bean 提供的 BeanUtils;hutool-core 提供的 BeanUtil 获得用户设备的信息:导入 UserAgentUtils 依赖;创建 UserAgent 对象使用 加密工具:DigestUtils,Spring Core 提供,静态方法:md5DigestAsHex(byte[]) 客户端编程工具包:HttpCli…...

系统学习Python——警告信息的控制模块warnings:为新版本的依赖关系更新代码

分类目录:《系统学习Python》总目录 在默认情况下,主要针对Python开发者(而不是Python应用程序的最终用户)的警告类别,会被忽略。 值得注意的是,这个“默认忽略”的列表包含DeprecationWarning&#xff08…...

爬虫的基本原理

基本原理 可以把网页与网页之间的链接关系比作节点中的连线,爬虫可以根据网页中的关系获取后续的网页,当整个网站涉及的页面全部被爬虫访问到后,网站的数据就被访问下来了。 1.爬虫概述 简单点讲,爬虫就是获取网页并提取和保存信…...

MySQL核心SQL

一.结构化查询语言 SQL是结构化查询语言(Structure Query Language),它是关系型数据库的通用语言。 SQL 主要可以划分为以下 3 个类别: DDL(Data Definition Languages)语句 数据定义语言,这…...

关于 setData 同步异步的问题

小程序官方文档中的回答解释: 所以大概意思就是: 1.setData在逻辑层的操作是同步,因此this.data中的相关数据会立即更新,比如下面的例子: const a 1 this.setData({b: a ? a : , }) console.log(that.data.b) // 1 2. setData在视图层的操作是异步,…...

Centos创建一个Python虚拟环境

在 CentOS 上创建一个 Python 虚拟环境,可以使用 virtualenv 工具。以下是创建和激活虚拟环境的基本步骤: 1.安装virtualenv 如果还没有安装 virtualenv,可以使用以下命令安装: sudo yum install python3-virtualenv请注意&…...

怎么使用好爬虫IP代理?爬虫代理IP有哪些使用技巧?

在互联网时代,爬虫技术被广泛应用于数据采集和处理。然而,在使用爬虫技术的过程中,经常会遇到IP被封禁的问题,这给数据采集工作带来了很大的困扰。因此,使用爬虫IP代理成为了解决这个问题的有效方法。本文将介绍如何使…...

C#,字符串匹配算法(模式搜索)Z算法的源代码与数据可视化

Z算法也是模式搜索(Pattern Search Algorithm)的常用算法。 本文代码的运算效果: 一、Z 算法 线性时间模式搜索算法的Z算法,在线性时间内查找文本中模式的所有出现。 假设文本长度为 n,模式长度为 m,那么…...

强化学习actor-critic

...

使用推测解码 (Speculative Decoding) 使 Whisper 实现 2 倍的推理加速

Open AI 推出的 Whisper 是一个通用语音转录模型,在各种基准和音频条件下都取得了非常棒的结果。最新的 large-v3 模型登顶了 OpenASR 排行榜,被评为最佳的开源英语语音转录模型。该模型在 Common Voice 15 数据集的 58 种语言中也展现出了强大的多语言性…...

pi gpio 内存映射

树霉pi gpio内存映射 #include <stdio.h> #include <fcntl.h> #include <sys/mman.h> #include <unistd.h> #include <stdlib.h>#define BCM2835_PERI_BASE 0x20000000 #define GPIO_BASE (BCM2835_PERI_BASE 0x200000) #define PAGE_SIZE…...

[NAND Flash 6.2] NAND 初始化常用命令:复位 (Reset) 和 Read ID 和 Read UID 操作和代码实现

依公知及经验整理,原创保护,禁止转载。 专栏 《深入理解NAND Flash》 <<<< 返回总目录 <<<< 把下文中的字母和数字用`包起来, 中文不变。 全文 4400 字,主要内容 复位的目的和作用? NAND Reset 种类:FFh, FCh, FAh, FDh 区别 Reset 操作步骤 和…...

Multimodal Prototypical Networks for Few-shot Learning

tcGAN is provided with an embedding ϕ T \phi_T ϕT​() of the textual description 辅助信息 作者未提供代码...

软件测试|Python requests库的安装和使用指南

简介 requests库是Python中一款流行的HTTP请求库&#xff0c;用于简化HTTP请求的发送和处理&#xff0c;也是我们在使用Python做接口自动化测试时&#xff0c;最常用的第三方库。本文将介绍如何安装和使用requests库&#xff0c;以及一些常见的用例示例。 安装requests库 首…...

HarmonyOS应用开发学习笔记 应用上下文Context 获取文件夹路径

1、 HarmoryOS Ability页面的生命周期 2、 Component自定义组件 3、HarmonyOS 应用开发学习笔记 ets组件生命周期 4、HarmonyOS 应用开发学习笔记 ets组件样式定义 Styles装饰器&#xff1a;定义组件重用样式 Extend装饰器&#xff1a;定义扩展组件样式 5、HarmonyOS 应用开发…...

http状态码对照表

状态码含义100客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收&#xff0c;且仍未被拒绝。客户端应当继续发送请求的剩余部分&#xff0c;或者如果请求已经完成&#xff0c;忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。…...

金三银四-JVM核心知识高频面试题

又要快到一年一度的金三银四&#xff0c;开始复习啦&#xff5e;&#xff01; 每天一点点。。 目录 一、JVM中的垃圾收集器有哪些&#xff0c;它们的工作原理是什么&#xff1f; 二、JVM中的类加载器有哪些&#xff0c;它们各自的作用是什么&#xff1f; 三、JVM中垃圾回收的…...