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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • html简单登录页面代码「建议收藏」

    html简单登录页面代码「建议收藏」图片必须是在Imges下的否则显示不出来(复制代码的话把图片换成你的图片就好了)代码如下<html><head><title>tes

    2022年6月13日
    34
  • idea 2021 mac 激活码(最新序列号破解)

    idea 2021 mac 激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    266
  • 磁盘分区类型和分区表的区别[通俗易懂]

    磁盘分区类型和分区表的区别[通俗易懂]任务1罗列磁盘分区的类型并做比较性介绍分类:FAT16、FAT32、NTFS、EXT2、EXT3、EXT4FAT16:磁盘分区最大只能到2GB、使用簇的大小不恰当、FAT16使用了16位的空间来表示每个扇区文件名长度有限制FAT32:相比FAT16会拥有更多的簇,更大空间容量上限为16TB根目录区(ROOT区)不再是固定区域、固定大小速度和FAT16一样快,对大磁盘利用率比FAT16好文件名长度有限制NTFS:备3个功能:错误预警功能、磁盘自我修复功能和日志功能安全性,

    2022年8月11日
    13
  • js call方法_recall

    js call方法_recallJacvaScript中的call()方法和apply()方法,1.每个函数都包含两个非继承而来的方法:call()方法和apply()方法。2.相同点:这两个方法的作用是一样的。都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖以运行的作用域。

    2025年8月9日
    1
  • Window永久关闭默认共享

    windows默认共享你如果是在这里关闭的,开机之后默认共享文件夹又是打开的。管理工具—计算机管理—共享文件夹–共享下面介绍一种简单的永久关闭默认共享文件夹。1.找到window的开机自启动文件夹,注:这是所有用户登录都会开机自启动文件夹。C:\ProgramData\Microsoft\Windows\StartMenu\Programs\StartUp2.创建一个bat脚本,然后开机就能自动关闭默认共享文件夹。…

    2022年4月7日
    54
  • qt通过OpenGL实现3d游戏开发框架

    qt通过OpenGL实现3d游戏开发框架开发环境:win8编程语言c++IDE:QtCreatoropengl版本:opengles3.0(可编程渲染管线,着色器语言)OpenGLES(OpenGLforEmbeddedSystems)是OpenGL三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,…

    2022年5月25日
    34

发表回复

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

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