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
热门推荐
美国激光武器研发问题不断,中国科研团队取得突破
甲子日柱配婚日柱最佳:婚姻配偶分析与建议
如何评估不同黄金品牌的市场表现?这些品牌在消费者中的口碑如何?
比特币:狂欢、末日还是未来?
音箱音频输出接口:连接声音的桥梁
三亚赶海攻略:三个最佳地点及详细指南
厨房小妙招,金针菇的完美清洗秘籍,让你的餐桌更健康!
咖啡放了一晚,还敢喝吗?隔夜咖啡的真相大揭秘
关节痛、肌肉痛,选择塞来昔布还是布洛芬?医生告诉你答案
“国金中国铁建REIT”收入与分配的科目调剂
音阶、琶音弹奏技术指南
白内障大起底!合肥普瑞眼科专家提醒:这些知识你需要了解~
快速降低心率的6种科学方法
石语千秋 艺脉传薪——浅谈大足石刻对现代艺术创作的影响
海狮计划为何未能如愿?德军的战略误判揭示了什么?
安全用药,请收下“十大提示”
牟氏庄园:胶东民俗文化的瑰宝
7年后小行星撞地球?4月份它就要离开我们的视线,下一次看到它是2028年
古文寓意深远的单字
HIICT:一种提高有氧能力训练的新方法
仅需几小时就能精准识别,检测癌症分子“指纹”可改进早期诊断
喝什么可以改善皮肤暗黄
“养花的尽头”是三角梅?入坑五年后,才发现这句话是真的
八字查询驿马星
打卡全国省级博物馆1:湖南博物院
孕晚期准妈妈能否吃芒果?安全享用有方法
重现八十年代风靡一时的经典老车 拉达/老上海等
浩吉铁路累计开行货物列车突破6万列 “北煤南运”大通道作用进一步凸显
冰箱结冰太厚不要铲,用一个塑料瓶搞定,冰块哗哗掉,真的太棒了
血常规检查各项指标正常值