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接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

541板哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值