【科普贴】SPI接口详解

【科普贴】SPI接口详解一、SPI接口简介SPI接口是一种同步串行总线(SerialPeripheralInterface)多用于Flash存储器(如NORFlash&NandFlashd),ADC、LCD控制器等外围器件的通讯接口。大大增强了处理器的外设扩展能力。SPI接口缩写SSEL:slaveselect,常常也被写作CS(chipselect)或SS(slaveselect)SCK:serialclock,常常也写作SCLK或SCLMISO:masterinputslaveoutpu

大家好,又见面了,我是你们的朋友全栈君。

一、SPI接口简介

SPI接口是一种同步串行总线(Serial Peripheral Interface)多用于Flash存储器(如NOR Flash&Nand Flash),ADC、LCD控制器等外围器件的通讯接口。大大增强了处理器的外设扩展能力。
SPI接口缩写
SSEL:slave select,常常也被写作CS(chip select)或SS(slave select)
SCK:serial clock,常常也写作SCLK或SCL
MISO:master input slave output,常常被简写为SO(slave output,也有说是serial output)
MOSI:master output slave input,常常被简写为SI(slave input,也有说是serial input)
在这里插入图片描述
在SPI总线上,当一个主机和多个从机进行通讯时,通过CS来选择和那个设备进行通讯,可以将CS理解为enable信号,低电平有效。当多个从机存在时,这就要求从机的MISO口具有三态特性,使得该接口在器件未被选通时表现为高阻抗。当前多数SPI设备在不做通讯时,默认的状态通常就是高阻抗状态。
如下图是某个SPI Nand Flash中的Timing图。
在这里插入图片描述
SPI接口通常少有被用作一主多从的状态。常常被用作一对一的SPI通讯,常常的连接方式如下方式。
在这里插入图片描述

二、SPI通讯方式

标准的SPI通讯协议,通常会采用时钟的极性和采样的相位,将SPI分为四种工作模式
说人话就是:时钟的空闲状态分为高电平和低电平两种状态。采样方式可以选择上升沿采样或者是下降沿采样两种方式,进行排列组合就是四种状态。详细见下。
在这里插入图片描述
通常设备手册是中会描述SPI设备支持那些模式。下图是某家SPI NAND所支持的SPI模式。
下图中
CPOL :Clock Polarity(时钟极性 )
CPHA :Clock Phase(时钟相位)
时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设音时钟相位和极性应该一致。
输入数据在上升沿的时候保持,数据在下降沿的时候允许变化。说白了就是上升沿采样。 在这里插入图片描述
SPI通讯常用到的被分为四种通讯方式1)单线模式,2)标准模式,3)双线模式,4)四线模式,各自的应用场景不同。SPI标准模式上面有介绍过这里不过多累述。
SPI单线通讯模式
SPI单线模式是将原来的两根数据线改成一根,通讯方式变成了半双工的通讯方式,在接线上,只需要三根线分别是SCLK、I/O、CS。时钟频率通常可以做到10MHz
在这里插入图片描述
SPI双线通讯模式(Dual SPI)
SPI双线模式,是将原来的SI、SO两个数据线单线数据线,改成双向数据线。也是一种半双工的通讯模式。下图是某家SPI NAND中对于这种模式的描述。
在这里插入图片描述
SPI四线通讯模式
SPI四线模式,通常是Flash使用较多,SPI NOR Flash和SPI NAND Flash都有使用,这种方式是将SI、SO、WP、HOLD全部改成双向IO进行通讯。也是一种半双工通讯模式。下图是某家SPI NAND中对于这种模式的描述。
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150374.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • es6转es5_es6转es5插件

    es6转es5_es6转es5插件步骤初始化环境npminit-y首先安装babel组件npminstall@babel/cli@babel/core@babel/preset-envbabel-plugin-transform-es2015-modules-umd-D配置babel,.babelrc(babel配置文件){“presets”:[“@babel/preset-env”],”plugins”:[“transform-es2015-modules-umd”]}

  • java数组去重方法是,java数组去重的两种方法

    java数组去重方法是,java数组去重的两种方法我们对于数组元素的使用,有时候在创建数组的初期,并没有考虑过元素的重复问题。当我们想要不重复元素的数组时,就要再进行一步去重的工作。数组的去重有两种方法可以实现,一个是循环比较,另一个是hashSet的集合方法。下面我们就这两种Java数组去重的方法带来详解。1、循环比较循环对比每个元素的值是否一致,这个就不过多去介绍,主要是第2种方法2、利用hashSet去重hashSet是一个没有重复元素的集…

  • goland mac 激活码_在线激活

    (goland mac 激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.htmlB1CUVFARG8-eyJsaWNlbnNlSWQi…

  • pycharm2021专业版激活码(JetBrains全家桶)

    (pycharm2021专业版激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~V…

  • android监听进程杀死_安卓进程管理

    android监听进程杀死_安卓进程管理今天在编写application通用组件时,需要在低内存的回调中杀死进程,所以找了下androd傻进程的方法,总结下来有下面几种:根据进程名称杀进程android.os.Process.killProcess(android.os.Process.myPid());代码本身没什么可以说的,需要注意的是,当进程在前台时,会杀死现有进程,然后再重新启动改线程,类似于手机的重启。但是只要我们把…

  • 服务器资源监控工具—nmon

    服务器资源监控工具—nmon      在性能测试过程中,对服务端的各项资源使用情况进行监控是很重要的。对于监控服务器资源的工具nmon是最好不过了。      nmon不仅可以监控内存使用情况、磁盘适配器、文件系统中的可用空间、CPU使用率、页面空间和页面速度、异步I/O(仅适用于AIX)、网络文件系统(NFS)、磁盘I/O速度和读写比率、服务器详细信息和资源、内核统计信息、消耗资源进程、运行队列信息等。而且它资源…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号