SPI 通信协议 最详细解读!!!

这篇具有很好参考价值的文章主要介绍了SPI 通信协议 最详细解读!!!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SPI(Serial Peripheral Interface,串行外围接口)是一种高速、全双工、同步的通信总线,主要应用在EEPROM、FLASH、实时时钟、AD转换器上,以及数字信号处理器和数字信号解码器之间。

信号线

SPI有四根信号线:

  • MOSI:Master Output Slave Input,主机向信号线上输出数据,从机读取。

  • MISO:Master Input Slave Output,从机向信号线上输出数据,主机读取。

  • SCLK:Serial Clock,串行时钟信号。由主机产生并发送给从机。

  • SS/CS:Slave Select,片选信号。通常是低电平有效,由主机输出,在主设备连接多个从设备时用来控制与哪个从设备通信。

如果主机连接多个从设备时,则每个从设备上都需要有一个片选引脚接入到主设备机中,当我们的主设备希望和某个从设备通信时,需要将对应从设备的片选引脚电平拉低。同时,SPI协议还规定时钟信号必须由主机提供给从机,从机自身不能产生和控制时钟信号,没有时钟信号同步从机不能正常工作。

spi时钟频率和数据传输率,通信协议,单片机,嵌入式硬件,linux,windows,risc-v,Powered by 金山文档

传输方式

SPI总线上的主机必须在通信开始时候配置并生成相应的时钟信号,然后再进行数据传输。主机向MOSI信号线传送数据给从机,同时,从机也必须将一些内容通过MISO信号线返回给主机,也就是说,每隔时钟周期内,都在发生全双工数据通信。时钟信号的作用就是保证两个设备之间的传输始终是同步的。

即使只进行单向数据传输,也要保证主机和从机时刻都有数据交换,两者必须要互相发送一些东西,接收方只需要忽略即可。这种情况我们称为虚拟数据。

时钟配置

SPI协议需要对时钟进行配置,一般配置下面三个参数:

  • 时钟频率:理论上讲,时钟频率可以任何想要的速率,实际上会受限于每个系统能提供多大的系统时钟频率,以及最大的SPI传输速率。

时钟极性:Clock Polarity,CPOL,表示SPI总线的极性。CPOL = 0,表示时钟空闲时是低电平;CPOL = 1,表示时钟空闲时是高电平。

spi时钟频率和数据传输率,通信协议,单片机,嵌入式硬件,linux,windows,risc-v,Powered by 金山文档

时钟相位:Clock Phase,CPHA,表示SPI总线的相位。一个时钟周期会有2个跳变沿,SPHA决定了接收端在时钟信号的哪一个跳变沿对接收数据进行采样。CPHA = 0,表示从第一个跳变沿开始采样;CPHA = 1:表示从第二个跳变沿开始采样。

spi时钟频率和数据传输率,通信协议,单片机,嵌入式硬件,linux,windows,risc-v,Powered by 金山文档

CPOL和CPHA可以组合出四种工作模式,可以根据不同器件的支持情况和自己的需求进行选择和配置。

举例

spi时钟频率和数据传输率,通信协议,单片机,嵌入式硬件,linux,windows,risc-v,Powered by 金山文档
spi时钟频率和数据传输率,通信协议,单片机,嵌入式硬件,linux,windows,risc-v,Powered by 金山文档

优缺点

SPI的优点:

  1. 支持全双工通信,独立的MISO、MOSI可以同时发送和接收数据。

  1. 通信简单。

  1. 数据传输速率快,比I2C快几乎两倍。

  1. 无起始位和停止位,因此数据可以持续传输不会中断。

SPI的缺点:

  1. 没有指定的流控制,没有应答机制确认是否接收到数据,与I2C相比在数据可靠性上有一定的缺陷。

  1. 使用四根线,I2C、UART只使用两根线。

  1. 没有任何形式的错误检查,UART有奇偶校验位。

I2C和SPI异同点

相同点

  • 串行、同步

  • 采用TTL电平,传输距离近

  • 采用主从方式(I2C一个或多个主机和一个或多个从机;SPI一个主机和一个或多个从机)

不同点

  • I2C半双工;SPI全双工

  • I2C有应答机制;SPI无应答机制

  • I2C通过向总线广播从机地址来寻址(节省硬件资源);SPI通过向对应从机发送使能信号来寻址(寻址速度快)

  • I2C时钟极性和时钟相位固定;SPI时钟极性和时钟相位不固定(主从一致)文章来源地址https://www.toymoban.com/news/detail-557280.html

到了这里,关于SPI 通信协议 最详细解读!!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SPI通信协议

    本文重点介绍的是SPI通信协议,内容是来自野火视频教程,本人只是做一些简单的记录和总结。 `

    2024年02月06日
    浏览(38)
  • 【【STM32-SPI通信协议】】

    STM32-SPI通信协议 •SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线 •四根通信线:SCK(Serial Clock)、MOSI(Master Output Slave Input)、MISO(Master Input Slave Output)、SS(Slave Select) •同步,全双工 •支持总线挂载多设备(一主多从) 既然是同步的,我们就会发

    2024年02月12日
    浏览(38)
  • 一文搞懂SPI通信协议

    目录 1、简介 2、通信原理 3、通信特性 3.1、设备选择 3.2、设备时钟 3.2.1、时钟速率 3.2.2、时钟极性 3.2.3、时钟相位 3.3、四种模式 4、多从机模式 5、SPI优缺点 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是美国摩托罗拉公司(Motorola)最先推出的一种同步串行传输规范

    2023年04月10日
    浏览(33)
  • 【STM32学习】——SPI通信协议&SPI时序&W25Q64存储芯片&软件SPI读写

    目录 前言 一、SPI通信协议 1.概述​ 2.硬件电路  3.移位示意图 二、SPI时序 1.时序基本单元 2.完整时序波形 三、W25Q64存储芯片 1.芯片简介  2.硬件电路引脚定义  3.芯片框图 4.Flash操作注意事项 四、软件SPI读写W25Q64 五、SPI通信外设 总结 声明:学习笔记来自江科大自化协B站教

    2024年02月09日
    浏览(58)
  • STM32使用SPI协议主从通信

    目录 前言 一、理论部分      SPI简介   SPI特征 SPI物理层 SPI协议层 SPI配置过程 SPI数据发送与接收过程 二、代码部分 主机代码 从机代码 这是一篇学习笔记,记录自己学习SPI通信。方便之后运用的时候回顾。参考《STM32中文参考手册》          SPI 协议是由摩托罗拉公

    2024年02月13日
    浏览(42)
  • 串行通信协议UART,IIC,SPI的对比分析

    常见串行通信有三个,即UART (Universal Asynchronous Receiver/Trasmitter,异步串行收发器),IIC,SPI。下面将分别介绍三种串行通信的过程。 UART是一种异步全双工串行通信协议。UART通信就是常说的串口通信。其数据传输方式为: 1.串口通信的信号线只需要两条线就可以完成,即发

    2024年02月13日
    浏览(32)
  • STM32 SPI通信协议1——协议基本原理及管脚定义

            SPI全称为 Serial Peripheral interface ,译为 串行外围设备接口 。SPI主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号编码器之间。         SPI是一种高速,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,

    2024年01月25日
    浏览(40)
  • 【LabVIEW FPGA入门】LabVIEW FPGA 实现SPI通信协议

            该实现由两个组件组成:在 LabVIEW FPGA 中实现的 SPI 协议以及用于从主机 PC 或实时控制器与 FPGA 进行通信的 LabVIEW 主机接口。该架构允许从单个主机程序控制多个 SPI 端口,同时仍然允许定制 FPGA VI 以进行其他数据采集和处理。该实现不使用任何DMA(直接内存访问

    2024年01月17日
    浏览(52)
  • STM-32:SPI通信协议/W25Q64简介—软件SPI读写W25Q64

    SPI是串行外设接口(Serial Peripheral Interface)的缩写,是美国摩托罗拉公司(Motorola)最先推出的一种同步串行传输规范,也是一种单片机外设芯片串行扩展接口,是一种高速、全双工、同步通信总线,所以可以在同一时间发送和接收数据,SPI没有定义速度限制,通常能达到甚

    2024年02月16日
    浏览(43)
  • 串行通信协议(I2C、SPI、UART、SCCB、CAN)

    推荐一部书,在这本书里面介绍了I2C、SPI、UART和CAN等通信协议,写的蛮不错的。 串行通信 :设备与设备之间,传输数据按顺序依次1bit位接1bit位进行传输。 并行通信 :设备与设备之间,通过多条传输线,可以同时传输多个bit位的信号。 1.简单的双向两线制总线协议标准、半

    2024年02月14日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包