• IIC总线专题超级全


    IIC(Inter-Integrated Circuit),是由飞利浦公司推出的一种串行通信总线(BUS),数字电路中应用非常广泛,经常用在对数据量以及速率要求不太高的场合,比如说用于传输单板配置、状态信息等。

    协议解读

    1、总线制式
    IIC是双线制,有两条信号线(SCL和SDA线),支持多主多从,下面分别做详细介绍:
    SCL:时钟线,由主器件输出(master)
    边沿触发,上升沿将数据输入从器件,下降沿驱动从器件输出数据,为边沿触发信号;
    SDA:数据线,主、从(slave)器件都能输出
    双向数据线,漏极开路(OD,open-drain)/集电极开路(OC,open-collector)结构。

    2、总线速率
    标准模式:100kbit/s
    快速模式:400kbit/s
    高速模式:3.4Mbit/s

    3、总线挂载设备
    总线负载电容不超过400pF,电容会影响信号上升沿,进而影响总线速率,因此IIC对总线下电容总量有限制,从器件越多,总线下电容也越大;如果想要挂很多器件,则可以在总线中间串中继器进行隔离(例如9517)

    4、硬件电路
    IIC的接口是OD/OC结构,因此其本身无法输出高电平。
    弊端:不接外部上拉就只能输出低电平,所以设计的时候千万记得把上拉电阻给留上;
    优点
    (1)上拉电阻:
    外部上拉可以减少IC自身的驱动负担,IIC上拉电阻所接入的电源电压VCC,但由于上拉电阻(kohm)与FET关断时候的超大阻抗(Mohm)分压,导致总线上的电压会略低于VCC,但是由于分压电阻差距过大,一般是认为相等的
    (2)线与功能:
    IIC多主机同步时钟和仲裁总线控制权的时候感受就非常明显,如果多主机环境中的一个主机准备传输高电平,但看到线路电平为低电平(另一个设备正在将其拉低),说明另一个设备正在使用总线,因而将会停止通信。推挽式接口不允许这种类型的自由,这是 I2C 的优势。
    (3)改变信号电平(在手册允许的范围内甚至能把信号电平整的比IC供电电压还要高),
    (4)防烧毁功能:
    总线上设备不会出现一个设备拉高,另一个设备拉低到地的问题,导致电源轨到地短路的情况
    (5)寄生电容:
    不可避免总是会存在寄生电容,因而电平从高到低、从低到高是需要一定的时间的
    在这里插入图片描述
    (6)推挽输出:
    推挽输出的是由两个互补的三极管或者MOS管组成,始终保持一个导通,另一个截止的状态,假如一个主机A使用推挽输出高电平,另一个主机B使用推挽输出低电平,这时候电流将通过VCC流过主机A的上管,主机B的下管到地,总线的电压由两个管子的导通电阻进行分压,如果管子一致性较好,那么总线上的约为 VCC的一半。
    推挽输出的特性决定了其不能用于多主机的环境中,但是由于推挽输出的能力比开漏输出的能力强太多(因为没有上拉电阻的限流作用),在I2C 的超快速模式(5Mbit/s)中要求必须使用推挽输出,才能满足信号的时序要求,在这个模式下,只能沿一个方向传输数据,用于驱动 LED 控制器和其他不需要反馈的设备时。
    (7)开漏输出
    开漏输出允许线与(与门)的逻辑功能,导致某个设备输出为低时,线路就是低电平,而输出高电平时,可以通过输入缓冲器来判断总线的电平,就不需要再修改IO口的输入输出模式了,对于代码编写软件模拟I2C 来说是极其方便的。
    典型开漏IO口结构如下图所示
    在这里插入图片描述
    开漏拉低
    如上一节所述,漏极开路设置只能将总线拉低,或“释放”总线(让电阻将其拉至高电平)。下图显示了将总线拉低的电流,想要发送低电平的逻辑,将激活下拉式FET,这将提供接地短路,从而将线路拉低。
    在这里插入图片描述
    开漏释放总线(外部电阻拉高)
    当从机或主机希望发送逻辑高电平时,它只能通过关闭下拉式FET来释放总线。这使得总线悬空,上拉电阻将电压拉到电压轨,这将被解释为高电平。下图显示了流经上拉电阻的电流,该电阻将总线拉至高电平
    在这里插入图片描述

    IIC接口

  • 相关阅读:
    端子排延时中间继电器DZS-822/DC110V
    Python操作MySQL库结(MySQL详细下载、安装、操控及第三方库中的使用)
    tomcat (SCI)ServletContainerInitializer 的加载原理
    Maven 如何配置推送的仓库
    【大数据Hive】hive select 语法使用详解
    小米球ngrok内网穿透
    FCOS论文复现:通用物体检测算法
    最简单的SpringCloudStream集成Kafka教程
    西电软件体系结构笔记ATMA
    【刷爆LeetCode】七月算法集训(30)拓扑排序
  • 原文地址:https://blog.csdn.net/u011816009/article/details/126551752