首页 > 其他分享 >SPI传输协议介绍

SPI传输协议介绍

时间:2024-04-03 10:01:32浏览次数:23  
标签:协议 传输 主机 SPI 从机 I2C 时钟

日期 版本 内容修改
2023/03/11 V0 初版

1. SPI协议

SPI(Serial Peripheral Interface)协议由Motorola公司推出。

1.1. 端口名称及含义

标准SPI有4条信号线。

  • MISO

    Master Input Slave Output :主机输入,从机输出(数据来自从机)。
    也可以是SIMO,DOUT,DO,SDO或SO(在主机端)。

  • MOSI

    Master Output Slave Input: 主机输出,从机输入(数据来自主机)。
    也可以是SOMI,DIN,DI,SDI或SI(在主机端)。

  • SCLK

    Serial CLocK :串行时钟信号,由主机产生发送给从机。
    也可以是SCK。

  • SS

    Slave Select :片选信号,由主机发送,以控制与哪个从机通信,通常是低电平有效信号,此时也可以叫做NSS。
    也可以是CE,CS或SSEL。

1.2. 主从机连接

典型的主从机间SPI连接[1]

image

1.3. 传输格式

典型的传输信号过程:

image

注意,先传输的是LSB,后传输的是MSB

SPI总线上的主机必须在通信开始时候配置并生成相应的时钟信号。在每个SPI时钟周期内,都会发生全双工数据传输。主机在MOSI线上发送一位数据,从机读取它,而从机在MISO线上发送一位数据,主机读取它。就算只进行单向的数据传输,也要保持这样的顺序。这就意味着无论接收任何数据,必须实际发送一些东西!在这种情况下,我们称其为虚拟数据。所以SPI的传输模式其实还是有些浪费的。特别是如果数据基本是从主机到从机的话,那么MISO就显得用处不大了。而SS在从机少的时候也显得并不是那么必要。

1.4. 传输模式

在以下表格中:CPOL(Clock POLarity)代表时钟极性,CPOL=0代表时钟空闲时置0,CPOL=1代表时钟空闲置1。而CPHA(Clock PHAse)代表时钟相位,CPHA=0代表时钟的第一个沿为有效沿,CPHA=1代表时钟的第二个沿为有效沿。

image

1.5. 多从机模式

如果需要多个从机,一般主机就需要对应数量的NSS:

image

必须只有一个NSS为低,其余为高,不然会发生混乱。

跟I2C采用拉高拉低来决定哪个从机仲裁成功的模式比起来,SPI的仲裁模式非常简单,但比较浪费。

1.6. SPI的优缺点

1.6.1. 优点

  1. 全双工串行通信。
  2. 高速数据传输速率。
  3. 简单的软件配置。
  4. 极其灵活的数据传输,不限于8位,它可以是任意大小的字(针对I2C说的)。
  5. 非常简单的硬件结构。从机不需要唯一地址(与I2C不同)。从机使用主机时钟,不需要精密时钟振荡器/晶振(与UART不同)。不需要收发器(与CAN不同)。

1.6.2. 缺点

  1. 没有硬件从机应答信号(主机可能在不知情的情况下无处发送)(针对I2C说的)。
  2. 通常仅支持一个主设备。
  3. 需要更多的引脚(与I2C不同)。
  4. 没有定义硬件级别的错误检查协议。
  5. 与RS-232和CAN总线相比,只能支持非常短的距离。

1.6.3. ISP烧写线

在烧写单片机时常用的线叫ISP(In-System Progamming)烧写线。其名字和SPI有点像。不过ISP接口正是用SPI协议进行传输的。如图是一种10pin-ISP接口的信号分布图。

image


  1. 知乎专栏: SPI协议讲解 ↩︎

标签:协议,传输,主机,SPI,从机,I2C,时钟
From: https://www.cnblogs.com/li2000/p/18112021/Digital-Protocol-SPI

相关文章

  • 应用层的http和https协议
    HTTP和HTTPShttp和https是什么?http常用的协议版本http/1.0http/1.1改进http/2.0改进http和https有什么区别?http和https是什么?  HTTP(超文本传输协议)是一种用于在网络上传输超文本数据的协议。它是一种客户端-服务器协议,用于从web服务器传输文本、图像、音频......
  • 【CHI协议-1】CacheLine状态
    从这一章开始就和大家一起分享一下CHI协议中具体的一些事务以及场景。今天主要梳理一下Read事务,但是要讲清楚这些乱七八糟的事务,还需要了解其他很多知识点,不然就是云里雾里的,比如cacheline的状态啊,什么是snoop啊,以及一致性节点啊等等。但是这些太多了,如果先要把这些都讲清楚......
  • scp与pscp公私钥条件下的文件传输
    一、常见用法scp是SecureCopyProtocol(安全复制协议)的缩写,可以在本地系统和远程系统之间复制文件,同时提供了数据加密和压缩功能,以确保数据在传输过程中的安全性和完整性。pscp是putty系列的工具,可以用在window平台作为scp的替代。远程>>本地[email protected]:/opt/s......
  • IP(Internet Protocol)是一种网络协议,用于在网络中发送和接收数据包
    IP(InternetProtocol)是一种网络协议,用于在网络中发送和接收数据包。它是一个无连接的、不可靠的数据报协议,负责将数据从源主机传输到目标主机。IP协议的主要功能包括寻址、路由和分段。寻址:IP协议为每个连接到网络的设备分配一个唯一的IP地址,这个地址用于在网络中识别设备......
  • 如何获取onvif协议的端口号?
    ONVIF协议本身并没有规定一个固定的端口号。这是因为不同的设备和应用场景可能会有不同的网络配置和需求。因此,ONVIF协议允许设备厂商根据实际情况自行设定端口号。这意味着,在使用ONVIF协议时,我们需要查看设备的文档或配置界面,以确定具体的端口号。一、常见ONVIF端口号虽然ONVI......
  • C#对接部标JT808协议实现北斗定位设备数据接收服务端
    一、前言介绍开发一套能够支撑几万台北斗定位设备数据接收的服务端,用于接收北斗定位器定位数据的平台。项目基于windows平台,C#语言开发框架NetFramework4.8,TCP主要基于SuperSocket用来构建一个服务器端Socket程序,JT808.ProtocolJT/T808协议快速开发包,开发工具采用了微软的Vis......
  • .NET Aspire 中的服务发现
    .NETAspire中的服务发现https://www.nuget.org/packages/Microsoft.Extensions.ServiceDiscovery.NETAspire中的服务发现.NETAspire包含了对于开发阶段和测试阶段配置服务发现的功能。该功能通过提供基于配置的服务端点解析器来实现,来自.NETAspireAppHost项目中的服......
  • 文件传输加密
    文件传输加密(原理)文章目录文件传输加密(原理)背景介绍加密算法运用算法(非对称加密算法)算法进阶运用(对称加密+非对称加密算法)背景介绍一般的文件传输都是通过用户将文件上传到服务器,然后服务器传输到数据库中保存,当再次需要查阅该文件时只需要在数据库中查找,就......
  • HTTP协议格式详解之首行信息解析
    HTTP(HypertextTransferProtocol)是一种用于传输超文本文档的应用层协议,通常用于在客户端和服务器之间传输网页、图片、视频等资源。它是建立在TCP/IP协议栈之上的应用层协议,使用标准的TCP连接来传输数据。HTTP的主要特点包括简单、灵活、可扩展性强等。在OSI(OpenSystemsInt......
  • Redis开源协议调整,我们怎么办?
    本文分享自华为云社区《Redis开源协议调整,我们怎么办?》,作者:华为云PaaS服务小智。2024年3月20日,Redis官方宣布,从Redis7.4版本开始,Redis将获得源可用许可证( RSALv2 )和服务器端公共许可证( SSPLv1 )的双重许可,时间点恰逢刚刚完成最新一轮融资,宣布的时机耐人寻味。 ......