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
热门推荐
当前我国企业创新能力的现状对经济发展的影响是什么?
你确定你买到橡木家具,是真正的橡木吗?聊聊橡木家具那些事
【以案释法】因个人信息被他人冒用而成侵权被告?法院:证据充分,不用担责!
纳指100和标普500有什么区别?
时钟:承载生活节奏与情感的文化象征与哲学思考
柜子板材怎么选:实用与美观并存的储物空间
琥珀酰明胶详细的说明书指导
用了这么久的“北京时间”并不在北京产生!而是这个地方
四川理县古尔沟镇:积极打造国家级旅游度假区和国际温泉度假小镇见成效
我国面积最大的10个城市排名,重庆市位居第4位
白扁豆的性质和作用(探究白扁豆的热性和凉性)
HTML图片自适应显示的多种实现方法
死侍:这位反英雄的起源与传奇!
孕32周胎儿发育标准及注意事项
流浪猫与流浪狗用英文怎么说?
《黑天鹅》深入探讨人性、欲望、自我与疯狂的电影
掌握这三个摄影设置,轻松拍出专业级人像
华为手机的型号识别方法:从背面、设置、官方应用到IMEI码及线上线下的细
冬季冰钓江河实战技巧详细分析
十大可生吃的蔬菜,十大能够生吃的蔬菜有哪些
用了这么久的“北京时间”并不在北京产生!而是这个地方
如何查看手机机型(简便快捷的方法帮助您获取手机机型信息)
北向资金是指什么?北向资金的流动对市场有什么影响?
王淦昌:中国核科学的奠基人和开拓者
【干货】污泥干化技术与设备详解
《鬼谷八荒》修炼方法
清朝:历史评价的多面性与复杂性
平板车位锁的基本构成与工作原理
婚礼美容师:打造完美新娘的蜕变之旅
BOM表是什么?如何制作物料清单(BOM)表?