电源技术中I2C及PM Bus总线介绍
1 前言
本文引用地址:http://www.amcfsurvey.com/article/176643.htm由于数字电源的控制灵活、结构变化灵活、调节、维护方便和造价低的一系列优点,代表了电源技术的发展方向。而在数字电源中,总线技术发挥了很重要的作用,本文结合数字电源中常用的总线技术加以介绍。
I2C总线是英文“Inter Integrated Circuit Bus”的缩写,常译为“集成电路间总线”或“内部集成电路总线”。I2C总线以它强大的控制能力和精巧的电路结构,得到各生产厂家的认可。目前,I2C总线在许多电子产品中得到了广泛应用。
I2C总线接口的有关技术指标最早在1982年确定。Philips公司将I2C总线以简单双线接口的形式首先推出,用于在同一块电路板或机柜中的有关电子部件之间实现通信,1987年Philips公司拥有了I2C总线的专利。在I2C中有两条信号线,一条用于时钟信号的传输,一条用于数据信号的传输,通过I2C总线,可以在主控部件和从控部件之间完成有关命令、控制和工作信息通过两条串行信号线来传输。I2C总线的最典型应用就是通过一个主控部件来完成有关部件之间的通信控制。由于I2C总线的使用简单性,所以目前I2C总线得到了广泛的应用,I2C总线的有关性能不断得到提高,通信速率和寻址范围也在不断提升。
作为工业标准,I2C总线作为一种很有吸引力的物理通信方式,在ACCES bus、SM Bus、PSMI和IPMI工业标准总线中,I2C总线的有关技术指标也被引用。I2C总线可以应用于许多的微控制器,并且在许多应用场合,利用通用的I/O引脚,通过软件也可以驱动I2C总线。例如,在1991年,由一些公司牵头开发了ACCESS bus(存取总线,简称A.b),这里利用了I2C总线作为它的物理通信层,从而使ACCESS bus具有使能被控器件的能力,ACCESS bus被用作是一种改进的、简化的、规范的和灵活多用的方法来连接计算机的内部,外部器件到CPU,它支持像时钟和电池电能监控等器件的工作,并且也支持键盘、鼠标、显示器和调制解调器的工作。在1995年,ACCESS bus工作组(ABIG)发布了V3.0技术文件版本,一些公司(例如:USAR和日本Fujitsu公司都参加到了ABIG的活动中,并在智能电池系统接口论坛Smart Battery system Interface Forum:SBS-IF)中积极参与工作。
2.1 关于I2C总线
I2C总线是串行总线系统,I2C总线由两根线组成,一根是串行数据线,常用SDA表示;另一根是串行时钟线,常用SCL表示。CPU利用串行时钟线发出时钟信号,用串行数据线发送或接收数据,实现对被控电路的调整与控制。由于I2C总线只有两根信号线,因此数据的传输方式是串行方式,其数据传输速度低于并行数据传输方式,但I2C总线占用CPU的引脚很少,只有两个,有利于简化CPU的外围线路。
在I2C总线系统中,CPU是核心,I2C总线由CPU电路引出,其他被控对象均挂接在I2C总线上,I2C总线系统电路结构示意图如图1所示。
图1 I2C总线系统电路结构示意图
2.2 I2C总线接口电路
I2C总线上传输的是数字信号,如果I2C总线上挂接的被控集成电路为模拟电路,为便于与被控模拟电路通信,在被控对象中需要增加I2C总线接口电路,受控IC中I2C总线接口电路工作原理图如图2所示。接口电路一般由I2C控制器和控制开关等电路组成。由CPU送来的数据信息经译码器译码后控制信号才能对被控IC执行控制操作。被控对象通过I2C总线接口电路接收由CPU发出的控制指令和数据,实现CPU对被控对象的控制。
I2C总线是双向总线系统,通过I2C总线CPU可以向被控IC发送数据,被控IC也可通过I2C总线向CPU传送数据,但被控IC是接收数据还是发送数据则由CPU控制。由于I2C总线是双向总线系统,因此CPU可以对I2C总线上挂接的有关电路进行故障检查。
对生产自动化调整功能的电器,可将生产线上的计算机与电器的I2C总线相连,根据电器不同调整项目的预置功能和要求,将最佳调整数据传送到电器的E2PROM存储器中,也可将标准数据固化在CPU的只读存储器中。采用I2C总线的电器节省了很多可调电位器,简化了调整工艺,产品的一致性好,工作可靠性高。
图2 I2C总线系统的电路结构示意图
2.3 I2C总线系统的功能
以CPU为核心的I2C总线系统,主要用完成以下几个功能。
⑴用户操作功能
用户在使用电器时,通常要进行有关控制参量的调节、控制等操作,操作时只需按动本机键盘或遥控器键盘上的相应按键,CPU便通过I2C总线向被控电路发出有关控制指令。
⑵维修调整功能
完成对被控电器各单元电路进行工作方式设定和调整的控制功能。在普通电器中,是利用可调电位器进行有关单元电路的各种工作参数调整。而在I2C总线的被控电器中,这些参数都可由操作人员进行专门的调整状态后,通过遥控器或本机操作键来完成有关工作参数的调整。⑶故障自检功能
由于I2C总线上的信息是由SDA和SCL两线串行数据信号线双向传输的,因此CPU可以对I2C总线的通信情况和被控集成电路的工作状态进行监测,并在屏幕上显示检测结果,为维修人员提供有关故障自检信息。被控器送来的低电平应答信号,CPU就会判断该被控器有故障,并终止数据传送。由于各被控集成电路和器件均有自己的地址,所以,在总线上不同时间传送着众多的控制信号,但各被控器只要把与自己地址相同的控制信号从总线上取下来,并进行识别和处理,得到相应的控制信号,就可以实现相应的控制。
2.4 I2C总线系统的控制过程
⑴CPU与存储器之间的数据交换
I2C总线系统中的存储器存储有两种信息:一是用户信息,是用户写入的控制信息,此信息用户可以更改,如各种模拟控制量(例如电源的OVP、OCP、OTP和所需输出电压值等);另一种是控制信息,是由厂家写入的控制数据,此信息用户不能改变。电器正常工作时,CPU从存储器中取出有关用户信息和控制信息,并送往被控电路使其处于正常工作状态;当调整电器时,CPU也从存储器中取出控制信息,检修人员使用正确的调试步骤来改变这些控制信息,以确保采用I2C总线的电器处于最佳工作状态。
⑵CPU对被控电器的控制过程
CPU对采用I2C总线的被控电器控制需经过以下过程。
①CPU寻址过程。当CPU要对某被控器进行控制时,CPU将向总线发出该被控器的地址指令,被控器收到指令后,便发出应答信息,CPU总线收到应答信息后,就将该被控器作为控制对象。
②CPU调用数据过程。CPU找到被控器后,就从存储器中调出相应的用户信息及控制信息,并通过I2C总线送到被控器,使被控器处于所要求的工作状态。
③被控器执行指令的过程。被控器接收到指令后,便对指令进行译码,并将译码的结果与自己的控制内容编码进行比较,以确定进行何种操作,这项工作是由总线接口电路中的译码器来完成的。确定进行何种操作后,总线接口电路中的相应控制开关便自动接通,控制数据经过控制开关送到D/A转换器,转换成模拟控制电压,用以控制相应的模拟电路,完成有关操作。I2C总线数据传送最繁忙的时刻是在采用I2C总线电路的刚开机一瞬间,由于被控电路没有存储数据的功能,因此,每次开机时CPU都要从存储器中取出控制数据,送往各被控器,使被控器进人相应的工作状态。因此,刚开机时CPU的控制任务最繁重,控制过程最复杂,损坏的可能性也就最大,所以使用I2C总线的电器应尽量避免频繁开/关机。
根据电器功能的强弱以及在I2C总线上挂接的被控电路的不同,在I2C总线采用的CPU上可引出一组或多组I2C总线。
由I2C总线控制的集成电路或器件必须具有专用的总线端子,即SDA端子与SCL端子。凡是具有SDA、SCL端子(引脚)的集成电路或器件,均可以由总线控制。
评论