打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
I2C总线简介

https://www.toutiao.com/a6661826931312296461/

本文介绍了内部集成电路(AKA I2C)串行通信协议的基本特性和突出优点。

组件之间的通信:通信协议

毫无疑问,电子系统的共同特征是需要在两个或三个或十个单独的组件之间共享信息。

工程师已经开发出许多标准协议,可以帮助不同的芯片成功通信 - 当您在微控制器或数字信号处理器的功能列表中“通信”下面对缩略语时,这一事实就变得很明显:UART,USART,SPI,I2 C,CAN。。。。每个协议都有其优点和缺点,重要的是要了解每个协议,以便在选择组件或接口时做出明智的决定。

本文是关于I 2 C的,它通常用于位于同一PCB上的各个集成电路之间的通信。另外两种通用协议也适用于这种通用类别:UART(通用异步接收器/发送器)和SPI(串行外设接口)。在彻底理解这三个接口之间的比较之前,您需要了解I 2 C 的基本特征,因此我们将在本文末尾讨论该主题。

什么是I2C总线?

I 2 C代表内部集成电路总线。但毫无疑问,I 2 C协议存在严重的术语问题。最简单 - 也可能是最不常见的 - 缩写是IIC。也许这个缩写被鄙视,因为两个大写我看起来像两个1,或两个小写的l,或罗马数字II,或并联电阻的符号。。。。无论如何,缩写I 2 C(称为“I squared C”)获得了普及,尽管将正常字母视为一个受取幂的变量的逻辑可疑。第三种选择是I 2C(“I two C”),它避免了上标格式的不便,并且比“I squared C”更容易发音。

当您注意到SMB或SMBus显然被用作引用I 2 C总线的另一种方式时,最后一层雾就会稳定下来。实际上,这些缩写是指系统管理总线,它与I 2 C总线不同,但几乎相同。最初的I 2 C协议是由Phillips Semiconductor开发的,多年后英特尔将SMBus协议定义为I2C的扩展。这两辆公共汽车基本上可以互换; 如果您对它们之间的细微差别感兴趣,请参阅 第57页。

就像试图在一个满是人的房间里进行重要的对话

要了解使I 2 C如此有效的巧妙技术,您需要考虑在多个独立组件之间实现可靠通用的通信的难度。如果你有一个始终是主设备的芯片和一个始终是从设备的芯片,那么情况就很简单了。

但是如果你有多个奴隶怎么办?如果奴隶不知道主人是谁,该怎么办?如果有多个主人怎么办?如果主设备请求来自从设备的数据由于某种原因变得无法正常运行,会发生什么?或者如果奴隶在传输过程中失去功能会怎么样?如果主人要求总线进行传输然后在释放总线之前崩溃怎么办?

关键是,在这种通信环境中存在许多可能出错的问题。当你学习I 2 C 时,你必须记住这一点,因为否则,协议看起来会变得复杂和挑剔。事实上,这种额外的复杂性使I 2 C能够提供灵活,可扩展,强大,低引脚数的串行通信。

I2C通信概述

在我们了解任何细节之前,以下是I 2 C 的主要特征:

  • 无论总线上有多少设备,都只使用两个信号(时钟和数据)。
  • 通过适当大小的电阻将两个信号上拉至正电源电压。
  • 每个器件通过漏极开路(或开路集电极)输出驱动器与时钟和数据信号接口。
  • 每个从设备通过7位地址识别; 主设备必须知道这些地址才能与特定的从设备通信。
  • 所有传输均由主站发起和终止; 主设备可以将数据写入一个或多个从设备或从从设备请求数据。
  • 标签“master”和“slave”本质上是非永久性的:如果任何设备包含必要的硬件和/或固件,则它们可以用作主设备或从设备。但实际上,嵌入式系统通常采用一种架构,其中一个主机向多个从机发送命令或从多个从机收集数据。
  • 数据信号在时钟信号的下降沿更新,并在上升沿采样,如下所示:
  • 数据以单字节部分传输,每个字节后跟一位称为ACK / NACK(确认或未确认)位的握手信号。

I2C的优点是什么?I2C与UART与SPI的比较

I 2 C 的优点可归纳如下:

  • 即使总线上有许多器件,也能保持低引脚/信号数
  • 适应不同从设备的需求
  • 很容易支持多个主人
  • 结合了ACK / NACK功能以改进错误处理

这里有一些缺点:

  • 增加了固件或低级硬件的复杂性
  • 强加协议开销,降低吞吐量
  • 需要上拉电阻,其中
  • 限制时钟速度
  • 在极其空间受限的系统中消耗宝贵的PCB空间
  • 增加功耗

从这些观点我们可以看出,当您拥有复杂,多样化或广泛的通信设备网络时,I 2 C特别适合。UART接口通常用于点对点连接,因为没有标准方法来寻址不同的设备或共享引脚。当你有一个主设备和一些从设备时SPI很棒,但是每个从设备都需要一个单独的“从设备选择”信号,当总线上有许多设备时,导致高引脚数和路由困难。当你需要支持多个主服务器时,SPI很尴尬。

如果吞吐量是主要关注点,您可能需要有意避免 I 2 C; SPI支持更高的时钟频率并最小化开销。此外,SPI(或UART)的低级硬件设计要简单得多,因此如果您正在使用FPGA并从头开始开发串行接口,I 2 C应该被认为是最后的选择。

结论

我们已经介绍了I 2 C 的显着特征,现在我们对协议的优缺点有了足够的了解,可以根据给定的应用程序选择哪种串行总线做出明智的决定。在以后的文章中,我们将更详细地探讨协议以及如何实际实现它。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
嵌入式开发中常用的几种通信接口总结
UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB、SD卡、1-W...
笔试常考:嵌入式5大常用协议(UART、RS232、RS485、IIC、SPI)
I2C总线通讯协议
IIC通信协议,搞懂这篇就够了
一文了解SPI总线工作原理、优缺点和应用案例
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服