Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SPI与IIC通信协议比对篇

SPI与IIC通信协议比对篇

作者头像
全栈程序员站长
发布于 2022-06-26 02:42:29
发布于 2022-06-26 02:42:29
9780
举报

大家好,又见面了,我是你们的朋友全栈君。

目录

一、SPI 与 IIC 通信协议比对:

二、SPI 通信协议:

(1)引脚简介

(2)起始信号:标号 ①;停止信号:标号 ⑥

(3)数据的有效性:② ③ ④ ⑤

(4)CPOL/CPHA 及通讯模式

三、IIC 通信协议:

(1)起始条件、停止条件

(2)数据的有效性

(3)主机写数据到从机

(4)应答信号(ACK)与非应答信号(NACK)

(5)字节格式

(6)发送从机地址(SLAVE ADDRESS)的格式

(7)主机由从机中读数据

(8)通讯复合格式


一、SPI 与 IIC 通信协议比对:

二、SPI 通信协议:

(图来自野火论坛,如侵即删)

(1)引脚简介

  1. NSS、 SCK、 MOSI 信号都由主机控制产生, MISO 的信号由从机产生,主机通过该信号线读取从机的数据。
  2. MOSI 与 MISO 的信号只在 NSS 为低电平的时候才有效,在 SCK 的每个时钟周期 MOSI 和 MISO 传输一位数据。

(2)起始信号:标号 ①;停止信号:标号 ⑥

标号①处, NSS 信号线高变低,是 SPI 通讯的起始信号。 标号⑥处, NSS 信号线低变高,是 SPI 通讯的停止信号,表示本次通讯结束,从机的选中状态被取消。

(3)数据的有效性:② ③ ④ ⑤

  • SPI 使用 MOSI MISO 信号线来传输数据,使用 SCK 信号线进行数据同步。 MOSI及 MISO 数据线在 SCK 的每个时钟周期传输一位数据,且数据输入输出是同时进行的。数据传输时, MSB 先行或 LSB 先行并没有作硬性规定,但要保证两个 SPI 通讯设备之间使用同样的协定,一般都会采用图中的 MSB 先行模式。
  • 观察图中的② ③ ④ ⑤标号处, MOSI 及 MISO 的数据在 SCK 的上升沿期间变化输出,在 SCK 的下降沿时被采样
  • SPI 每次数据传输可以 8 16 位为单位,每次传输的单位数不受限制。

(4)CPOL/CPHA 及通讯模式

上图中的时序只是 SPI 中的其中一种通讯模式,SPI 一共有四种通讯模式,它们的主要区别是总线空闲时 SCK 的时钟状态以及数据采样时刻。主机与从机需要工作在相同的模式下才可以正常通讯,实际中采用较多的是“模式 0”与“模式 3”。

  • CPOL=0,表示当SCLK=0时处于空闲态,所以有效状态就是SCLK处于高电平时
  • CPOL=1,表示当SCLK=1时处于空闲态,所以有效状态就是SCLK处于低电平时
  • CPHA=0,表示数据采样是在第1个边沿,数据发送在第2个边沿
  • CPHA=1,表示数据采样是在第2个边沿,数据发送在第1个边沿

三、IIC 通信协议:

(1)起始条件、停止条件

SCL 线是电平时 SDA 线从高电平向低电平切换表示起始条件。

SCL 线是电平时 SDA 线从低电平向高电平切换表示停止条件。

(2)数据的有效性

SDA 线上的数据必须在时钟SCL线的高电平周期保持稳定 ;数据线的高或低电平状态只有在 SCL 线的时钟信号是低电平才能改变

(3)主机写数据到从机

  • S:起始条件
  • SLAVE ADDRESS:从机地址(从机地址可以是 7 位或 10 位)。
  • R/ ̄W:W代表写,R代表读,因为W上面有上划线,所以该位位低电平(即0)时,为写操作。
  • A:从机发来应答(ACK)信号(有了应答信号才能接着进行下一步)。
  • DATA:要发送的数据(数据包的大小为 8 位)。
  • A/  ̄A:从机发来应答(ACK)或非应答(NACK)信号(有了应答信号才能接着进行下一步)。
  • P:停止条件

(4)应答信号(ACK)与非应答信号(NACK)

  • 当设备(无论主从机)接收到 I2C 传输的一个字节数据或地址后,若希望对方继续发送数据,则需要向对方发送“应答(ACK)”信号,发送方会继续发送下一个数据;
  • 若接收端希望结束数据传输,则向对方发送“非应答(NACK)”信号,发送方接收到该信号后会产生一个停止信号,结束信号传输。

应答信号 :主机发送完一个8位数据后,会等待从机的回答一个ACK信号就是SDA将会拉低

非应答信号:主机发送完一个8位数据后,会等待从机的回答一个NACK信号就是SDA将会拉高

(5)字节格式

发送到 SDA 线上的每个字节必须为 8 位,每次传输可以发送的字节数量不受限制,每个字节后必须跟一个响应位

(6)发送从机地址(SLAVE ADDRESS)的格式

从机地址(从机地址可以是 7 位或 10 位)一般是7位,再加上一位读/写位。具体见下面。

(7)主机由从机中读数据

  • S:起始条件
  • SLAVE ADDRESS:从机地址(从机地址可以是 7 位或 10 位)。
  • R/ ̄W:W代表写,R代表读,因为W上面有上划线,所以该位位低电平(即0)时,为写操作。
  • A:主机发送应答(ACK)信号(有了应答信号才能接着进行下一步)。
  • DATA:要接收的数据(数据包的大小为 8 位)。
  • A/  ̄A:主机发送应答(ACK)或非应答(NACK)信号(有了应答信号才能接着进行下一步)。
  • P:停止条件

(8)通讯复合格式

  • S:起始条件
  • SR:重复起始信号
  • SLAVE ADDRESS:从机地址(从机地址可以是 7 位或 10 位)。
  • R/ ̄W:W代表写,R代表读,因为W上面有上划线,所以该位位低电平(即0)时,为写操作。
  • A:应答(ACK)信号(有了应答信号才能接着进行下一步)。
  • DATA:要传输的数据(数据包的大小为 8 位)。
  • A/  ̄A:应答(ACK)或非应答(NACK)信号(有了应答信号才能接着进行下一步)。
  • P:停止条件

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134099.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月7,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
fpga的spi的编程_UASP协议
FPGA实现的SPI协议(二)—-基于SPI接口的FLASH芯片M25P16的使用
全栈程序员站长
2022/11/03
1.3K0
fpga的spi的编程_UASP协议
MCU常见通信总线串讲(四)—— SPI总线协议
首先明确一个概念,关于MCU中通信总线和通信协议,通信总线是一种用于连接各种外设和模块的物理接口,它可以传输数据和控制信息。通信协议则是指在通信总线上传输数据时所遵循的规则和约定,以确保不同设备之间能够正确地交换信息,我们也可以把他叫做通信总线协议。
秋名山码神
2023/11/09
2K0
MCU常见通信总线串讲(四)—— SPI总线协议
SPI
SPI全称为Seriel Peripheral Interface (串行外设接口),是 MCU 中常用的外设接口。SPI 通信原理很简单,它是以主从方式进行工作,通常有一个主设备和一个或多个从设备,至少需要4根线(支持全双工)工作,分别为 MISO(主入从出),MOSI(主出从入),SCLK(时钟),SS(片选)。
瓜大三哥
2020/07/24
1.9K0
迷乱的通信协议之SPI分析
首先了解下SPI的背景,SPI——串行外围设备接口(serial peripheral interface)的缩写。是Motorola公司首先在其MC68HCXX系列处理器上定义的,是一种高速的、全双工、同步的通信总线。
狂人V
2020/06/29
2K0
SPI协议解析
SPI是串行外设接口的缩写,是一种高速的,全双工,同步的通信总线。由于SPI高速和同步的特性,使其成为嵌入式系统和小型设备中使用最广泛的几种通信接口之一。本文将详细讲解一下SPI,并且最后基于STM32编写一个例程。
跋扈洋
2023/09/02
1.6K0
SPI协议解析
逻辑分析仪的简单使用介绍(附带i2c、串口、spi数据分析)
本次文章给大家介绍一种便宜好用的协议分析工具,逻辑分析仪,首先声明,小飞哥作这篇介绍文章,不是为了打广告哈,实在是因为这个小玩意很好用,有些小伙伴还不太清楚该如何使用!!!废话不多说,下图是我目前用的一种,8通道24MHZ,一般的低速信号分析是足够用了,比较高级的功能也更高级,当然价格也更贵。话不多说,开始对这个小玩意如何使用进行简单的介绍。
用户8913398
2021/08/16
12.1K0
逻辑分析仪的简单使用介绍(附带i2c、串口、spi数据分析)
FPGA实现spi协议通信_fpga pll
SPI 协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间,要求通讯速率较高的场合。
全栈程序员站长
2022/11/09
1.4K0
FPGA实现spi协议通信_fpga pll
SPI通讯协议介绍「建议收藏」
  来到SPI通讯协议了。废话两句,“SPI很重要”,这是我在学校时候听那些单片机开发工程师说的。出来实习,到后来工作,确实如此,SPI的使用很常见,那么自然重要咯。
全栈程序员站长
2022/11/04
1.2K0
SPI通讯协议介绍「建议收藏」
一文搞懂SPI通信协议
SPI是串行外设接口(Serial Peripheral Interface)的缩写,是美国摩托罗拉公司(Motorola)最先推出的一种同步串行传输规范,也是一种单片机外设芯片串行扩展接口,是一种高速、全双工、同步通信总线,所以可以在同一时间发送和接收数据,SPI没有定义速度限制,通常能达到甚至超过10M/bps。
不脱发的程序猿
2022/06/16
5.8K0
一文搞懂SPI通信协议
什么是SPI?SPI的优点有哪些?
SPI是串行外设接口(Serial Peripheral Interface)的缩写,是Motorola公司推出的一种同步串行接口技术,是一种高速、全双工、同步的通信总线。
天天Lotay
2023/01/13
2.7K0
什么是SPI?SPI的优点有哪些?
SPI 协议简介
SPI 协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设 备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间, 要求通讯速率较高的场合。
全栈程序员站长
2022/09/28
8K0
SPI 协议简介
SoC接口技术之低速接口
UART:全称 Universal Asynchronous Receiver/Transmitter,中文可译为通用异步收发器。
数字芯片社区
2021/12/16
1.3K0
SoC接口技术之低速接口
什么是SPI通信?怎样进行SPI通信?
SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,它被广泛地使用在 ADC、LCD 等设备与 MCU 间,要求通讯速率较高的场合。并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,越来越多的芯片集成了这种通信协议。 SPI接口是全双工三线同步串行外围接口,采用主从模式架构;支持多slave模式应用,一般仅支持单Master.时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后;SPI接口有两根单向数据线,为全双工通信,目前数据速率可达几Mbps的水平,速率较高。
跋扈洋
2022/12/03
2.9K0
stm32基础知识必会_护理学基础必考知识点
F1 代表了基础型,基于 Cortex-M3 内核,主频为72MHZ,F4 代表了高性能,基于 Cortex-M4 内核,主频 180M。
全栈程序员站长
2022/10/04
4150
stm32基础知识必会_护理学基础必考知识点
嵌入式软件工程师笔试面试指南-ARM体系与架构
注意:nandflash和norflash的0地址是不冲突的,norflash占用BANK地址,而nandflash不占用BANK地址,它的0地址是内部的。
嵌入式与Linux那些事
2021/04/28
1.8K0
嵌入式软件工程师笔试面试指南-ARM体系与架构
SPI协议
SPI是串行外设接口(Serial Peripheral Interface)的缩写。是 Motorola 公司推出的一 种同步串行接口技术,是一种高速的,全双工,同步的通信总线。
心跳包
2020/08/31
1.5K0
SPI协议
三大通信协议(二):IIC通信协议
主设备和从设备进行数据传输时遵循以下协议格式。 数据通过一条SDA数据线在主设备和从设备之间传输0和1的串行数据。串行数据序列的结构可以分为,开始条件,地址位,读写位,应答位,数据位,停止条件,具体如下所示;
全栈程序员站长
2022/08/22
2K0
三大通信协议(二):IIC通信协议
SPI 子系统(一):SPI spec
SPI:Serial Perripheral Interface,串行外围设备接口,由 Motorola 公司提出,是一种高速、全双工、同步通信总线。SPI 以主从方式工作,通常是有一个主设备和一个或多个从设备,无应答机制。
Jasonangel
2022/05/24
2.9K0
SPI 子系统(一):SPI spec
IIC通信协议总结(详细说明完整过程)
IIC(inter-integrated Circuit集成电路总线)总线支持设备之间的短距离通信,用于处理器和一些外围设备之间的接口,它需要两根信号线来完成信息交换。IIC的一个特殊工艺优势是微控制器只需要两个通用I/O引脚和软件即可控制芯片网络。IIC最早是飞利浦在1982年开发设计并用于自己的芯片上,一开始只允许100Khz、7-bit标准地址,1992年,IIC的第一个公共规范发行,增加了400Khz的快速模式以及10bit地址扩展。
全栈程序员站长
2022/08/15
3.5K0
IIC通信协议总结(详细说明完整过程)
SPI协议,这篇就够了!
IIC支持热拔插吗?(附有详细CW32 IIC协议解读) 不知道你学会没有?我在这些低速实验写完以后会给出逻辑分析仪的调试步骤。
云深无际
2025/01/07
7470
SPI协议,这篇就够了!
相关推荐
fpga的spi的编程_UASP协议
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档