精华内容
下载资源
问答
  • SPI总线详解
    2021-08-14 14:23:28

    SPI总线详解

    一、SPI简介

    SPI英文全称(Serial Perripheral Interface),即串行外围设备接口,是一种同步全双工串行接口,MCU可以通过SPI方式与各种外围设备进行高速数据通信

    二、SPI协议

    2.1 软件协议

    SPI是四线通讯协议,有4条逻辑线,这四根线功能如下:

    连线功能
    CS用于 Master 设备片选 Slave设备, 使被选中的 Slave 设备能够被 Master 设备所访问
    SCK主要的作用是 Master 设备往 Slave 设备传输时钟信号, 控制数据交换的时机以及速率
    MISOMaster Out Slave Input 主机输入数据,从机输出数据
    MOSIMaster InputSlave Out 主机输出数据,从机输入数据

    4线SPI进行通讯时首先拉低CS片选信号选中目标从机,因为SPI可以进行多机通讯,然后SCK要产生连续的脉冲信号,在每个SCK信号的边沿MISO线上的数据(高电平为1,低电平为0,电平由Slave控制)传输到主机Master而MOSI线上的数据(高电平为1,低电平为0,电平由Master控制)传输到从机Slave,参考协议图如下:CS拉低后,在SCK边沿MISO发送1到主机,MOSI发送0到从机

    img

    以上就是SPI通讯大致流程,除此之外SPI通讯协议根据SCK空闲电平的高低时钟脉冲的第一个边沿还是第二个边沿传数据可以分为4种,四种模式我列在下表:

    模式特点
    模式1SCK空闲电平为低电平,数据传输在SCK的第一个边沿
    模式2SCK空闲电平为低电平,数据传输在SCK的第二个边沿
    模式3SCK空闲电平为高电平,数据传输在SCK的第一个边沿
    模式4SCK空闲电平为高电平,数据传输在SCK的第二个边沿

    2.2 硬件SPI

    SPI通讯一般是基于硬件SPI收发器进行通讯的,主机和从机间都有一个SPI收发器,收发器的简图如下:

    请添加图片描述

    简图上主要描述了3个寄存器类别:

    寄存器功能
    SSPBUF(Synchronous Serial Port Buffer)指SPI设备里面的内部缓冲区, 一般以FIFO(先进先出)方式临时存储数据
    SSPSR(Synchronous Serial Port Register)指SPI 设备里面的移位寄存器(Shift Regitser),它的作用是根据设置好的位宽把数据移入或者移出SSPBUF
    Controller指控制寄存器组,配置SPI总线的传输模式

    使用流程: 用户配置控制寄存器组,装载数据到SSPBUF缓冲区,拉低CS,启动SCK电平后,在SCK产生边沿信号是,通过移位寄存器将0/1信号传输到主机或者从机,硬件SPI通讯用户只需要配置速率,位宽,拉低片选传入数据就行,具体的协议传输过程则有收发器自己完成,减少CPU的负担,传输稳定且方便,缺点就是需要借助硬件资源,成本较高

    2.3 软件SPI

    SPI的实现除了通过硬件SPI来实现,也可以通过软件SPI进行实现,软件SPI就是用IO口模拟SPI端口的协议,这总方向代码编写比较麻烦,但是对硬件资源要求不高,可扩展性强

    如果要编写软件SPI代码可以参考这篇文章: 软件模拟SPI接口程序代码(4种模式)

    三、SPI协议特点

    3.1 采用主- 从控制模式

    两个SPI 设备之间通信必须由主设备 (Master) 来控制从设备(Slave),一个 Master 设备可以通过提供 SCK信号进而控制是否数据传输,并且在多从机控制时,与IIC通过地址选择从机不同,SPI协议使用片选CS对 Slave 设备进行选择,达到多从机选择通信的目的

    3.2 同步通信

    SPI通信方式属于同步通信,首先了解一下同步和异步通信区别

    • 同步通信: 同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息,在没有信息要传输时,要填上空字符进行传输,而不是选择停止通信,因为同步传输不允许有间隙

    • 异步通信: 异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的,因为每一个字符的开始和结束的地方都有设置标志位,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来

    参考文章:同步通信与异步通信区别

    3.3 全双工通信

    SPI通信时是全双工通信,双工指的是主机与从机可以进行双向通信全双工指双向通信可以同时进行,半双工指的是双向通信不能同时进行,以其他方式比如一发一回的形式进行,此处SPI通信在每个时钟边沿到来时进行了双向数据交换,交换是同时进行的,所以SPI是全双工、而IIC通信不能同时进行双向通信,所以他是半双工通信

    四、其他文章推荐

    你和PID调参大神之间,就差这篇文章!

    神器!200元开发板运行神经网络模型,吊打OpenMV!(保姆级教程)

    51单片机多线程神器:Tiny-51操作系统

    用树莓派做服务器运行博客网页

    更多相关内容
  • SPI总线通信的电路设计详细说明[摘要] 由于SPI(setial peripheralinterface) 总线占用的接口线少,通信效率高,并且支持大部分处理器芯片,因而是一种理想的选择。SPI 是利用4 根信号线进行通信的串行接口协议,...
  • SPI总线-协议规范.pdf

    2020-04-11 15:42:29
    SPI总线规范,Motorola出版,定义了SPI的时序,原理等,硬件和驱动开发者需要研究学习。 SPI总线规范,Motorola出版,定义了SPI的时序,原理等,硬件和驱动开发者需要研究学习。
  • 摩托罗拉SPI总线协议规范
  • 一个完整的单片机系统,通常包括键盘输入、显示输出、打印输出、数据采集等许多功能模块。这些功能模块一般是通过I/O端口实现与单片机的数据交换,但是单片机的I/O端口有限,且一般用来处理...本文通过对支持SPI总线
  • MCS-51系列单片机中由于部分型号不带SPI串行总线接口而限制了其在SPI总线接口器件的使用。文中介绍了SPI串行总线的特征和时序,并以串行E2PROM为例,给出了在51系列单片机上利用I/O口线实现SPI串行总线接口的方法和...
  • SPI总线上挂接多个X5045的读写操作
  • SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。 SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个...
  • 引言  串行接口已成为当前传输接口的发展趋势...因此基于FPGA的具有SPI总线接口的FLASH功能实现为工程设计提供了一种原型,为进一步的工程开发奠定了基础。  1 SPI总线介绍  1.1 SPI总线简介  SPI目前有3种规格SPI
  • SPI总线

    2022-03-07 13:10:23
    SPI总线

    目录

    SPI简介

    寻址方式

    通信过程 

    极性和相位 

    IIC和SPI的异


    SPI简介

    SPI(Serial Peripheral Interface)是串行外设接口的缩写,SPI是一种高速的、全双工、同步的串行通信总线;SPI采用主从方式工作,一般有一个主设备和一个或多个从设备; SPI需要至少4根线,分别是MISO(主设备输入从设备输出)、MOSI(主设备输出从设备输入)、SCLK(时钟)、CS(片选)SPI使用引脚较少且布线方便,所以越来越多的芯片集成了这种通信协议;

    寻址方式

    当主设备要和某个从设备进行通信时,主设备需要先向对应从设备的片选线上发送使能信号(高电平或者低电平,根据从机而定)表示选中该从设备

    通信过程 

    SPI总线在进行数据传送时,先传送高位,后传送低位;数据线为高电平表示逻辑‘1’,低电平表示逻辑‘0’;一个字节传送完成后无需应答即可开始下一个字节的传送; SPI总线采用同步方式工作,时钟线在上升沿或下降沿时发送器向数据线上发送数据,在紧接着的下降沿或上升沿时接收器从数据线上读取数据,完成一位数据传送,八个时钟周期即可完成一个字节数据的传送;

    极性和相位 

    SPI总线有四种不同的工作模式,取决于极性(CPOL)和相位(CPHL)这两个因素

     CPOL表示SCLK空闲时的状态

              CPOL=0,空闲时SCLK为低电平

              CPOL=1,空闲时SCLK为高电平

     CPHA表示采样时刻

              CPHA=0,每个周期的第一个时钟沿采样

              CPHA=1,每个周期的第二个时钟沿采样

    需要说明的是,对于一个特定的从设备来说,一般在出厂时就会将其设计为某种特定的工作模式;我们在使用该设备时就必须保证主设备的工作模式和该从设备保持一致,否则是无法进行通信的;所以一般我们需要对主设备的CPOL和CPHA进行配置;


    IIC和SPI的异同

     相同点

        1.均采用串行、同步的方式

        2.均采用TTL电平,传输距离和应用场景类似

        3.均采用主从方式工作

    不同点

        1.IIC为半双工,SPI为全双工

        2.IIC有应答机制,SPI无应答机制

        3.IIC通过向总线广播从机地址来寻址,SPI通过向对应从机发送使能信号来寻址

        4.IIC的时钟极性和时钟相位固定,SPI的时钟极性和时钟相位可调

    展开全文
  • 摘要:MCS51系列、MCS96系列等单片机由于都不带SPI串行总线接口而限制了其在SPI总线接口器件的使用。文中介绍了SPI串行总线的特征和时序,并以串行E2PROM为例,给出了在51系列单片机上利用I/O口线实现SPI串行总线...
  • SPI总线是能够克服上述缺点的一种外围串行总线,其能很好地满足要求。通过使用Lattice公司的FPGA芯片以及工程开发软件,特别是在线逻辑分析仪这一先进的EDA工具,实现了基于FPGA的SPI接口的连接。将FPGA编程的灵活性...
  • MCS-51系列单片机中由于部分型号不带SPI串行总线接口而限制了其在SPI总线接口器件的使用。文中介绍了SPI串行总线的特征和时序,并以串行E2PROM为例,给出了在51系列单片机上利用I/O口线实现SPI串行总线接口的方法和...
  • 摘 要: 以SPI总线技术为基础,用微控制器S3C2450X和电平转换芯片MAX3088设计了一个RS-422接口电路,将SPI单端非平衡传输信号转换为RS-422差分信号。在保证SPI同步传输的高效性和高速性的同时,还增强了信号的抗...
  • 在日常生活中,我们几乎每天都在用USB总线,但是在低端一些的数字通信应用领域,I2C和SPI总线就像USB一样流行。今天我们就来介绍一下这两位大佬,谈谈它们之间的区别及联系。
  • 若能提供一种通用可配置可移植的GPIO模拟SPI总线的驱动则能很方便快捷的访问SPI设备,从而提高整个嵌入式系统的开发效率。本文针对GPIO口位寻址与否给出方面,给出了一种可配置GPIO模拟SPI总线的方法并详细介绍了其...
  • SPI总线协议及SPI时序图详解含实例
  • 根据实际项目需要,文中基于80C51F040单片机的SPI总线和AD7891芯片,设计实现了多路数据的高速采集。文中给出了系统的主要硬件电路和对时序控制的软件编程。  1 系统的硬件实现  本数据采集系统功能是能对多路...
  • 内含SPI总线协议,介绍了 SPI总线学习笔记
  • SPI总线技术是Motorola公司推出的一种同步串行接口。它用于CPU与各种外围器件进行全双工、同步串行通讯。它只需四条线就可以完成MCU与各种外围器件的通讯。文章介绍了SPI总线的特点、工作方式以及对常见错误进行了...
  • SPI总线协议规范

    2014-07-19 14:38:05
    spI总线协议规范 需要的速度啦 希望对学习的同学有所帮助
  • 来自 Motorola 的官方SPI总线协议权威文档。 来自 NXP 的官方QSPI总线的权威文档。 都是英文原版。 中文的在本人另外一个资源里面,有cypress、altera的SPI控制器中文官方手册。
  • 基于SPI总线的ARM与DSP通信协议设计
  • 通过STM8S003最小系统,用IO模拟SPI总线,驱动OLED液晶显示屏。
  • SPI总线技术为基础,用微控制器S3C2450X和电平转换芯片MAX3088设计了一个RS-422接口电路,将SPI单端非平衡传输信号转换为RS-422差分信号。在保证SPI同步传输的高效性和高速性的同时,还增强了信号的抗干扰能力。
  • SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。 SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个...
  • 摩托罗拉SPI总线协议规范 V03.06 版本 SPI BLOCK GUIDE V03.06 (英文版)
  • 基于FPGA的SPI总线接口设计与实现.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,504
精华内容 11,401
关键字:

spi总线