【一】FPGA实现SPI协议之SPI协议介绍

【一】FPGA实现SPI协议之SPI协议介绍

一、spi协议解析

spi协议有4根线,主机输出从机输入MOSI、主机输入从机输出MISO、时钟信号SCLK、片选信号SS\CS 。 一般用于主机和从机之间通信。由主机发起读请求和写请求,主机的权限是主动的,从机是被动的。

二、信号端口解析:

片选信号CS:当CS信号为低时,spi传输开始;cs信号为高时,则为空闲状态。

时钟信号SCK:

MOSI信号:M代表主机、O代表输出,S代表从机、I代表输入,即主机输从机输入,数据的流向是从主机到从机,数据单位bit。也称之为 SDO,S是SPI,D是data,O是output

MISO信号:M代表主机、I代表输入、S代表从机、O代表输出、即主机输入从机输出,数据的流向是从从机到主机,数据单位bit。也称之为 SDI,S是SPI,D是data,O是input

三、连接的方式

下图是一个主机一个从机的连接方式:

image-20231219082836723

下图是一个主机多个从机的连接方式:

一主多从,一个主机控制多个从机。注意不允许多个主机控制一个从机。

image-20231219094425614

四、时序图

从下面的时序图也可以看出来SPI是全双工的,在时钟的上升沿可以同时发送和接收数据。SSEL信号就是片选信号CS,在SSEL信号为低的时候数据有效,开始发送和接收1bytes数据,在时钟sck的上升沿发送和接收数据。SPI协议属于低速协议,时钟可以跑在10M左右,也可以跑到100M。这个图是其中一个模式下的时序图。这个图中的时钟极性是1,在第二个时钟的跳变沿开始传输数据,所以时钟相位为1。CPOL=1,CPHA=1

image-20231219095404644

五、时钟极性和时钟相位

时钟极性(CPOL):时钟极性为0时,SCK信号处于低电平;时钟极性为1时,SCK信号处于高电平;

时钟相位(CPHA):时钟相位为0时,SCK第一个跳变沿传输数据;时钟相位为1时,SCK第二个跳变沿传输数据;

空闲状态时,即片选信号CS为高时,SCK信号此时可以为高电平(时钟极性为1),也可以为低电平(时钟极性为0),对应两种不同的模式。

1)空闲时,CS=1,SCK=1。

image-20231219102118967

2)空闲时,CS=1,SCK=0。

image-20231219102857802

SPI的模式由时钟极性和时钟相位来决定,时钟极性有2种模式,时钟相位也有2种模式,2*2=4种模式。

3)例子

在下面这个图中,在空闲的状态,SCK为低电平,时钟极性为0,在时钟的第一个跳变沿发送数据,所以始时钟相位为0。CPOL=0,CPHA=0,这种模式是我们常用的模式

image-20231219103355410

再举一个例子:CPOL=1 ,CPHA=0模式

image-20231219104455454

---晓凡 20231219日于武汉书

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

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

相关文章

C/C++编程中的算法实现技巧与案例分析

C/C编程语言因其高效、灵活和底层的特性,被广大开发者用于实现各种复杂算法。本文将通过10个具体的算法案例,详细探讨C/C在算法实现中的技巧和应用。 一、冒泡排序(Bubble Sort) 冒泡排序(Bubble Sort)是一…

【Hadoop精讲】HDFS详解

目录 理论知识点 角色功能 元数据持久化 安全模式 SecondaryNameNode(SNN) 副本放置策略 HDFS写流程 HDFS读流程 HA高可用 CPA原则 Paxos算法 HA解决方案 HDFS-Fedration解决方案(联邦机制) 理论知识点 角色功能 元数据持久化 另一台机器就…

腾讯云微服务11月产品月报 | TSE 云原生 API 网关支持 WAF 对象接入

2023年 11月动态 TSE 云原生 API 网关 1、支持使用私有 DNS 解析 服务来源支持私有 DNS 解析器,用户可以添加自己的 DNS 解析器地址进行私有域名解析,适用于服务配置了私有域名的用户。 2、支持 WAF 对象接入 云原生 API 网关对接 Web 安全防火墙&…

一种基于外观-运动语义表示一致性的视频异常检测框架 论文阅读

A VIDEO ANOMALY DETECTION FRAMEWORK BASED ON APPEARANCE-MOTION SEMANTICS REPRESENTATION CONSISTENCY 论文阅读 ABSTRACT1. INTRODUCTION2. PROPOSED METHOD3. EXPERIMENTAL RESULTS4. CONCLUSION阅读总结: 论文标题:A VIDEO ANOMALY DETECTION FRA…

锐捷配置完全stub区域

一、实验拓扑 二、实验目的 在运行OSPF协议的网络中,配置STU区域可以减少路由器的路由条目,减小路由器的压力,有效提高路由器的性能。 三、实验配置 第一步:全局配置OSPF R1 ruijie>enable R1#conf terminal R1(config)#hos…

Postman使用总结--生成测试报告

1.执行生成的命令格式 newman run 用例集文件 .json -e 环境文件 .json -d 数据文件 .json/.csv -r htmlextra --reporter- htmlextra-export 测试报告名 .html -e 和 -d 是 非必须的。 如果没有使用 环境,不需要指定 -e 如果没有使用 数据…

数据结构与算法之美学习笔记:37 | 贪心算法:如何用贪心算法实现Huffman压缩编码?

目录 前言如何理解“贪心算法”?贪心算法实战分析解答开篇内容小结 前言 本节课程思维导图: 接下来几节,我会讲几种更加基本的算法。它们分别是贪心算法、分治算法、回溯算法、动态规划。更加确切地说,它们应该是算法思想&#x…

XZ_iOS 之 M1 M2 M3的M系列芯片的Mac苹果电脑安装cocoapods

安装的前提,应用程序->终端->右键-显示简介->勾选 使用Rosetta打开,如下图,然后重启终端 安装的顺序如下:Homebrew->rvm->ruby->cocoapods 1、安装Homebrew /bin/bash -c "$(curl -fsSL https://raw.git…

eclipse的安装与配置

1、下载 eclipse 下载地址:https://www.eclipse.org/downloads/ 点击 【Download Package】 找到JavaEE IDE,点击【Windows x86_64】 点击【Select Another Mirror】,然后点击国内任意一个大学镜像下载即可! 下载成功后&…

0086-Java_四种进制介绍

文章目录 1 进制(程序员的基本功)1.1 进制介绍1.2 进制的转换(基本功)1.2.1 进制转换的介绍 1.3 二进制在运算中的说明1.4 原码、反码、补码(重点 难点) 1 进制(程序员的基本功) 1.1 进制介绍 对于整数,有四种表示方式: 二进制:0,1 &#x…

新手上路:自动驾驶行业快速上手指南

文章目录 1.自动驾驶技术的发展1.1 工业革命驱动自动驾驶技术发展1.2 想象中的未来:科幻作品中的自动驾驶汽车1.3 自动驾驶技术萌芽与尝试1.4 百花争鸣:自动驾驶科技巨头与创业公司并进 2.个人开发者,如何玩转自动驾驶?2.1 灵活易…

OO DiskRecovery 14 - 专业硬盘SSD数据恢复工具软件

在数据丢失时,让O&O DiskRecovery 14为您挽回宝贵的信息。 概述 O&O DiskRecovery 14是一款专业级别的硬盘SSD数据恢复工具软件,专为在数据丢失或意外删除时进行高效恢复而设计。无论是硬盘、U盘、SD卡还是数字相机,O&O DiskR…

10 v-html指令

概述 v-html主要是用来渲染富文本内容,比如评论信息,新闻信息,文章信息等。 v-html是一个特别不安全的指令,因为它会将文本以HTML的显示进行渲染,一旦文本里面包含一些恶意的js代码,可能会导致整个网页发…

org.slf4j日志组件实现日志功能

slf4j 全称是Simple Logging Facade for Java。facade是一种设计模式。 slf4j 是一个抽象程度更高的日志组件,本身并不提供实际的日志功能。实际的日志功能是通过log4j等日志组件实现,而使用者只需要关心 slf4j 给出的API。 slf4j 仅仅是一个为Java程序提…

SQL面试题挑战01:打折日期交叉问题

目录 问题:SQL解答:第一种方式:第二种方式: 问题: 如下为某平台的商品促销数据,字段含义分别为品牌名称、打折开始日期、打折结束日期,现在要计算每个品牌的打折销售天数(注意其中的…

maven 项目导入异常问题

问题如下 一、 tomcat正再运行的包是哪一个 不同构建、打包情况下分别运行 out\artifacts下 当直接去Project Structure下去构建artifacts 后,运行tomcat 则会在out下target下 reimport项目后,则会在artifacts自动生成部署包。删除tomcat之前deployment 下的包(同…

2023_Spark_实验三十:测试Flume到Kafka

实验目的:测试Flume采集数据发送到Kafka 实验方法:通过centos7集群测试,将flume采集的数据放到kafka中 实验步骤: 一、 kafka可视化工具介绍 Kafka Tool是一个用于管理和使用Apache Kafka集群的GUI应用程序。 Kafka Tool提供了…

Python轴承故障诊断 (八)基于EMD-CNN-GRU并行模型的故障分类

目录 前言 1 经验模态分解EMD的Python示例 2 轴承故障数据的预处理 2.1 导入数据 2.2 制作数据集和对应标签 2.3 故障数据的EMD分解可视化 2.4 故障数据的EMD分解预处理 3 基于EMD-CNN-GRU并行模型的轴承故障诊断分类 3.1 训练数据、测试数据分组,数据分ba…

15 使用v-model绑定单选框

概述 使用v-model绑定单选框也比较常见,比如性别,要么是男,要么是女。比如单选题,给出多个选择,但是只能选择其中的一个。 在本节课中,我们演示一下这两种常见的用法。 基本用法 我们创建src/component…

了解C++工作机制

基于hello.cpp对C的运行进行一个初步认识,并介绍国外C大佬Cherno常用的项目结构和调试Tips C是如何工作的 C工作流程1.实用工程(project)结构(1)Microsoft Visual Studio2022新建项目后,自动生成的原始文件…