0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是SPI?SPI的优点有哪些?

Q4MP_gh_c472c21 来源:CSDN 作者:kaivenscode 2021-06-21 15:41 次阅读

1、什么是SPI?SPI是串行外设接口(Serial Peripheral Interface)的缩写,是Motorola公司推出的一种同步串行接口技术,是一种高速、全双工、同步的通信总线。

2、SPI优点支持全双工通信

通信简单

数据传输速率块

poYBAGDQRAiARuoKAADo-rSz75g140.jpg

3、缺点没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据可靠性上有一定的缺陷。

4、特点(1):高速、同步、全双工、非差分、总线式

(2):主从机通信模式5、SPI电路连接

(1):SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,有三线制和四线制之分。信号线包括SDI(串行数据输入 Serial Digital IN)、SDO(串行数据输出 Serial Digital OUT)、SCLK(时钟)、CS(片选)。

(2):SDO/MOSI – 主设备数据输出,从设备数据输入

(3):SDI/MISO – 主设备数据输入,从设备数据输

(4):SCLK – 时钟信号,由主设备产生;

(5):CS/SS – 从设备使能信号,由主设备控制。当有多个从设备的时候,因为每个从设备上都有一个片选引脚接入到主设备机中,当主设备和某个从设备通信时将需要将从设备对应的片选引脚电平拉低(一般低有效)。

pYYBAGDQRAKAfWZDAACUNZDRmMg672.jpg

6、SPI通信模式分析SPI通信有4种不同的模式,不同的从设备在出厂时配置模式已经固定, 这是不能改变的,但通信双方设备必须工作在同一模式下,所以可以对主设备的SPI模式进行配置,通过CPOL(时钟极性)和CPHA(时钟相位)来控制主设备的通信模式。

具体模式具体如下:

:CPOL=0,CPHA=0

Mode1:CPOL=0,CPHA=1

Mode2:CPOL=1,CPHA=0

Mode3:CPOL=1,CPHA=1

模式CPOLCPHA

Mode000

Mode101

Mode210

Mode311

时钟极性CPOL是用来配置SCLK电平的有效态的;

时钟相位CPHA是用来配置数据采样是发生在第几个边沿的。 CPOL=0表示当SCLK=0时处于空闲态,所以SCLK处于高电平时有效;

CPOL=1表示当SCLK=1时处于空闲态,所以SCLK处于低电平时有效;

CPHA=0表示数据采样是在第1个边沿,数据发送在第2个边沿;

CPHA=1表示数据采样是在第2个边沿,数据发送在第1个边沿; SPI主模块和与之通信的外设通信时,两者的时钟相位和极性应该保持一致。7、SPI 时序详解CPOL=0,CPHA=0:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在上升沿,数据发送是在下降沿。 CPOL=0,CPHA=1:此时空闲态时,SCLK处于低电平,数据发送是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。 CPOL=1,CPHA=0:此时空闲态时,SCLK处于高电平,数据采集是在第1个边沿,也就是SCLK由高电平到低电平的跳变,所以数据采集是在下降沿,数据发送是在上升沿。 CPOL=1,CPHA=1:此时空闲态时,SCLK处于高电平,数据发送是在第1个边沿,也就是SCLK由高电平到低电平的跳变,所以数据采集是在上升沿,数据发送是在下降沿。

poYBAGDQQ_uAWjhBAAGJtgOANHA880.jpg

注意:SPI主设备能够控制时钟信号,因为SPI通信并不像UART或者IIC通信那样有专门的通信周期、通信起始信号、通信结束信号;所以SPI协议只能通过控制时钟信号线,在没有数据交流的时候,时钟线要么是保持高电平,要么是保持低电平。 例如:工作在模式0这种时序(CPOL=0,CPHA=0),如下:

poYBAGDQQ_WAIbXFAADsmFCjIsc371.jpg

我们来关注SCK的第一个时钟周期,在时钟的前沿采样数据(上升沿,第一个时钟沿),在时钟的后沿输出数据(下降沿,第二个时钟沿)。首先来看主器件,主器件的输出口(MOSI)输出的数据bit1,在时钟的前沿被从器件采样,那主器件是在何时刻输出bit1的呢?bit1的输出时刻实际上在SCK信号有效以前,比SCK的上升沿还要早半个时钟周期。bit1的输出时刻与SSEL信号没有关系。再来看从器件,主器件的输入口MISO同样是在时钟的前沿采样从器件输出的bit1的,那从器件又是在何时刻输出bit1的呢。从器件是在SSEL信号有效后,立即输出bit1,尽管此时SCK信号还没有起效。 从这张图就可以很清楚的看出主从器件的bit1是怎样输出的。

poYBAGDQQ--ADHJvAAECHJlf9Y8259.jpg

原文:https://blog.csdn.net/kai_zone/article/details/78038716
责任编辑:lq6

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1613

    浏览量

    89585

原文标题:SPI怎么玩?搞懂时序,运用自如

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    硬件spi和软件spi的区别

    硬件SPI(串行外设接口)和软件SPI是两种不同的SPI传输方式。SPI是一种同步串行数据通信协议,通常用于连接微控制器和外部设备,如存储器、传感器和显示屏等。 硬件
    的头像 发表于 12-26 16:55 1999次阅读

    什么是SPISPI防火墙的优点

    SPI防火墙(Stateful Packet Inspection Firewall)是一种用于网络安全的防火墙技术。SPI防火墙是一种全状态数据包检测型防火墙,主要通过检查网络数据包的状态信息
    的头像 发表于 11-29 09:42 352次阅读

    SPI上拉合不上拉的区别 UART和SPI的主要区别

     使用SPI接口时,需要根据具体的外设和系统需求来配置SPI的参数,如通信速度、数据位宽、主从模式等。主设备通过操作SPI相关的寄存器或调用相应的库函数来控制数据传输和通信。从设备则根据SPI
    的头像 发表于 11-10 16:47 3834次阅读

    单片机spi接口的使用方法有哪些(spi接口和串口的区别)

    如果单片机没有硬件SPI模块,或者需要额外的IO引脚来实现多个SPI设备的通信,可以使用软件SPI模拟。软件SPI通常使用GPIO口模拟SPI
    的头像 发表于 11-10 16:38 1605次阅读

    什么是SPI机制

    1、前言 在之前的 JVM 分析系列之类加载 提到过 Java SPI 机制,主要是类加载器反双亲委派的实现(第三方包不在指定jdk路径,一般类加载器无法加载,需要特殊
    的头像 发表于 10-08 15:03 563次阅读
    什么是<b class='flag-5'>SPI</b>机制

    SPI总线学习笔记

    SPI是一种全双工的串行通信总线,最早由Motorola提出,虽然应用广泛,但没有一个统一的总线标准。相较于IIC总线,SPI具有通信速度快、协议灵活、无复杂的总线仲裁机制、支持中断等优点,但缺点
    发表于 09-20 15:17 501次阅读
    <b class='flag-5'>SPI</b>总线学习笔记

    如何使用RS232转SPI实现串口和SPI接口的转换?

    如何使用RS232转SPI实现串口和SPI接口的转换? RS232转SPI是一种将串口和SPI接口进行转换的技术,通常在需要将串口设备连接到SPI
    的头像 发表于 09-14 17:52 1276次阅读

    STM32 SPI基础内容

    SPI,全称为 Serial Peripheral Interface(串行外设接口) ,是一种用于短距离通信的同步串行通信接口,主要应用在嵌入式系统。 SPI的应用场合很广,显示模组、时钟芯片
    的头像 发表于 08-19 09:14 2573次阅读
    STM32 <b class='flag-5'>SPI</b>基础内容

    MindSDK应用基础—SPI模块样例简介

    MindSDK为MM32主流的微控制器,实现了一系列SPI驱动的样例工程。本文通过讲解 SPI 模块的样例工程,介绍 SPI 模块的功能和用法。
    的头像 发表于 08-10 17:14 742次阅读

    标准4线SPI四根线有哪些

    SPI hardware SPI:Serial Perripheral Interface,串行外围设备接口,由 Motorola 公司提出,是一种高速、全双工、同步通信总线。SPI 以主从方式工作
    的头像 发表于 07-27 10:26 4677次阅读
    标准4线<b class='flag-5'>SPI</b>四根线有哪些

    SPI子系统:SPI设备驱动

    SPI 设备驱动 【设备】声明在设备树中 注意:设备的声明,slave device node 应该包含在你所要挂载的 } /* remove 函数 */ static int xxx_remove
    的头像 发表于 07-25 11:05 580次阅读
    <b class='flag-5'>SPI</b>子系统:<b class='flag-5'>SPI</b>设备驱动

    SPI通用接口层介绍

    SPI 通用接口层 SPI 通用接口层把具体的 SPI 设备的协议驱动和 SPI 控制器驱动连接在一起。 负责 SPI 系统与 Linux
    的头像 发表于 07-25 10:52 470次阅读

    STM32的SPI控制器实现SPI

    SPI是一种高速的,全双工,同步的通信总线,原理和使用简单,占用引脚资源少,是一种常用的通信方式。STM32通常有2~3个SPI接口。
    发表于 07-22 11:47 1776次阅读
    STM32的<b class='flag-5'>SPI</b>控制器实现<b class='flag-5'>SPI</b>

    SPI是什么 SPI数据传输

    数据传输 SPI 的英文全称为 Serial Peripheral Interface,顾名思义为串行外设接口。 SPI 是一种同步串行通信接口规范,主要应用于嵌入式系统中的短距离通信。该接口
    的头像 发表于 07-21 10:03 4954次阅读

    如何改变spi的时钟频率?

    如何改变spi的时钟频率? 改变SPI的时钟频率需要以下步骤: 1. 选择合适的时钟源和分频器:SPI接口的时钟源可以是内部时钟或外部时钟,需要根据具体情况选择;同时需要根据所需的SPI
    的头像 发表于 06-03 16:36 2310次阅读