1 前言
由于数字电源的控制灵活、结构变化灵活、调节、维护方便和造价低的一系列优点,代表了电源技术的发展方向。而在数字电源中,总线技术发挥了很重要的作用,本文结合数字电源中常用的总线技术加以介绍。
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就会判断该被控器有故障,并终止数据传送。由于各被控集成电路和器件均有自己的地址,所以,在总线上不同时间传送着众多的控制信号,但各被控器只要把与自己地址相同的控制信号从总线上取下来,并进行识别和处理,得到相应的控制信号,就可以实现相应的控制。
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总线输出端的内部电路。
图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组件地址)等英文表示。
3 PM Bus
3.1 关于PM Bus
PM Bus是属于系统管理实施论坛(System Implementers Forum:SM-IF)的一个开放性标准,用于定义功率集成电路,所有类型的功率变换电路(例如AC/DC,隔离的DC/DC,非隔离的点负载(POL)变换器和微处理器供电的变换器等)之间相互通信的一种开放性通信协议。
有关PM Bus的有关技术文件可以免费得到,并且任何对PM Bus感兴趣的公司都可以参与到SM-IF论坛中。
电源管理总线接口论坛(PM Bus-IF)是系统管理接口论坛(SM-IF)的一部份,是一个非盈利性质的工业标准化组织。
由主要电源产品供应商、半导体公司和有关软、硬件产品供应商参于的PM Bus接口论坛(PM Bus-IF)所制定的PM Bus是一种开放的电源系统标准,目前PM Bus接口论坛有30多个成员,其目的是要促进PM Bus的推广和使用,电源管理总线(Power Management Bus:PM Bus)是关于电源系统的一个标准。
在PM Bus中充分定义了电源系统中的变换器和其它相关部件之间的有关命令语句,PM Bus控制协议是建立在系统管理总线(SM Bus)的串行通信协议基础上,利用PM Bus可以实现有关编程、控制和有关电源变换产品的实时监控,是一种用于电源部件之间的模拟和数字信号控制的一种方便、实用的通信控制方式,有良好的互操作性,利用PM Bus可以简化电源系统的设计和节省电源系统的设计周期。目前使用PM Bus的有关公司各单如下:
Active-Semi
Analog Devices,Inc.
Artesyn Technologies,Inc.
Astec of Emerson Network Power
ATC Power Systems
Cherokee International
CHiL Semiconductor Corporation
ColdWatt
Dell
Delta Electronics
Ericsson Power Modules
Fairchild Semiconductor
Infineon
Integral Wave Technologies
International Rectifier
Intersil Corporation
Linear Technology
Maxim Integrated Products, Inc.
Micro Computer Control Corporation (MCC)
Murata
National Semiconductor
ON Semiconductor
Power Plaza
Primarion
Roal Electronics
RRC Power Solutions
Silicon Laboratories
Sili con Storage Technology
STMicroelectronics
Texas Instruments
Tyco Electronics Corp.
Unipower Corporation
Volterra Semiconductor Corporation
Zilker Labs到目前为止,电源系统各部份电路之间的通信已不是一个新的概念,在电源系统和主控电路单元之间的通信已使用了许多年,最早采用使电源系统工作和被监控的通信控制方法,电源系统的工作状态被主控电路加以监控。
微控制器(MCU)是一种可以很好应用于电源管理的器件,利用微控制器可以实现电源系统更为复杂和有效的控制和监控,最早使用的电源控制命令就是电源的开/关控制命令,随后,随着在电源系统中微控制器件的使用,就可以很方便的实现电源输出电压/输出电流等相关工作参数的控制。例如,利用一个“digi pot”的简单部件就可以通过微控制器来调节电源系统的电压检测信号和电流检测信号的参数,而“digi pot”这类的器件又是许多采用I2C总线优势的器件之一。利用I2C总线可以实现存储器、显示器、传感器和电源控制集成电路之间的互连。
早在1995年,通过各种各样的总线,(例如RS-232、单线(One Wire)、SPI和I2C等)完成了电池管理工作,这时对通信管理的物理接口、命令、数据格式均没有统一的工业标准。Intel公司和Duracell公司合作开发了智能电池系统SBS(Smart Battery System),其目的想要做出一个与电池类型无关的高级和精确的电池管理系统,并且使这个智能电池管理系统适用于不同的可充电电池生产厂商生产的可充电电池的充电管理,并降低智能电池管理系统支持多种通信控制协议的负担,这个物理通信协议就是系统管理总线(SM Bus),而命令语言就是智能电池数据SBD(Smart Battery Data)。
系统管理总线(SM Bus)是I2C总线的一个版本,是智能电池系统(SBS)的物理层。智能电池系统(SBS)的上一层发出命令,并在智能电池系统元件之间实现有关命令的响应,智能电池、智能充电器和智能选择器利用SM Bus的通用命令就可以完成相关控制信息的传送和响应。这些命令有许多是和I2C中的命令相同的,利用这些命令可以完成电池容量和工作条件的监控。同时更为重要的是,智能电池系统(SBS)中的电池或主控电路还可以对智能充电器发出控制命令,利用这些控制命令来设定充电器的输出电压、输出电流和其它一些重要的工作参数。在大多数情况下,输出电压命令的分辨在mV数量级,输出电流命令的分辨率在mA数量级,利用SM Bus可以完成和可充电电池类型无关的充电器系统的管理和控制。
1996年,由Intel和Duracell公司发起成立的智能电池管理系统接口论坛(SBS-IF)。为了保持智能电池系统(SBS)和SM Bus的优越性,其它一些相关公司也参与到了论坛的工作,特别是美国德州仪器TI公司参与了电源管理总线接口论坛(PM Bus-IF)的工作。
在笔记本电脑的硬件电路中智能电池系统(SBS)和SM Bus已得到了广泛的应用,在Windows2000系统中也含有SM Bus的软件驱动程序。
智能电池系统(SBS)和SM Bus有关技术内容的发展是和高级结构与电源接口(ACPI:Advanced Configuration and Power Interface)的有关技术内容的发展同步进行的。ACPI的第1版本在1996年12月公布,其中,Intel公司发挥了重要的作用,对与操作系统和电源管理(OSPM:Operating System-directed Configuration and Power Management)应用方面有关的内容,ACPI是一个很重要的内容。如果要实现SBS和支持SBS系统的SM Bus,需要用到和高级结构与电源接口(ACPI)兼容的有关系统。
1998年,SBS-IF发布了SBS1.1和SMBus1.1版本。SMBus1.1中的主要特点是在每个SM Bus通信数据包的末位加了可选数据包检错字节,采用8位的循环冗余纠错检错算法(CRC-8)。
2000年,SBS-IF发布了SMBus2.0,即所谓基于PCI的SM Bus。SMBus2.0中允许器件的地址被动态分配,然后,外设元件互联特殊兴趣小组(PCI-SIG:Peripheral Component Interconnect Special Interest Group)(在2000.10.20日)将它的PCI连接器的第○40和○41引脚分配给SM Bus的时钟和数据信号。
在2000年,SBS-IF公布了它用于Windows的SM Bus的驱动程序。和微软的SM Bus驱动程序不同,SBS-IF推出的SM Bus驱动程序可以用于Windows98系统,并且工作时不需借助于嵌入式控制器。
作为源于1998年的另一个应用实例,Intel公司公布了它的智能管理接口平台IPMI(Intelligent Platform Management Interface)。IPMI1.0采用I2C总线作为它的物理层,IPMI1.5可以使用SM Bus 1.1,并且具有使所传送的数据包出错的检测功能。
作为数控源系统,很需要一个用于电源通信管理的工业标准协议,在这个标准协议中需注意以下几方面的问题:首先这个协议对电源系统设计人员而言要简单、易懂和易学,并且造价要低。这里I2C总线就是一个很好的例子,智能电池系统(SBS)采用SM Bus用于可充电电池充电器和背光照明系统的电源管理已有一段时间了。
在2004年,由电源管理总线(PM Bus)开发为主的一些公司推出了电源管理用的工业标准,PM Bus采用SM Bus做为它的物理通信层,并且支持SM Bus中的如可选控制信号线。在现行的PM Bus 1.0中没有地址仲裁功能,PM Bus的技术指标被分为2部份,第1部份规范了物理层的有关技术指标,第二部份规范了命令层的有关技术指标。同样,和在SM Bus智能电池系统(SBS)中界定了便携式电源管理的方法一样,在PM Bus中也界定了电源子系统的管理方法。
SM Bus的主要任务由负载点联盟POLA(Point of Load Alliance)和分布式电源开放标准联盟DOSA(Distributed-Power Open Standards Alliance)加以赋予。
在2005年,智能电池系统接口论坛(SBS-IF)又被更名为系统管理接口论坛(SM-IF),并且经过重新组合,形成2个论坛,即SBS论坛(SBS-IF)和PM Bus接口论坛(PM Bus-IF)。组织利用了SBS和PM Bus的共生关系,SBS工作组利用SM Bus来进行笔记本电脑中的电源管理和控制已有10余年的时间,所有这些对PM Bus的开发与使用都有很大的帮助。
在2005年3月PM Bus接口论坛推出了PM Bus的1.0版本有关技术文件,目前有30多个公司使用PM Bus,利用PM Bus可以简化数字电源系统的设计。
3.2 PM Bus的系统结构图和有关命令类型
PM Bus的系统结构图如图7所示,有关命令类型如表1所示。
图7 PM Bus的系统结构图
表1 PM Bus的有关命令类型
评论
查看更多