I2C 的开漏和上拉电阻

原创 2016年08月29日 12:49:44

开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
  结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。 
  应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。 



I2C <wbr>的开漏和上拉电阻


开漏是指放大电路中三极管集电极开路;
上拉电阻是用来把无源器件点的电位拉到电源电位;

 可以将多个开漏输出的Pin,连接到一条线上。形成 “与逻辑” 关系。当PIN_A、PIN_B、PIN_C任意一个变低后,开漏线上的逻辑就为0了。这也是I2C,SMBus等总线判断总线占用状态的原理。(有一个变低,就把SDA拉低了。说明开始传送信号)。






I2C总线中有2个口线,SDASCL。这两个口线对为OC输出。什么是OC呢?相对OC还有什么输出呢?
OC就是开漏输出(Open Collector)的简称,有时候也叫OD输出(Open-Drain),OD是对mos管而言,OC是对双极型管而言,在用法上没啥区别。
相对于OC输出,另一种输出叫推挽输出(Push-Pull),一般的MCU管脚输出可以设置这两种模式。这里分别介绍下这两种输出的不同点。
 
推挽输出 : 可以输出高、低电平连接数字器件,推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.
开漏输出 输出端相当于三极管的集电极未接任何电平, 要得到高电平状态需要上拉电阻才行,适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)
 
简单的这样理解就可以了。如果管脚设置成推挽输出模式,输出高时,IO口相当于VCC, 输出低时IO口相当于接地。如果管脚设置成开漏输出模式,输出高时,IO口的电平会和与其相连的口线进行与操作,如果都为高,才会被上拉拉成高电平,输出为低时,也相当于接地。
 
I2C总线要实现线与的功能,所以SDASCL总线都必须设置为开漏输出模式。



一般的用法是会在漏极外部的电路添加上拉电阻。
I2C主线上的电阻是上拉电阻,是为了保证电平状态,不是供电的;比如控制器无输出信号的时候,主线上确定为高电平,有低电平信号时,则主线上信号被拉低,为确定的低电平;

相关文章推荐

I2C上拉电阻

转自:http://shenze60.blog.163.com/blog/static/315747722010015102653772/ I2C的上拉电阻可以是1.5K,2.2K,4.7K, 电阻的...
  • muojie
  • muojie
  • 2011年03月08日 15:48
  • 1316

I2C总线上拉电阻--为什么要

asw1: 这个就要看你使用的单片机是否有标准的IIC标准接口了,如果你使用了标准的IIC接口,这个接口在使能的时候,引脚进入漏极开路模式,不过有一些单片机内部的上拉...

i2c上拉电阻的实例分析

手机原理设计中,上拉电阻常用在中断,GPIO控制,I2C等信号上,本文希望能通过实例分析加深对上拉电阻的理解。如果有错误,请大神们提出来。     中断,GPIO,I2C等一般都是OC或者OD门,芯...

I2C总线上拉电阻的选择

1、I2C接口的输出端是漏极开路或集电极开路,所以必须在接口外接上拉。 2、上拉电阻的范围很宽,但也需要跟据功耗、信号上升时间等具体确定。 和速度应该没关系。主要是I2C是oc,所以需要。...

STM32 I2C上拉电阻的选择问题

从开源的设计中我们可以看到,I2C的上拉电阻可以是1.5K,2.2K,4.7K,然而电阻的大小对时序有一定影响,对信号的上升时间和下降时间也有影响,一般接1.5K 或2.2K。  上拉电阻阻值的确定...

I2C上拉电阻到底多大

I2C上啦电阻到底多大 1. I2C出现的问题 最近群里,由于大部分人都玩摄像头,在摄像头初始化,即I2C接口的初始化中,前前后后出现了很多问题,包括我自己。不能理解。。如下部分群聊记录: ...

I2C上拉电阻取值问题

漏极开路上拉电阻取值为何不能很大或很小?        如果上拉电阻值过小,VDD灌入端口的电流(Ic)将较大,这样会导致MOS管(三极管)不完全导通(Ib*β        如果上拉电阻...
  • bst007
  • bst007
  • 2014年01月22日 14:35
  • 1204

I2C总线-上拉电阻阻值的计算

I2C的上拉电阻可以是1.5K,2.2K,4.7K,电阻的大小对时序有一定影响,对信号的上升时间和下降时间也有影响,一般接1.5K或2.2K I2C上拉电阻确定有一个计算公式: Rmin={Vdd(m...
  • liiiii3
  • liiiii3
  • 2015年07月14日 19:19
  • 825

I2C的上拉电阻可以是1.5K,2.2K,4.7K, 电阻的大小对时序有一定影响,对信号的上升时间和下降时间也有影响,一般接1.5K或2.2K

I2C上拉电阻确定有一个计算公式: Rmin={Vdd(min)-o.4V}/3mA Rmax=(T/0.874) *c,   T=1us 100KHz, T=0.3us 400KHz C是Bu...
  • slj_win
  • slj_win
  • 2012年06月02日 09:49
  • 9971

如何确定I²C总线上拉电阻的阻值

I2C总线为何需要上拉电阻? I2C(Inter-Intergrated Circuit)总线是微电子通信控制领域中常用的一种总线标准,具有接线少,控制方式简单,通信速率高等优点。 I2C总线...
  • winitz
  • winitz
  • 2017年05月03日 22:37
  • 280
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:I2C&nbsp;的开漏和上拉电阻
举报原因:
原因补充:

(最多只允许输入30个字)