IIC(I2C)通信协议的两根总线为什么配置为开漏而不是推挽输出?
创作时间:
作者:
@小白创作中心
IIC(I2C)通信协议的两根总线为什么配置为开漏而不是推挽输出?
引用
CSDN
1.
https://blog.csdn.net/m0_47106200/article/details/141831051
IIC(I2C)通信协议是一种常用的串行通信协议,广泛应用于各种电子设备中。在IIC协议中,SDA(数据线)和SCL(时钟线)这两根总线的配置方式是开漏输出,而不是推挽输出。这种设计有其特定的原因。
1. 使用开漏输出不会短路
IIC协议中,所有从设备都连接到同一根SDA和SCL总线上。如果使用推挽输出,当两个设备一个输出低电平(0V)而另一个输出高电平时,相当于电源直接与地短接,会导致短路。
而开漏输出只有NMOS管,只能输出低电平,不会导致短路。需要通过外加上拉电阻来实现高电平输出,因此默认状态下SDA和SCL都是高电平。
2. 使用开漏输出可以实现仲裁机制
在总线上连接多个主设备时,使用开漏输出可以避免多个设备同时通信导致的混乱。在尝试通信之前,主设备会先检测总线是否处于空闲状态。空闲状态的定义是:已经检测到产生了终止条件(SCL为高电平时,SDA由低变高),上一次通信已经结束,此时SCL和SDA都为高电平。
IIC仲裁机制
空闲状态下,如果有多个设备同时开启通信并发送数据,就需要通过仲裁机制来决定由哪个设备进行通信。
假设主设备A发送数据序列1000...,主设备B发送数据序列1001...。当发送到第四位时,A发送0,SDA被拉低;B发送1,但由于SDA已经被拉低,所以实际表现仍为0。
主设备在发送数据后会检测电平是否与自己发送的一致:
- 如果一致(如主设备A),则赢得仲裁;
- 如果不一致(如主设备B),则输掉仲裁。
输掉仲裁的设备(如主设备B)将放弃本次通信,而赢得仲裁的设备(如主设备A)将继续进行通信。
这种仲裁机制确保了总线上只有一个主设备在进行通信,避免了数据冲突。
本文原文来自CSDN
热门推荐
当AI莫奈梵高塞尚画出南京四十八景,画家还有生存空间吗
三国谋士对比:庞统与徐庶,谁的智谋更为深邃?
2024全球富豪榜出炉:马斯克以2565亿重回榜首,中国首富令人意外
如何快速学习西点蛋糕制作技巧,策略与建议
仙侠剧何以打动当代海内外观众?
收集客户需求总结怎么写
动车检票时间规定:提前多久开始检票?什么时候停止检票?
同为“史学双璧”,《资治通鉴》和《史记》到底有什么区别?
高考数学给不给步骤分 如何拿更多的步骤分
中国千古对联10则,精辟透彻,让人百看不厌!
2024年值得选择的10大热门高薪专业,毕业后不愁找工作!
论文写作秘籍:如何从新手到专家提升你的科技报告技巧
2024年,新程序员如何与AI共赢?
天干合冲刑害一览表,命理解读合合冲刑害的作用关系
客户欠钱不还如何处理
拍摄中怎样找到合适的光线与背景
不会骑电动车应如何学习?学习骑电动车有哪些基本步骤和安全要点?
《如果历史是一群喵》,萌化历史,趣味解读
硅肥什么时候施最佳
如何使用C语言计算鸡兔同笼问题
C语言如何解决鸡兔同笼问题
科学家警告:十年内“镜像生命”或许威胁人类!AI发现全新“人工生命”!
镜像生命:科学的新疆界与潜在的双刃剑
写给厌学的你:不读书的十大理由与深度思考
城乡规划师工作需要知道哪些方面的信息
DIY从入门到放弃:选主板务必要看PCIe插槽
轮胎充气压力的合理范围是多少?如何保持轮胎充气压力的稳定?
股票基础知识入门:MACD指标详解
一文详解PCIe x1、x4、x8、x16及1.0到5.0版本的差异
次新房是二手房吗?次新房与二手房的区别有哪些?