搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
在线问答5
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
动态规划——01背包问题
2
数据结构第九讲:二叉树
3
金融数仓体系建设
4
【最新】如何使用Python开发微信机器人_wxhook
5
python 二维列表创建_列表生成式,Python 快速便捷创建列表
6
QT使用腾讯云对象存储SDK报错:`undefined reference to qcloud_cos`
7
diffusion transformer从数学到实践 (1)
8
探索Stirling-PDF:一款强大且开源的PDF处理工具
9
微软宣布GPT-4o模型,可在 Azure OpenAI上使用_gpt4o学数学在哪下载使用
10
毕业论文答辩PPT怎么做?推荐3个ai工具帮你一键生成答辩ppt_论文答辩ppt软件推荐
当前位置:
article
> 正文
SPI 总线协议_spi通信msb在前
作者:在线问答5 | 2024-08-07 20:22:50
赞
踩
spi通信msb在前
SPI 总线协议
SPI 简介
SPI接口是Motorola 首先提出的全双工三线同步串行外围接口,采用主从模式(Master Slave)架构;支持多slave模式应用,一般仅支持单Master。时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后(MSB first);SPI接口有2根单向数据线,为全双工通信,目前应用中的数据速率可达几Mbps的水平。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间
SPI总线由MISO(串行数据输入)、MOSI(串行数据输出)、SCK(串行移位时钟)、CS(使能信号)4个信号线组成。
SPI 数据传输模式
SPI常用四种数据传输模式,主要差别在于:输出串行同步时钟极性(CPOL)和相位(CPHA)可以进行配置。如果CPOL= 0/1,SPI在串行同步时钟的高/低电平进行采样;如果CPHA= 0/1,SPI在串行同步时钟的前/后沿(上升或下降)采样。
这四种模式中究竟选择哪种模式取决于设备。一般的设备都会明确它可以支持的模式:CPOL=0 CPHA=0 和 CPOL=1 CPHA=1 。。。。。。
SPI接口时钟配置心得:在主设备这边配置SPI接口时钟的时候一定要弄清楚从设备的时钟要求,因为主设备这边的时钟极性和相位都是以从设备为基准的。因此在时钟相位的配置上一定要搞清楚从设备是在时钟的上升沿还是下降沿接收数据,是在时钟的下降沿还是上升沿输出数据。
SPI 数据传输时序
传输时序:SPI是一个环形总线结构,SPI接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图所示,在SCLK的下降沿上数据改变,上升沿一位数据被存入移位寄存器。
数据传输:在一个SPI时钟周期内,会完成如下操作:1) 主机通过MOSI线发送1位数据,从机通过该线读取这1位数据;2) 从机通过MISO线发送1位数据,主机通过该线读取这1位数据。这是通过移位寄存器来实现的。如下图所示,主机和从机各有一个移位寄存器,且二者连接成环。随着时钟脉冲,数据按照从高位到低位的方式依次移出主机寄存器和从机寄存器,并且依次移入从机寄存器和主机寄存器。当寄存器中的内容全部移出时,相当于完成了两个寄存器内容的交换。
上文中最后一句话:SPI主模块和与之通信的外设备时钟相位和极性应该一致。个人理解这句话有2层意思:其一,主设备SPI时钟和极性的配置应该由外设来决定;其二,二者的配置应该保持一致,即主设备的SDO同从设备的SDO配置一致,主设备的SDI同从设备的SDI配置一致。因为主从设备是在SCLK的控制下,同时发送和接收数据,并通过2个双向移位寄存器来交换数据。工作原理演示如下图:
一个完整的传送周期是16位,即两个字节,因为,首先主机要发送命令过去,然后从机根据主机的命令准备数据,主机在下一个8位时钟周期才把数据读回来。
上升沿主机SDO发送数据1,同时从设备SDO发送数据0;紧接着在SCLK的下降沿的时候从设备的SDI接收到了主机发送过来的数据1,同时主机也接收到了从设备发送过来的数据0.
SPI主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束 中断标志;写冲突保护;总线竞争保护等。下图示出SPI总线工作的四种方式,其中使用的最为广泛的是SPI0和SPI3方式 (实线表示):
SPI 优缺点
SPI接口具有如下优点:
1) 支持全双工操作;
2) 操作简单;
3) 数据传输速率较高。
同时,它也具有如下缺点:
1) 需要占用主机较多的口线(每个从机都需要一根片选线);
2) 只支持单个主机。
3) 没有指定的流控制,没有应答机制确认是否接收到数据。
在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从设备的系统中,每个从设备需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/在线问答5/article/detail/944373
推荐阅读
article
【
数据结构
与算法】
6
.
2
选择
排序
_
6
-
2
选择
排序
(15 分)...
选择
式
排序
也属于内部
排序
法,是从欲
排序
的数据中,按指定的规则选出某一元素,再依规定交换位置后达到
排序
的目的。代码实现pa...
赞
踩
article
阿里
云
部署
dify
.
ai
_
dify
阿里
云
...
阿里
云
搭建Dify.
ai
_
dify
阿里
云
dify
阿里
云
1、系统更新 sudo ap...
赞
踩
article
mysql
在原有
数据
上加_MYSQL
数据
库在原有的
主
从
基础上再
添加
一个
从
服务器
...
事先配置好原有
主
从
:master :ip 192.168.1.107~]# vim /etc/my.cnfserver_...
赞
踩
article
Docker
-
学习
笔记
(借助
宝塔
面板)...
ubuntu环境。
Docker
-
学习
笔记
(借助
宝塔
面板) ubuntu环境 一、安装 可...
赞
踩
article
[
ARM
-
assembly
]-
ARM
v8
-A64
指令集
总结
和
学习_
armv8
架构
和
指令集
...
ARM
v8
/
ARM
v9
架构
精选系列_
armv8
架构
和
指令集
armv8
架构
和
指令集
...
赞
踩
article
普通人
要
怎么
学习
AIGC
?_
aigc
四十岁
好学吗...
AIGC
(Artificial Intelligence Guidance Counselor) 是一种采用人工智能技术...
赞
踩
article
ComfyUI
完全入门:
必备
插件
...
ComfyUI
是一个基于 Stable Diffusion 的AI绘画创作工具,最近发展势头特别迅猛,但是 Comfy...
赞
踩
article
吴恩达机器学习
COURSE1
WEEK2
...
吴恩达机器学习课程笔记(2)吴恩达机器学习
COURSE1
WEEK2
...
赞
踩
article
ChatGPT
提示
技巧——零,一和少量
示例
提示
_
zero
-
shot
提示
法 few-
shot
示例
...
ChatGPT
提示
技巧——零样本,一个样本和少数样本_
zero
-
shot
提示
法 few-
shot
示例
zero
-
shot
提...
赞
踩
article
ARMv8
指令集
架构...
load的值0x1F的最高位是空的。此处被编译为LDR(literal)指令(将label的链接地址编码进imm19),...
赞
踩
article
DCMM
评估
流程
以及
评估
方法_
企业
dcmm
评估
流程
及费用...
本文介绍了我国首个数据管理国家标准
DCMM
的认证
流程
,包括
评估
准备、正式
评估
和结果评议三个阶段,以及贯标
评估
方法。重点阐...
赞
踩
article
Elasticsearch
的
基本概念
及
架构
剖析_
es
框架...
Elaticsearch,简称为ES, ES是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身...
赞
踩
article
(
4
)
FPGA
仿真——
全加器
_
全加器
的
设计
与
实现
...
本文介绍了
FPGA
设计
中
的
层次化
设计
思想,通过自底向上和自顶向下
的
方法解释
设计
流程。接着详细阐述了
全加器
的
设计
,将其分解...
赞
踩
article
Java
线程
池
之
ThreadPoolExecutor
源码分析_
线程
池
的
shutdown
源码...
一、引言
Java
并发工具包自带了很多常用的
线程
池
,程序可以将定义的Runnable、Callable任务提交到
线程
池
当中...
赞
踩
article
Git
在日常
项目
中
的
实用技巧
...
Git
是一个功能强大
的
版本控制工具,掌握这些
实用技巧
可以显著提升你
的
开发效率和团队协作能力。
Git
在日常
项目
中
的
实用技巧
...
赞
踩
article
有线
通信
--
一文弄懂
SPI
--
(
基础篇
)
_
spi
通信
...
每接触一个协议,我们都要明白它的优缺点,知道它的使用范围和特点,在有这些前置认识后,对后面的原理和实验才能了解的更深入和...
赞
踩
article
鸿蒙
next
开发
:合理处理高负载组件的渲染_
鸿蒙
next
如何提升
30%
性能
...
在应用
开发
中,有的页面需要在列表中加载大量的数据............................._
鸿蒙
next
...
赞
踩
article
AI
大
语言
模型
的开源资源...
1.背景介绍在过去的几年中,人工智能(
AI
)已经从科幻小说中的概念转变为现实生活中的实用工具。特别是在自然
语言
处理(NL...
赞
踩
article
测试
开发
字节跳动(
二面
)
,
我被
面试官
按在地上摩擦!
_
开发
测试
二面
...
1.项目挖一挖2.SQL中的删除使用delete drop; 这两个的区别》》》》???再看看事务的属性有哪些image...
赞
踩
article
Spingboot
人工智能
工程应用框架,你
要
干
的
活全部交给它_
llamaindex
springbo...
尽管
人工智能
有着悠久
的
历史,但 Java 在该领域
的
作用相对较小。这主
要
是由于历史上依赖于用 C/C++ 等语言开发
的
高...
赞
踩
相关标签
阿里云
云计算
ai
mysql在原有数据上加
docker
学习
笔记
arm开发
arm
linux
安全架构
安全
单片机
mcu
人工智能
自然语言处理
AI作画
语言模型
数据分析
ComfyUI
stable diffusion
AI绘画
机器学习
回归