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

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

3天内不再提示

【硬见小百科】SPI总线是什么?

云创硬见 2019-01-03 12:30 次阅读

SPI全称是串行外设接口(Serial Peripheral Interface),是由Motorola提出的一种全双工(全双工指可以同时(瞬时)进行信号的双向传输(A→B且B→A))同步串行通信接口通信波特率可以高达5Mbps,但具体速度大小取决于SPI硬件

SPI总线只需四条线就可以完成MCU与各种外围器件的通讯。

1)MOSI(SDI )–Master数据输出,Slave数据输入;

2)MISO (SDO)– Master数据输入,Slave数据输出;

3)SClK– 时钟信号,由Master产生;

4)/CS– Slave使能信号,由Master控制。

SPI通信就是采用这样的主从模式(Master-Slave)架构,一般为一个Master和多个Slave的应用模式。切记,谁为主,谁提供SCLK时钟信号。

SPI通讯就需要这四根线。其中,CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时,对此芯片的操作才有效。这就允许在同一总线上连接多个SPI设备成为可能。接下来再负责通讯的3根线就可以了。

SPI也是串行通讯协议,也就是说数据是一位一位的传输的。这就是SCLK时钟线存在的原因,由SCLK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。操作时序很简单,如下:

看见时序图了,就知道怎么通讯了。SPI接口在Master控制下产生的从器件使能信号和时钟信号,两个双向移位寄存器按位传输进行数据交换,传输数据高位在前,低位在后(MSB first)。在SCK的下降沿上数据改变,上升沿一位数据被存入移位寄存器。

换个说法,SPI是一个环形总线结构,主要是在sck的控制下,两个双向移位寄存器进行数据交换。对于主机来说,上升沿发送、下降沿接收、高位先发送。

上升沿到来的时候,sdi上的电平将被发送到从设备的寄存器中。从M_Sbuff寄存器的7位,发送到S_Sbuff寄存器的0位;

下降沿到来的时候,sd噢上的电平将被接收到主设备的寄存器中。从S_Sbuff寄存器的7位,发送到M_Sbuff寄存器的0位;

一个完整的传送周期是16位,即两个字节,因为,首先主机要发送命令过去,然后从机根据主机的命令准备数据,主机在下一个8位时钟周期才把数据读回来。

SPI总线比IIC总线传输数据省事。之前用过的IIC通讯,又有起始位,又有停止位的。SPI比较豪爽,对于主机来说,有上升沿就写一位,有下降沿就读一位。因为这样,SPI能够不等8位数据都传完就停止。没有了主机发出的SCLK脉冲,就不再有数据交换了。需要注意的是:我们的主设备能够控制时钟,因为我们的SPI通信并不像UART或者IIC通信那样有专门的通信周期,有专门的通信起始信号,有专门的通信结束信号;所以我们的SPI协议能够通过控制时钟信号线,当没有数据交流的时候我们的时钟线要么是保持高电平要么是保持低电平。

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

    关注

    4

    文章

    100

    浏览量

    27442
收藏 人收藏

    评论

    相关推荐

    浅析i2c总线spi总线的区别

    SPI总线需要4根(最少)或更多的线路,包括主设备的主时钟(SCK),主设备发送数据的主输出(MOSI),主设备接收数据的主输入(MISO)以及用于片选(Chip Select)的信号线(SS)。
    发表于 02-02 16:24 840次阅读
    浅析i2c<b class='flag-5'>总线</b>和<b class='flag-5'>spi</b><b class='flag-5'>总线</b>的区别

    蓝牙串口通讯总线——I2C/SPI/UART

    嵌入式工程师在做串口通信调试工作的时候,会经常用到I2C、SPI、UART这3条总线,I2C、SPI、UART这三种通信总线在嵌入式领域很常见,目前主流的SOC芯片都内置了这三种
    的头像 发表于 01-22 09:41 389次阅读
    蓝牙串口通讯<b class='flag-5'>总线</b>——I2C/<b class='flag-5'>SPI</b>/UART

    SPI总线限制及其在隔离系统中的处理方法

    电子发烧友网站提供《SPI总线限制及其在隔离系统中的处理方法.pdf》资料免费下载
    发表于 11-27 10:18 0次下载
    <b class='flag-5'>SPI</b><b class='flag-5'>总线</b>限制及其在隔离系统中的处理方法

    I2C与SPI与UART:如何布局这些通用总线

    ,UART等协议与下游MCU或可编程IC进行接口。I2C总线SPI总线和UART总线之间的区别很简单,任何使用MCU的设计人员都应该知道如何为这些协议设置路由和布局。
    的头像 发表于 11-08 17:33 425次阅读
    I2C与<b class='flag-5'>SPI</b>与UART:如何布局这些通用<b class='flag-5'>总线</b>

    SPI总线协议介绍

    串行外围设备接口(Serial Peripheral Interface,SPI)是一种高速、全双工、同步通信总线,常用于单片机和E2PROM、FLASH、实时时钟、数字信号处理器等器件之间的通信,它主要是主从方式通信,通常只有一个主机和多个从机。
    发表于 09-21 18:24 642次阅读
    <b class='flag-5'>SPI</b><b class='flag-5'>总线</b>协议介绍

    SPI总线学习笔记

    SPI是一种全双工的串行通信总线,最早由Motorola提出,虽然应用广泛,但没有一个统一的总线标准。相较于IIC总线SPI具有通信速度快
    发表于 09-20 15:17 505次阅读
    <b class='flag-5'>SPI</b><b class='flag-5'>总线</b>学习笔记

    SPI总线通信例程

    SPI是一种同步、高速、全双工的通信总线,全称为Serial Peripheral Interface(串行外设接口),由Motorola公司提出。在嵌入式系统设计时,常使用SPI接口连接一些传感器
    发表于 08-16 06:05

    求问用过SPI总线的大神,有没有做过SPI总线模拟SGPIO总线

    无意间看到SGPIO总线SPI总线有很多相似的地方,SGPIO是四根线,三根主设备线是必须线,从设备数据发送线可以不要,然后SPI总线也是
    发表于 06-16 06:53

    射频导纳开关料位计-百科

    射频导纳
    嘉可自动化仪表
    发布于 :2023年06月15日 12:35:50

    ECSPI不是和标准的SPI重合吗?

    没有任何关系。 但根据维基百科,CPHA 似乎依赖于 CPOL。 ECSPI不是和标准的SPI重合吗? 下面是来自维基百科的描述。 CPOL 决定时钟的极性。可以使用简单的反相器转换极性。 CPOL
    发表于 06-08 09:44

    SPI总线协议的基础知识

    SPI,是英语 Serial Peripheral Interface 的缩写顾名思义就是串行外围设备接口。SPI是一种高速的,全双工,同步的通信总线, 并且在芯片的管脚上只占用四根线。
    发表于 06-07 15:40 4268次阅读
    <b class='flag-5'>SPI</b><b class='flag-5'>总线</b>协议的基础知识

    STM32中的SPI总线介绍

    SPI是由摩托罗拉(Motorola)公司开发的全双工同步串行总线,是微处理控制单元(MCU)和外围设备之间进行通信的同步串行端口。主要应用在EEPROM、Flash、实时时钟(RTC)、数模转换器(ADC)、网络控制器、MCU、数字信号处理器(DSP)以及数字信号解码器
    发表于 06-07 15:35 4517次阅读
    STM32中的<b class='flag-5'>SPI</b><b class='flag-5'>总线</b>介绍

    雷达物位计-百科

    雷达物位计
    嘉可自动化仪表
    发布于 :2023年06月03日 09:47:24

    生态伙伴 | 创大赛新起航!携手华强创广场,助力科技创业者

    、华强集团生态资源对接等系列支持。 华强创广场作为 本届大赛华南分赛区联合主办单位 ,同时也是 华秋创生态合作伙伴之一 ,希望共同助力科技创业者。 权益介绍 助力第九届中国硬件创新创客大赛,华强
    发表于 05-16 09:51

    串行通信SPI总线的详解分析

      SPI(Serial Peripheral Interface)总线系统是一种同步串行外设接口,可以是MCU与各种外围设备以串行方式进行通信以交换信息,该接口一般使用4条线:串行时钟线(SCLK
    的头像 发表于 05-05 16:40 3118次阅读
    串行通信<b class='flag-5'>SPI</b><b class='flag-5'>总线</b>的详解分析