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
热门推荐
就业形势严峻下,高考生如何选专业?这些专业值得关注!
章若楠作品大爆发,《难哄》后她用多部剧集证明自己
北京大栅栏街道:南中轴线上体验多元胡同文化
VR助力前庭康复:让患者在虚拟世界中找回现实希望
身体缺什么维生素会长白发呢?白发可以拔掉吗?看完或许明白了
帕金森病患者饮食指南:营养与健康同行
小叶紫檀和海黄手串最大的克星是水?
怀孕B超什么时候做最好?关键时间点全解析
满足好奇心,就能激发正循环学习!亲子互动“3要4不”,决定孩子的优势
《捭阖怎么读》:掌握沟通艺术,灵活应对人际关系的策略指南
肺结节患者运动指南:哪些运动适合?如何科学锻炼?
北大研究:数字正念干预程序加快缓解焦虑抑郁症状
心理应激:从压力到调适的奇妙之旅
黑鱼的养殖周期及注意事项
地暖混水系统原理详解:如何实现精准温度控制
宝宝的黄昏觉,为什么难哄?
甜度是蔗糖的300倍,但热量极低!这种宝藏果子,糖尿病人也能吃
明代皇帝朱由校为什么传位给弟弟朱由检,是因为他没有儿子吗?
如何理解不同类型基金的特点?这些不同类型基金的特点有哪些表现?
湖南信息职院:积极开展网络安全宣传 筑牢信息安全防线
四类游戏助力儿童专注力提升,耶鲁研究证实黄金窗口期训练效果最佳
从裁撤“十三衙门”到改姓“秦赵高”看清朝为何没有出现宦官专权
蚊母树Distylium racemosum Sieb. et Zucc.
如何分析不同城市房产的特点?这些特点对购房者有何启示?
Go 如何应对高并发 | 高并发详解
跑步时腹部疼怎么回事
量子力学中的“量子”到底什么意思?是一种基本粒子吗?
归元寺数罗汉全部解签
如何准确计算企业的利润情况?这种计算方法的准确性如何保证?
陀螺仪工作原理,你懂了吗?