本文介绍了互连集成电路( I2C)串行通信协议的基本特征和显着优势。
组件之间的通信:通信协议 电子系统的一个共同特征是需要在两个或三个或十个单独的组件之间共享信息,这不足为奇。
工程师已经开发出许多标准协议,可以帮助不同的芯片成功通信。当您遇到微控制器或数字信号处理器功能列表中“通信”下的缩写词时,这一事实就变得显而易见。我2 C,可以。。。。每种协议都有其优点和缺点,因此对每个协议都有一点了解很重要,这样你在选择组件或接口时就可以做出明智的决定。
本文是关于I 2 C的,它通常用于位于同一PCB上的各个集成电路之间的通信。同样适用于此通用类别的另外两个常见协议是UART(通用异步接收器/发送器)和SPI(串行外围设备接口)。你需要先了解I 2 C 的基本特性,然后才能彻底理解这三个接口之间的比较,因此,我们将在本文结尾处讨论该主题。
什么是I2C总线? I 2 C代表内部集成电路总线。毫无疑问,I 2 C协议存在严重的术语问题。最直接(也可能是最不常见)的缩写是IIC。也许这个缩写被忽略了,因为两个大写字母I看起来像两个1,或者两个小写的l,或者罗马数字II,或者是并联电阻的符号。。。。无论如何,缩写I 2 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 的主要特征: ] ]
- 数据以一个字节的部分传输,每个字节后跟一个称为ACK / NACK(确认或未确认)位的一位握手信号。
I2C的优势是什么?I2C,UART,SPI这里有一些缺点: - 增加了固件或底层硬件的复杂性
- 施加协议开销,从而降低吞吐量
- 需要上拉电阻
- 极限时钟速度
- 在空间极为有限的系统中消耗宝贵的PCB面积
- 增加功耗
从这些方面我们可以看到,当您拥有复杂,多样化或广泛的通信设备网络时,I]你可能需要刻意避免I2C, 如果吞吐量是一个主要关心的问题; SPI支持更高的时钟频率,并使开销最小化。而且,SPI(或UART)的底层硬件设计要简单得多,因此,如果您使用FPGA并从头开始开发串行接口,则应该将I 2 C视为最后的选择。
结论我们已经介绍了I 2 C 的显着特征,并且现在我们对协议的优缺点了解得足够多,从而可以就给定应用选择哪种串行总线做出明智的决定。在以后的文章中,我们将更详细地探讨该协议以及如何实际实现它。
|