1 前言
随着IT技术对电源技术的渗透,数字电源技术应运而生,由于数字电源的控制灵活、结构变化灵活、调节、维护方便和造价低的一系列优点,代表了电源技术的发展方向。而在数字电源中,总线技术发挥了很重要的作用,本文结合数字电源中常用的总线技术加以介绍。
2 I2C总线
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就会判断该被控器有故障,并终止数据传送。由于各被控集成电路和器件均有自己的地址,所以,在总线上不同时间传送着众多的控制信号,但各被控器只要把与自己地址相同的控制信号从总线上取下来,并进行识别和处理,得到相应的控制信号,就可以实现相应的控制。#p#分页标题#e#
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端子(引脚)的集成电路或器件,均可以由总线控制。
2.5 I2C总线信号的传输方式
I2C总线中的两根信号线(SDA、SCL)在传输各种控制信号的过程中是有严格分工的。其中,SDA数据线用来传输各控制信号的数据及这些数据占有的地址等内容;SCL时钟线用来控制器件与被控器件之间的工作节拍。为保证总线输出电路得到供电,SDA线和SCL线均通过上拉电阻和电源连接,当总线空闲时,SDA和SCL两线均保持高电平。I2C总线控制信号传输波形如图3所示。
图3 I2C总线控制信号传输波形
(1)时钟线控制信号
SCL线为高电平期间,SDA线上传输的数据必须保持稳定,在此期间,控制器件与被控制器件之间可以交换数据;SCL线为低电平期间,SDA线上传输的数据可以变化,即允许数据线上电平高低跳变。
(2)数据线控制信号
数据线上传输的控制信号,均按图3所示的内容和顺序先后传输:起始状态信号、被控电路地址、读写方式(数据传输方向位)、应答信号、数据信号、应答信号、数据信号、应答信号、终止状态信号。
在时钟线为高电平期间,数据线上一个电平由高到低的跳变规定为起始状态,电平由低到高的跳变规定为终止状态,起始状态信号和终止状态信号均由CPU发出。当CPU发出起始状态信号后,总线即处于占用状态;当CPU发出终止状态信号后,总线又处于空闲状态。在SDA线上传输的数据,其字节为8位。前7位是被控电路的地址,第8位是数据传输的方向位,“0”表示由CPU发送数据,“1”表示CPU接收数据。每传输一个数据字节后,跟着一位应答(确认)信号,这个应答信号是由CPU发出的,在应答位时钟期间,CPU释放数据线,以便被控器在这一位上送出应答信号。
当被控器的数据接收无误时,被控器发出低电平应答信号,经确认后的数据才有效。当数据被确认后,CPU便可以继续传送数据并继续对数据加以确认,直到CPU发出终止状态信号为止。若在应答位时钟期间,CPU未接收到被控器送来的低电平应答信号,CPU就会判断该被控器有故障,并终止数据传送。由于各被控集成电路和器件均有自己的地址,所以,在总线上不同时间传送着众多的控制信号,但是各被控器只要把与自己的地址相同的控制信号从总线上取下来,并进行识别和处理,得到相应的控制信号,就可以实现相应的控制。
2.6 I2C总线系统与外部电路的连接方式
I2C总线系统的外部电路结构简单,它与被控电路之间的连接方式有直接式和隔离式两种。
(1)直接式I2C总线
直接式I2C总线是指被控集成电路直接或通过电阻挂在I2C总线上,其电路工作原理图如图4所示。因为CPU的I2C总线输出端口内部电路形式为集电极开路(或漏极开路)形式,所以在CPU的I2C总线输出端必须通过上拉电阻R接+5V电源,为CPU的I2C总线输出端口的内部电路供电。图4中的电阻R为隔离电阻,C为抗干扰电容,主要是为了提高I2C总线上数据传输的可靠性,防止误动作进人维修状态和防止由于外部干扰信号改变I2C总线数据。稳压管VS是为了防止外部高电压损坏CPU的I2C总线输出端的内部电路。
#p#分页标题#e#
图4 直接式I2C总线工作原理图
(2)隔离式I2C总线
隔离式I2C总线是指CPU引出的总线通过隔离器与被控集成电路相连接。隔离器一般由晶体管组成,其电路工作原理图如图5所示。这种电路的优点是CPU与被控集成电路被晶体管隔离器隔离开,当被控对象发生故障使I2C总线上电压升高时,晶体管会截止,从而保护CPU不被高电压冲击而损坏。
图5 隔离式I2C总线工作原理图
2.7 I2C总线系统与外部电路的有关引脚
(1)CPU与I2C有关的引脚
采用I2C的CPU除了设置SCL串行时钟线引脚和SDA串行数据线引脚外,一般还设置了便于工厂生产线调试使用的I2C通/关闭控制引脚。当CPU的I2C通/关闭控制引脚接规定电平时,CPU便将I2C总线的控制权交给了生产线调试计算机,此时CPU不能通过I2C所挂接的电路进行控制。
在电路图上,I2C通/关闭控制引脚常用Bus OFF(总线关闭)、Service(维修)、EXT BUS(外部总线)、TEST(测试)、FACTORY(工厂)来表示。图6所示为I2C通/断控制工作原理图。例如CPU的第36引脚EXT BUS为I2C通/关闭控制端,正常工作时,CPU的第36引脚为高电平。接插件BC为生产调试时CPU的I2C外部计算机的连接插口,生产调试时,生产线计算机通过BC与此CPU相连,BC④引脚接地,使CPU的第36引脚EXT BUS变为低电平,CPU的I2C总线42、43引脚停止输出。电器的I2C系统由外部计算机接管。
图6 I2C通/断开控制工作原理图
在对具有I2C功能的CPU进行检查时,不要忘记检测I2C通/关闭控制引脚。如果此引脚工作条件不正确,则CPU不能向I2C发出时钟和数据信号,导致整个电器不能进人正常工作状态。
(2)被控电路与I2C有关引脚
I2C挂接的被控集成电路,除SCL和SDA引脚外,还有与I2C总线接口电路有关的其他引脚,如果这些引脚的工作条件发生变化,也会使I2C总线接口电路不正常工作,从而使电器出现故障。下面介绍几个比较重要的与I2C总线接口电路有关的引脚。
①I2C总线接口电路专用电源引脚(受控IC数字电路电源引脚)
挂接在I2C总线上的受控集成电路大多属于模拟电路,而受控集成电路中的I2C总线接口电路则属于数字电路。为避免数字电路与模拟电路之间的互相干扰,常为数字电路与模拟电路设置单独的供电端子,即设置I2C总线接口电路专用电源端子(或数字电路电源引脚)。如果I2C总线接口电源端子没有电压,则这块集成电路不能正常工作。
现在的集成电路常为不同功能的电路单独设置电源和接地端子,因此除了注意检查主电源引脚电压外,千万不要忘记检查其他电源引脚。
集成电路数字电源端电压一般为5V、3.5V或3V等低电压。数字电路电源端子常用以下方式标注:I2LVCC逻辑电路电源;DVCC数字电路电源;DVDD数字电路电源;DIGVDD数字电路电源;D.GND数字电路地线等。
②辅助地址选择引脚
CPU通过I2C总线对被控电路的地址进行选择,有时为了扩展I2C总线的功能和电路上的要求,在有些被控电路上还设有辅助地址选择引脚,只有对辅助地址选择引脚进行正确的设置后,CPU才能通过I2C总线对这一电路进行控制。当被控电路的辅助地址选择引脚电路出观故障时,将会造成I2C总线无法控制该电路,使整机电路功能不正常。在电路图上,辅助地址选择引脚常用ADDRESS(地址)、ADR(address地址)、ADDSEL(address selection地址选择)、MAD(module address组件地址)等英文表示。
转载请注明出处。