0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

介绍一下I2C和SPI两种常见的通信协议之间区别

冬至子 来源:汽车软件开发工程师 作者:良皮儿 2023-11-30 16:50 次阅读

在与ECU或者嵌入式相关的工作中, 我们肯定会接触到各种通信协议, 很多协议有很多类似的地方, 也容易混淆. 本文来介绍一下两种常见的通信协议之间的区别.

I2C 和 SPI 都是允许用户进行短距离串行数据传输的总线协议. I2C 是飞利浦(现在的 NXP)制定的两线通信, 而 SPI 是由摩托罗拉制定的. 这两种协议通常用于智能手机、电视和笔记本电脑电子设备, 以控制电源管理芯片、存储设备、输入设备等外围设备.

什么是I2C?

I2C 是一种串行通信协议. 它为慢速设备提供了良好的支持, 例如 EEPROMADC 和 RTC 等. I2c 不仅可以用于单板, 还可以用于其他通过电缆与板连接的外部组件.

I2C 基本上是一种两线通信协议. 它仅使用两线进行通信. 其中一根线用于数据(SDA), 另一根线用于时钟(SCL).

在 I2C 中, 两条总线都是双向的, 这意味着主机能够发送和接收来自从机的数据. 时钟总线由主机控制, 但在某些情况下, 从机也能够抑制时钟信号.

图片

此外,I2C总线用于各种控制架构, 例如SMBus(系统管理总线)、PMBus(电源管理总线)、IPMI(智能平台管理接口)等.

I2C通信协议的优点

I2C协议有很多优点, 让用户在很多应用中不得不使用I2C协议. 下面是I2C的主要优点:

  • 它是同步通信协议, 因此主从不需要精确的振荡器.
  • 它只需要两根线, 一根线用于数据(SDA), 另一根线用于时钟(SCL).
  • 它为用户提供了根据要求选择传输速率的灵活性.
  • 在 I2C 总线中, 总线上的每个设备都可以独立寻址.
  • 它遵循主从关系.
  • 它能够处理 I2C 总线上的多个主机和多个从机.
  • I2C 具有一些重要的特性, 例如仲裁、时钟同步和时钟延长.
  • I2C 提供 ACK/NACK(确认/不确认)功能, 可帮助处理错误.

I2C 通信协议的缺点

I2C 协议有很多优点, 但除此之外, I2C 也有一些限制:

  • 由于开漏拓扑, 它比其他串行通信总线消耗更多的功率.
  • 它仅适用于短距离.
  • I2C 协议对从机的数量有一定的限制, 从机的数量取决于 I2C 总线的电容.
  • 它只提供一些有限的通信速度, 如 100 kbit/s、400 kbit/s 等.
  • 在 I2c 中, 设备可以设置它们的通信速度, 运行速度较慢的设备可以延迟速度较快的设备的运行.

什么是SPI?

串行外设接口是基于四线的全双工通信协议, 这些线通常称为 MOSI(主出从入)、MISO(主进从出)、SCL(由主产生的串行时钟)和 SS(从 选择线, 用于在通信过程中选择特定的从站).

图片

SPI 遵循主从架构, 通信始终由主机启动. 与 I2C 一样, 它也是一种同步通信协议, 因为时钟由主从共享.

SPI 只支持多从机, 不支持多主机, 从机由从机选择信号选择. 在 SPI 通信期间, 数据通过移位寄存器从主机移出, 反之亦然.

SPI通讯协议的优点

  • 没有起始位和停止位, 因此数据可以不间断地连续流式传输.
  • 它支持全双工.
  • 从设备中不需要精密振荡器, 因为它使用主时钟.
  • 没有像 I2C 这样复杂的从机寻址系统.
  • 比 I2C 更高的数据传输速率(几乎是 I2C 的两倍).
  • 将 MISO 和 MOSI 线分开, 因此可以同时发送和接收数据.
  • 简单的软件实现.

SPI通讯协议的缺点

  • 如果通信中的从站不止一个, 那么接线会很复杂.
  • 使用四根线(I2C 和 UART 使用两根).
  • 不确认数据已成功接收(I2C 具有此功能).
  • 没有像 UART 中的奇偶校验位那样的错误检查形式.
  • 它只允许一个主机.

嵌入式系统中, I2C和SPI都扮演着重要的角色. 这两种通信协议都是同步通信的例子, 但仍然有一些重要的区别. 在下表中, 我指出了 SPI 和I2C(SPI 与 I2C)之间的一些常见差异.

下表直观的对I2C 和 SPI 进行一个对比:

1.jpg

2.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 振荡器
    +关注

    关注

    28

    文章

    3518

    浏览量

    137640
  • 电源管理
    +关注

    关注

    112

    文章

    6015

    浏览量

    141109
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1615

    浏览量

    89620
  • 时钟信号
    +关注

    关注

    4

    文章

    374

    浏览量

    28065
  • I2C协议
    +关注

    关注

    0

    文章

    25

    浏览量

    8389
收藏 人收藏

    评论

    相关推荐

    3分钟理解通信协议I2C总线 #通信协议

    通信协议I2CI2C总线总线/接口技术
    硬声课堂
    发布于 :2021年10月18日 10:39:12

    SPII2C、UART三串行总线协议区别

    实现从设备,则只需输入口即可。I2C总线是双向、线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信
    发表于 11-02 09:48

    I2C通信协议介绍

    的串行通信协议主要有EIA-232、EIA-232、EIA-485、USB、IEEE 1394几种: 以下着重介绍I2C总线:I2C总线
    发表于 07-19 02:36

    i2c通信协议

    1.1 i2c通信协议通信协议:用来实现数据传输。i2c物理总线:SCL(时钟线) SDA(数据线)i2c
    发表于 03-06 16:15

    I2C通信协议硬软件

    目录12C通信协议硬软件I2CAHT20测温湿度参考12C通信协议I2C
    发表于 08-23 07:42

    通信协议的相关资料分享

    嵌入式通信协议:分为“大协议”和“小协议两种“大协议”:主要用来进行系统外的整个系统之间
    发表于 12-24 08:15

    I2C通信协议简介

    .I2C通信协议简介1.物理层I2C物理层有以下特点:I2C是支持多设备的总线,支持多个通讯主机、多个通讯从机
    发表于 01-13 07:20

    I2C协议介绍

    多个寄存器I2C 连续读多个寄存器I2C数据仲裁介绍I2C 调查标准I2C协议
    发表于 01-20 08:04

    SPI通信协议讲解相关资料推荐

    I2C通信协议大概,弄懂了I2C通信那么相信你也可以轻松弄懂的,因为I2CSPI
    发表于 02-17 06:09

    I2C通信协议的原理是什么

    I2C通信协议I2C通信原理I2C通信原理:I2C
    发表于 02-17 07:16

    介绍一下SPI协议

    文章目录前言SPI介绍1.SPI总线2.寻址方式二、通信原理1.
    发表于 02-17 07:44

    讲解一下STM32CubeMx的I2C配置

    形式去编写代码就好。我们可以通过两种方式去和外部的带有I2C协议的设备通信一种方式是用IO口模拟I2C
    发表于 02-21 06:36

    I2C总线通信协议的相关资料下载

    基于I2C总线通信协议的温度采集实验(基于AHT20) I2C总线通信协议简介 AHT20简介 .项目说明1)实战目标:
    发表于 02-22 07:37

    SPII2C、UART串行总线协议

    串口通讯通信协议UART,以及常用外设通信协议 SPII2C介绍与他们之间
    发表于 11-30 11:28 91次下载

    i2cspi通信协议的概念与区别 I2C/SPI总线通信协议你搞懂没有

    计划第四期:硬声UP主@硬件研究狮 从工程实践的角度,给大家拆解I2CSPI。     四分钟搞定通信协议的分类 简介: 同步通信与异步通信
    的头像 发表于 06-23 17:19 3023次阅读