SPI接口介绍

SPI接口介绍SPI接口的全称是”SerialPeripheralInterface”,即串行外围接口。SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理器和数字信号解码器之间。SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几十Mbps。S

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

SPI接口的全称是”Serial Peripheral Interface”,即串行外围接口。SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理器和数字信号解码器之间。SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几十Mbps。

SPI接口主要有4根信号线,连接方式如下图所示:
(1)SCLK:串行时钟,用来同步数据传输,由主机输出;
(2)MOSI:Master Output Slave Input ,即主机输出,从机输入 数据线;
(3)MISO:Master Input Slave Output ,即主机输入,从机输出 数据线;
(4)SS: 片选线,低电平有效,由主机输出。主要是用在一个主机连接多个从机的情况,用来选择某一时刻跟主机进行通信的从机。
这里写图片描述

 根据不同的时钟极性(CPOL)及相位(CPHA)可以组合成4种工作模式:
(1) CPOL=0 ,CPHA=0
(2) CPOL=0 ,CPHA=1
(3) CPOL=1 ,CPHA=0
(4) CPOL=1 ,CPHA=1
CPOL时钟极性定义了时钟空闲状态时的电平,对传输协议没有太大影响。
CPOL=0 :时钟空闲状态时为低电平。
CPOL=1 :时钟空闲状态时为高电平。
CPHA时钟相位定义采样的时间:
CPHA=0 :在时钟的第一个跳变沿(上升沿或下降沿)进行采样。
CPHA=1 :在时钟的第二个跳变沿(上升沿或下降沿)进行采样。

SPI的4种工作模式如下图所示:
这里写图片描述
所以,在使用SPI通信时,主从机必须协商好使用哪种工作模式,只有工作模式一致才能正确的收发数据。
比如经常使用 CPOL=0 ,CPHA=0的这种工作模式:
主机不发送或接收数据时 CLK为低,在发送或接收数据时,产生周期性时钟,同时拉低片选信号,每个时钟的下降沿发送一位数据,在时钟的上升沿则采样一位数据。当接收或发送完数据后,拉高片选,拉低时钟信号。

总结:SPI通信时,数据的收发是在时钟不同的沿 同时 进行的。

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150382.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言学习——位运算

    C语言学习——位运算原码反码补码介绍原码 就是前面所介绍的二进制定点表示法,即最高位为符号位,“ 0 ”表示正,“ 1 ”表示负,其余位表示数值的大小。反码 表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。补码 表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加 1 。补码详细介绍补码是为了表示一个负数的二进制形式。其转化方式是,先将负数当成正数,转化成二进制…

    2022年8月18日
    6
  • 所谓的代码段、数据段

    所谓的代码段、数据段

    2021年8月20日
    62
  • sql中ddl和dml(sql与access的区别)

    分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.netDDL和DML之间的主要区别在于:DDL有助于更改数据库的结构,而DML有助于管理数据库中的数据。本质区别DDL代表数据定义语言(DataDefinitionLanguage),是一种有助于创建数据库模式的SQL命令。而DML代表数据操作语言(DataManipulationLanguage),是一种有助于检索和管理关系数据库中数据的SQL命令

    2022年4月15日
    78
  • JS代码大全

    JS代码大全事件源对象 event.srcElement.tagName event.srcElement.type捕获释放 event.srcElement.setCapture

    2022年7月1日
    25
  • 自己工作用到的 linux添加路由的方法

    自己工作用到的 linux添加路由的方法linux下添加路由的方法一、查看及添加临时路由1.查看路由(linux下)[root@nfs~]#route#同netstat-rnKernelIProutingtableDestinationGatewayGenmaskFlagsMetricRefUseIface192.168.90.2*255.255.255.255UH00

    2022年10月4日
    2
  • 主成分分析与因子分析及SPSS实现[通俗易懂]

    主成分分析与因子分析及SPSS实现[通俗易懂]主成分分析与因子分析及SPSS实现一、主成分分析(1)问题提出在问题研究中,为了不遗漏和准确起见,往往会面面俱到,取得大量的指标来进行分析。比如为了研究某种疾病的影响因素,我们可能会收集患者的人口学资料、病史、体征、化验检查等等数十项指标。如果将这些指标直接纳入多元统计分析,不仅会使模型变得复杂不稳定,而且还有可能因为变量之间的多重共线性引起较大的误差。有没有一种办法能对信息进行浓缩,减少变量的个…

    2022年5月17日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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