IIC总线上拉电阻计算
- 1. 概述
- 2. 上拉电阻计算
- 3. 总线传输速度与功率
- 4. 实例计算
1. 概述
IIC(Inter-Integrated Circuit)其实是IICBus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。I²C的正确读法为“I平方C”(“I-squared-C”),而“I二C”(“I-two-C”)则是另一种错误但被广泛使用的读法。自2006年10月1日起,使用I²C协议已经不需要支付专利费,但制造商仍然需要付费以获取I²C从属设备地址。
即I2C,一种总线结构。
例如:内存中的SPD信息,通过IIC,与BX芯片组联系,IIC 存在于英特尔PIIX4结构体系中。
随着大规模集成电路技术的发展,把CPU和一个单独工作系统所必需的ROM、RAM、I/O端口、A/D、D/A等外围电路集成在一个单片内而制成的单片机或微控制器愈来愈方便。目前,世界上许多公司生产单片机,品种很多。其中包括各种字长的CPU,各种容量的ROM、RAM以及功能各异的I/O接口电路等等,但是,单片机的品种规格仍然有限,所以只能选用某种单片机来进行扩展。扩展的方法有两种:一种是并行总线,另一种是串行总线。由于串行总线的连线少,结构简单,往往不用专门的母板和插座而直接用导线连接各个设备。因此,采用串行线可大大简化系统的硬件设计。PHILIPS公司早在十几年前就推出了I2C串行总线,利用该总线可实现多主机系统所需的裁决和高低速设备同步等功能。因此,这是一种高性能的串行总线。
飞利浦电子公司日前推出新型二选一I2C主选择器,可以使两个I2C主设备中的任何一个与共享资源连接,广泛适用于从MP3播放器到服务器等计算、通信和网络应用领域,从而使制造商和终端用户从中获益。PCA9541可以使两个I2C主设备在互不连接的情况下与同一个从设备相连接,从而简化了设计的复杂性。此外,新产品以单器件替代了I2C多个主设备应用中的多个芯片,有效节省了系统成本。
I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。
2. 上拉电阻计算
避免总线信号的混乱,要求各设备连接到总线的输出端时必须是漏极开路(OD)输出或集电极开路(OC)输出。设备上的串行数据线SDA接口电路应该是双向的,输出电路用于向总线上发送数据,输入电路用于接收总线上的数据。而串行时钟线也应是双向的,作为控制总线数据传送的主机,一方面要通过SCL输出电路发送时钟信号,另一方面还要检测总线上的SCL电平,以决定什么时候发送下一个时钟脉冲电平;作为接受主机命令的从机,要按总线上的SCL信号发出或接收SDA上的信号,也可以向SCL线发出低电平信号以延长总线时钟信号周期。
总线空闲时,因各设备都是开漏输出,上拉电阻Rp使SDA和SCL线都保持高电平。任一设备输出的低电平都将使相应的总线信号线变低,也就是说:各设备的SDA是“与”关系,SCL也是“与”关系。
一个强大的上拉(小电阻)阻止I2C引脚在IC上能够驱动低电平。VoL电平可以被IC的输入缓冲器读取为有效的逻辑低电平,该电平决定了最小上拉电阻[R,(min) ]。R.(最小值)是Vcc,vol (最大值)和Iol的函数:
由于I2C标准上升时间规定,最大上拉电阻受总线电容 (Cb)的限制。如果上拉电阻值太高,I2C线在被拉低之前可能不会上升到逻辑高。RC电路对从时间t=0开始的幅值为Vcc的电压阶跃的响应由时间常数RC表征。电压波形可以写成:
I2C总线的上升时间可以写成:
最大上拉电阻根据上升时间tr来计算:
表中列出了I2C总线的一些参数:
Rp(min)在图中绘制为VCC的函数。Rp最大值被绘制为图3中标准模式和快速模式I2C的Cb的函数。
3. 总线传输速度与功率
一旦选择了上拉电阻的最小值和最大值,就可以根据速度和功率预算之间的权衡来决定电阻值。由于更小的RC延迟,较小的电阻将提供更高的速度,而较大的电阻将提供更低的功耗。
这是一个需要折中考虑的设计。
4. 实例计算
对于具有以下参数的快速模式I2C通信,请计算上拉电阻值。
按照上表进行计算:
因此,我们可以选择966.667 Ω到1.77 kΩ之间的任何可用电阻值。可以根据功耗和速度的权衡来选择上拉电阻的值。