I2C和SPI通信协议的主要差异在哪?

有很多串行通信协议,但其中i2c和spi非常有名。i2c 和 spi 都是总线协议,允许用户进行短距离的串行数据传输。i2c是飞利浦(现在是nxp)制造的两线通信,而spi是摩托罗拉制造的。
这两种协议通常用于智能手机、电视和笔记本电脑等电子设备中,以控制电源管理芯片、存储设备、输入设备等外围设备。
在本文中,我们讨论一下i2c和spi之间的区别。本文讨论的目录如下:
一:什么是i2c
i2c 是一种串行通信协议。它为慢速设备提供了很好的支持,例如eeprom、adc和rtc等。i2c不仅可以在单板使用,还可通过电缆与板连接的其他外部组件一起使用。
i2c是一种两线通信协议。它仅使用两根线进行通信。其中一根线用于数据(sda),另一根线用于时钟(scl)。
在 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?
spi(serial peripheral interface)是基于四线的全双工通信协议,这些线通常被称为 mosi(master out slave in)、miso(master in slave out)、scl(由 master 产生的串行时钟)和 ss(slave 选择线,用于在通信期间选择特定从站)。
spi 遵循主从架构,通信始终由主机启动。与 i2c 一样,它也是一种同步通信协议,因为时钟由主机和从机共享。
spi 仅支持多从机不支持多主机,从机由从机选择信号选择。在 spi 中,通信期间数据从主机移出并通过移位寄存器移入从机,反之亦然。
五:spi通信的优点
总结的spi通信协议的优点如下:
没有开始位和停止位,因此数据可以连续流式传输而不会中断。
它支持全双工。
从设备中不需要精密振荡器,因为它使用主时钟。
没有像 i2c 这样复杂的从机寻址系统。
比 i2c 更高的数据传输速率(几乎快两倍)。
miso和mosi线分开,可以同时发送和接收数据。
软件实现比较简单。
六:spi通信的缺点
如果有多个从站进行通信,则接线会很复杂。
使用四根线(i2c 和 uart 使用两根线)。
没有确认数据已成功接收(i2c有)。
没有像 uart 中的奇偶校验位那样的错误检查形式。
它只允许一个主机。
七:spi和i2c的区别
在嵌入式系统中,i2c和spi都扮演着重要的角色。两种通信协议都是同步通信的例子,但仍然有一些重要的区别。
在下表中,列出了spi和i2c之间的一些常见差异。
i2c spi
‍‍‍‍‍‍‍‍i2c 可以是多主机和多从机,这意味着可以有多个主机和从机连接到 i2c 总线。 spi 可以支持多从机,不支持多主机,这意味着只能有一个主机连接到 spi 总线
i2c 是一种半双工通信协议 spi 是一种全双工通信协议
i2c 具有时钟延长的特性,这意味着如果从机无法以足够快的速度发送快速数据,则它会抑制时钟以停止通信。 spi无始终延长特性
i2c仅使用两根线进行通信,一根用于数据,另一根用于时钟 spi 需要三线或四线进行通信(取决于要求):mosi、miso、scl 和片选引脚
通信速度:i2c 比 spi 慢 与 i2c 相比,spi 更快
i2c 比 spi 消耗更多功率 与 i2c 相比,功耗更低
i2c 比 spi 更不易受噪声影响 spi 比 i2c 更容易受到噪声的影响
i2c 比 spi 通信协议实现起来更便宜 与 i2c 相比,成本较高
i2c 工作在“线与”逻辑上,它有一个上拉电阻 在 spi 的情况下不需要上拉电阻
在 i2c 通信中,我们在每个字节后得到确认位 spi 通信协议不支持确认位
i2c 确保发送的数据被从设备接收 spi 不验证数据是否正确接收
i2c 是一种多主机通信协议,所以它具有仲裁功能 spi 不是多主机通信协议,因此它不具备仲裁属性
i2c 是基于地址的总线协议,通信前需要发送从机的地址 在 spi 的情况下,您必须使用从机选择引脚选择从机进行通信
由于开始位和停止位,i2c 有一些额外的开销 spi 没有开始位和停止位
i2c 支持同一总线上的多个设备,无需任何额外的选择线(根据设备地址工作) spi 需要额外的信号(从选择线)线来管理同一总线上的多个设备
i2c更适合长距离 spi更适合短距离
i2c 由 nxp 开发 spi 由摩托罗拉开发


什么么是节流阀,节流阀的特点及分类
小型电源变压器的检测方法
iPhone 8应该会大卖,但中国人早已被苹果伤透了心
陶瓷电容促成电容器行业进步
Dialog针对5G应用提供集成电源解决方案
I2C和SPI通信协议的主要差异在哪?
多功能食品安全检测仪那种比较好?
Jacinto 6 QNX系统汽车解决方案介绍
2009-2011全球连接器厂家收入排名
恩智浦S32G汽车集成平台加速软件定义汽车开发
剑指人工智能和云计算 IBM不到2年招募10万员工
Zemax:OpticStudio初次安装指南——设置许可证
华为海洋将成为亨通光电持股51%的控股子公司
科大讯飞和光大银行签署战略合作协议 推动光大银行信息技术创新发展
高压恒流激光驱动器 ATLSXA216D
Intel发布一款十万兆级别的有线网卡以及一款Wi-Fi6标准的无线网卡
索尼与New Balance研发带有墨水屏的智能鞋
华为在东南亚地区铺设5G基础设施做好准备,多国宾客积极响应
Modbus智能网关有什么功能和特点?
传感器技术在可穿戴智能设备中的应用分析