0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

I2C通讯为什么要用开漏输出和上拉电阻?

朱老师物联网大讲堂 2024-05-16 08:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、I2C总线简介

I2C(Inter-Integrated Circuit)总线是一种双向串行通信总线,由两根线组成:SDA(数据线)和SCL(时钟线)。这两根线都是双向的,并且是开漏输出的,这意味着每个设备都可以将线拉低(Ground),但不能将线拉高(Vcc)。这种设计使得多个设备可以共享同一条总线,以进行通信。

b9fa7726-1318-11ef-9118-92fbcf53809c.png

二、I2C接口接外部上拉电阻的原因

I2C(Inter-Integrated Circuit)接口在使用时需要连接外部上拉电阻,主要原因包括以下几点:
开漏(Open-drain)或开集电极(Open-collector)输出:I2C总线上的设备如主设备和从设备使用开漏或开集电极的输出方式来驱动总线。这意味着,设备只能将线路拉低(接地),而不能直接将线路拉高至供电电压。因此,需要外部上拉电阻来将线路拉高。多主设备配置:I2C允许多个主设备存在于同一总线上。为了防止输出冲突(例如,一个设备尝试将线路拉高,而另一个设备尝试将线路拉低),I2C设计为只能通过外部上拉电阻来将信号线拉高,从而简化了总线管理。逻辑状态的稳定和可靠性:外部上拉电阻确保在没有设备主动驱动线路时,数据线(SDA)和时钟线(SCL)能稳定地保持在高电平状态。这有助于提高信号的可靠性和减少误读。灵活的电压级别:由于I2C设备可以支持不同的逻辑电平,使用外部上拉电阻可以方便地匹配总线电平到特定的系统电压,例如3.3V或5V等,从而使得不同电压等级的设备可以共存于同一总线。电气特性的优化:通过选择合适的上拉电阻值,可以优化总线的电气特性,如上拉速率、功耗和噪声容限。电阻值太低会增加功耗和可能导致总线驱动器过载,而电阻值太高则可能导致信号上升时间过长,影响总线速率。所以综上所述,外部上拉电阻在I2C通信中发挥着至关重要的作用,保证了通信的稳定性和灵活性。在I2C通信中,使用推挽(push-pull)输出并不是标准的实现方式,因为这种输出方式与I2C设计的开漏(open-drain)或开集电极(open-collector)输出方式存在本质上的差异。下面详细解释为什么通常不使用推挽输出:总线冲突的风险:I2C总线设计为多主设备和多从设备可以共享同一总线。如果使用推挽输出,当一个设备试图将总线拉高而另一个设备试图将其拉低时,将会发生总线冲突,可能导致设备损坏。信号完整性问题:推挽输出可以同时驱动高电平和低电平,这在总线空闲和活跃时都维持总线状态。然而,这种方式缺乏开漏输出的灵活性,例如在总线检测和仲裁过程中动态改变控制权,这是I2C协议重要的一部分。电平匹配和灵活性降低:使用推挽输出意味着所有设备必须在相同的电压级别上操作,这限制了不同电压级别设备的互操作性。相比之下,开漏输出允许通过外部上拉电阻选择适当的电压级别,以匹配不同设备的电压要求。仲裁和时钟同步问题:I2C支持总线仲裁和时钟同步,这依赖于能够检测总线上的高电平和低电平状态。如果总线使用推挽输出,总线上的电平状态将由最后一个发送信号的设备完全控制,从而使得仲裁和同步变得困难或不可能。因此,尽管理论上可以通过某些特定设计让I2C总线上的设备使用推挽输出,但这样做通常需要额外的硬件支持和复杂的总线管理策略,且违背了I2C协议的基本设计原则。如果需要在I2C总线上实现类似推挽的功能,通常建议使用其他通信协议,如SPI或UART,这些协议本身就设计为支持推挽输出。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 上拉电阻
    +关注

    关注

    5

    文章

    366

    浏览量

    31751
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1566

    浏览量

    131943
  • 串行通信
    +关注

    关注

    4

    文章

    610

    浏览量

    37264
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MAX7328/MAX7329:I2C 端口扩展器的详细解析

    MAX7328/MAX7329:I2C 端口扩展器的详细解析 在电子设计领域,端口扩展器是一种常见且实用的器件,它能帮助工程师在有限的资源下扩展系统的输入输出能力。今天,我们就来深入了解一下
    的头像 发表于 05-11 17:15 407次阅读

    深入了解MAX7324:强大的I2C端口扩展器

    深入了解MAX7324:强大的I2C端口扩展器 在电子设计的领域中,端口扩展器是解决I/O端口不足问题的重要工具。今天我们就来详细探讨一下Maxim Integrated推出的MAX7324 I2C
    的头像 发表于 05-11 17:10 415次阅读

    深入解析MAX7327:一款强大的I2C端口扩展器

    +125°C的汽车温度范围。它具有12个推挽输出端口和4个可配置的I/O端口,这些端口具备可选的内部
    的头像 发表于 05-11 17:10 413次阅读

    MAX7321:I2C接口8位端口扩展器的深度解析

    功能强大的I2C接口8位端口扩展器。 文件下载: MAX7321.pdf 1. 产品概述 MAX7321是一款采用2线串行接口的外设,具有8个
    的头像 发表于 05-11 17:00 386次阅读

    用这种方法来估测CH552的电阻可以吗?

    CH552的端口可以设置四种模式,1、浮空输入,无上2、 推挽输入输出,3 、输入输出
    发表于 03-01 14:48

    I2C总线-通信线缆长度的影响及改进措施

    的,那么如何延长 I2C 通信线缆长度呢,也就是如何进行I2C远距离通信,下面几条经验是可以作为参考的: (1)实验测试中,我们发现,在通信正常的情况下,I2C总线的
    发表于 01-21 06:03

    基于FPGA的I2C控制模块设计

    I2C_WRITE_WDATA.v模块实现I2C写时序,I2C_Controller (I2C控制器)例化了I2C_WRITE_WDATA.
    的头像 发表于 12-26 09:48 6435次阅读
    基于FPGA的<b class='flag-5'>I2C</b>控制模块设计

    I2C死锁的问题

    产生8个时钟脉冲,然后低SCL信号为低电平,在这个时候,从设备输出应答信号,将SDA信号为低电平。 如果这个时候主设备异常复位,SCL就会被释放为高电平。此时,如果从设备没有复位,就会继续
    发表于 12-04 06:00

    基于CW32 MCU的I2C接口优化稳定读写EEPROM关键技术

    过低的频率导致通信错误。 电阻的选择与配置:探讨I2C总线上电阻的作用,如何根据线缆长度
    发表于 12-03 07:29

    I2C的缺点介绍

    距离限制: I2C 主要设计用于单个电路板内或位置较近的组件之间的短距离通信。总线的电容和电阻电阻限制了可实现的最大通信距离。随着
    发表于 11-27 06:10

    深入剖析I2C协议

    I2C是由Philips开发的简单的双向两线总线,在深入浅出理解SPI协议中,我们区分了单工,半双工,全双工协议数据流向的区别,根据特征,I2C协议属于半双工协议(即同一时刻,数据单向流动)。此外
    的头像 发表于 08-21 15:10 4054次阅读
    深入剖析<b class='flag-5'>I2C</b>协议

    请问I2C和驱动能力怎么修改?

    我想关闭芯片内部I2C并调整引脚的驱动能力,软件怎么操作呢?
    发表于 08-11 06:54

    AS32系列MCU芯片I2C模块性能解析与调试

    实现了IIC协议的标准模式和快速模式,支持多主机IIC总线架构。其中标准模式为100K,快速模式400K。 硬件设计 I2C 总线内部使用极开路输出驱动器,因此 SDA和 SCL 可以被
    的头像 发表于 06-20 16:31 1146次阅读
    AS32系列MCU芯片<b class='flag-5'>I2C</b>模块性能解析与调试

    【技术说明】数字输出压力传感器的I2C通信

    地址进行软件寻址,且主从关系始终存在。总线连接设备的输出级采用架构设计,因此必须在总线上提供电阻
    的头像 发表于 06-19 11:02 2043次阅读
    【技术说明】数字<b class='flag-5'>输出</b>压力传感器的<b class='flag-5'>I2C</b>通信

    Analog Devices Inc. ADuM1252双向I2C隔离器数据手册

    Analog Devices Inc. ADuM1252双向^I2C^隔离器为要求在同一线路上双向传输数据的应用(如 ^I2C^ )提供两个双向通道。为防止闩锁操作,第1侧
    的头像 发表于 06-10 10:30 1275次阅读
    Analog Devices Inc. ADuM1252双向<b class='flag-5'>I2C</b>隔离器数据手册