首页 > 其他分享 >SPI协议

SPI协议

时间:2024-09-20 15:48:01浏览次数:7  
标签:协议 SCK Clock SPI 设备 数据 时钟

1、简介

​SPI协议是一种高速全双工同步串行通信协议,由一个主设备和一个或多个从设备组成。

​四线协议:MISO(Master Input Slave Output)/SDI(Serial Data Input)、MOSI(Master Output Slave Input)/SDO(Serial Data Output)、SCLK(Synchronous Clock)、CS(Chip Select)

1、MISO,主设备数据输入,从设备数据输出;

2、MOSI,主设备数据输出,从设备数据输入;

3、SCLK,同步时钟信号,由主设备产生;

4、CS,从设备使能(片选)信号,由主设备控制,低电平为选中。当总线上有多个从设备的时候,主设备如果需要和某个从设备通信,就将该设备对应的片选引脚拉低使能;

相比于I2C协议,SPI更加快速,但是由于没有相应的流控和应答机制,所以数据的可靠性上有一定的缺陷。

2、SPI总线传输模式

​ 主设备根据将要交换的数据来产生相应的时钟脉冲(Clock Pulse),时钟脉冲组成时钟信号(Clock Signal),时钟信号通过时钟极性(CPOL,Clock Polarity)和时钟相位(CPHA,Clock Phase)控制两个SPI设备何时交换数据以及何时对接收的数据进行采样。

  • CPOL(Clock Polarity,时钟的极性): 规约 SPI 总线在空闲时, SCK时钟信号是高电平1还是低电平0;
  • CPHA(Clock Phase,时钟的相位): 规约 SPI 设备是在SCK时钟信号上升沿还是下降沿触发数据采样;

​ SPI 总线传输一共有 4 种模式:

  1. 模式 0:CPOL= 0,CPHA=0。SCK 串行时钟线空闲是为低电平,数据在 SCK 时钟的上升沿被采样, 数据在 SCK 时钟的下降沿切换;

  2. 模式 1:CPOL= 0,CPHA=1。SCK 串行时钟线空闲是为低电平,数据在 SCK 时钟的下降沿被采样, 数据在 SCK 时钟的上升沿切换;

  3. 模式 2:CPOL= 1,CPHA=0。SCK 串行时钟线空闲是为高电平,数据在 SCK 时钟的下降沿被采样, 数据在 SCK 时钟的上升沿切换;

  4. 模式 3:CPOL= 1,CPHA=1。SCK 串行时钟线空闲是为高电平,数据在 SCK 时钟的上升沿被采样, 数据在 SCK 时钟的下降沿切换;

3、SPI总线数据交换

​ 一个 Slave 设备要想能够接收到 Master 发过来的控制信号, 必须在此之前能够被 Master 设备进行访 问 (Access). 所以, Master 设备必须首先通过拉低 SS/CS 管脚对 Slave 设备进行片选, 把想要访问的Slave 设备选上。

​ SPI 设备间的数据传输之所以又被称为数据交换, 是因为 SPI 协议规定一个 SPI 设备不能在数据通信过程中仅仅只充当一个 "发送者(Transmitter)" 或者 "接收者(Receiver)". 事实上SPI 设备在通信时两边各有 1 个移位寄存器,这样在发送一个 bit 的同时将会收到对方 1 个 bit 的数据,当发送完 8bit 数据后,也将收到对方的 8bit 数据,这也就意味着完成了 1 个 byte 的数据交换。

SPI 数据传输过程实际上就是主从设备两个移位寄存器的数据交换过程,所以 SPI 的读功能实际上可以由 SPI 的写功能实现,即随便写一个字节的无效数据(Dummy Data)即可。

标签:协议,SCK,Clock,SPI,设备,数据,时钟
From: https://www.cnblogs.com/LiBlog--/p/18359844

相关文章

  • [网络][知识]TCP-IP各协议的RFC编号和RFC原始文档的获取地址
    TCP/IP协议族包括很多个子协议,下面是TCP/IP 协议和支持服务所支持的 RFC。RFC768  用户数据报协议 (UDP)RFC783  简单文件传输协议 (TFTP)RFC791  Internet 协议 (IP)RFC792  Internet 控制消息协议 (ICMP)RFC793  传输控制协议 (TCP)RFC816  故......
  • IEEE 1838-2019协议翻译——第五章 Serial test access ports
    目录5.1Primarytestaccessport5.1.1Specifications5.1.2Description5.2Primarytestaccessportcontroller5.2.1Specifications5.2.2Description5.3Secondarytestaccessport(STAP)5.3.1Specifications5.3.2Description5.......
  • 网络原理 IP协议与以太网协议
     博主主页: 码农派大星.  数据结构专栏:Java数据结构 数据库专栏:MySQL数据库JavaEE专栏:JavaEE关注博主带你了解更多数据结构知识目录1.网络层  IP协议1.IP协议格式2.地址管理2.1IP地址2.2解决IP地址不够用的问题2.3NAT网络地址转换2.4网段划分 3......
  • 春秋云镜 Hospital
    扔fscan去扫一下heapdump泄露,然而不知道在哪下.dirsearch扫一下访问/actuator/heapdump去下载泄露文件直接用长城杯用的工具扫java-jarJDumpSpider-1.1-SNAPSHOT-full.jarheapdump得到key为GAYysgMQhG7/CzIJlVpR2g==,使用shiro综合利用去打弹个shellbash-c'{ech......
  • 传输层——TCP协议
    文章目录TCP协议段格式确认应答(ACK)机制超时重传机制三次握手四次挥手滑动窗口流量控制拥塞控制延迟应答捎带应答TCP协议段格式源/目的端口号:从哪个进程来到哪个进程去;32位序号/32位确认序号:分别代表TCP报文当中每个字节数据的编号以及对对方的确认,是TCP保证可......
  • 什么是 ACME 协议以及它如何工作?
    如果您正在管理网站,您可能听说过SSL/TLS证书以及确保网络通信安全的重要性。但是,如果您可以自动执行颁发、更新和撤销这些证书的整个过程,会怎么样?这就是ACME(自动证书管理环境)的作用所在。您可以使用ACME协议通过与证书颁发机构(CA)的自动交互来简化证书管理。您是否好奇ACME......
  • Spire.Doc for Java实现根据关键字位置盖章
    Spire.DocforJava是一款专业的JavaWord组件,开发人员使用它可以轻松地将Word文档创建、读取、编辑、转换和打印等功能集成到自己的Java应用程序中。作为一款完全独立的组件,Spire.DocforJava的运行环境无需安装MicrosoftOffice。Spire.DocforJava能执行多种Word......
  • 多协议数据库管理工具:Navicat Premium (Win&Mac) 中文特别版
    NavicatPremium是一款强大的数据库管理和开发工具,它支持多种数据库系统,包括MySQL、MariaDB、MongoDB、SQLServer、Oracle、PostgreSQL和SQLite。这款软件为用户提供了一个直观的图形用户界面,使得创建、组织、访问和共享信息变得安全而简单。NavicatPremium的主要特点......
  • SpinalHDL之结构(三)
    本文作为SpinalHDL学习笔记第六十三篇,介绍SpinalHDL的函数(Function)。目录:1.简介(Introduction)2.RGA到灰度(RGBtogrey)3.Valid和Ready负载总线(ValidReadyPayloadbus)⼀、简介(Introduction)⽤Scala函数产⽣硬件的⽅式与VHDL/Verilog中非常不同,原因如下:◆你......
  • 高可用!一个基于 SpingBoot + Oauth2 的单点认证授权中心!
    大家好,我是Java陈序员。现代企业中,往往包含多个系统,如果每个系统都需要登录注册,这样的用户体验很不好!这时,就需要设计一个单点登录系统,一次登录处处登录,一次退出处处退出!今天,给大家介绍一个基于SpingBoot+Oauth2的单点认证授权中心,支持分布式高可用!关注微信公众号:【Java......