5、总线热插拔及系统解决方案
在实际运用中,总线上插入板卡时,由于新插入板卡电容的充电以及上电过程中一些低阻抗通道的存在,会产生极大的浪涌电流,拉低总线电平,对总线上其他设备产生干扰,影响总线上其他设备的正常运行。同时插拔时也对总线接口带来静电问题。
所以,对总线进行热插拔时,必须采取一些措施对子卡上电进行控制,限制浪涌电流,同时也要提供一定的静电泄放通道。下面对几种总线热插拔技术进行讨论。
(1)I2C总线热插拔
I2C总线是Philips公司推出的串行总线标准,由数据线SDA和时钟线SCL构成,可发送和接收数据。I2C总线上扩展的外围器件及外设接口通过总线寻址,是具备总线仲裁和高低速设备同步等功能的高性能多主机总线。运用举例如图所示。
I2C总线运用举例
由图中可以看出,I2C总线上外挂了许多设备,当我们插入或者拔出某一个I2C设备时,不应该对其他设备造成影响,具体表现为:
-
1、不能产生浪涌电流,影响总线信号。
-
2、要有静电防护能力,消除插拔产生的静电影响。
I2C总线上设备要支持热插拔,最常用的方法是采用支持I2C热插拔的总线缓冲驱动器,Philips公司的PCA9510A——PCA9514A都支持I2C总线热插拔,总体原理差不多,具体性能上有点差异, PCA9511A,在系统中的运用如图所示。
PCA9511A运用实例
PCA9511A实现I2C热插拔的原理分析如下:
如上图所示,PCA9511A的2、7引脚接从设备,3、6引脚接主设备。当系统上电过程中,SDA和SCL都保持高阻状态,并且由于2(ENABLE)引脚处于低电平状态,所以SDAIN与SDAOUT之间是断开的,SCLIN和SCLOUT之间也一样是断开的。当上电过程完成后,ENABLE管脚由低电平变为高电平了,进入初始化状态,内部的预充电功能开始执行,当初始化进入尾声的时候,停止命令和总线空闲状态检测功能开始执行,ENABLE有效的时间足够长后,所有的SDA和SCL管脚都进入了高电平状态,这时候如果在SDAIN和SCLIN总线上检测到停止命令或者检测到空闲信号,则SCLIN和SCLOUT连接,同样的SDAIN和SDAOUT也连接,并且IN信号和OUT信号之间通过双向缓冲器对内部电容和外部电容进行隔离。经过以上处理过程,基本上消除了I2C热插拔时总线的浪涌电流。
同时,PCA9511A具有一定的静电放电保护,其中人体模型大于 2000V,机器模型大于150V,充电器件模型大于1000V。所以PCA9511A一定程度上解决了热插拔过程中的静电泄放问题。
I2C总线热插拔案例
现象描述:
多槽设备,子卡和背板设备MCU均为LPC2103,子卡与背板设备之间通过I2C总线通信,示意图如下所示。
I2C总线连接示意图
当某个槽位空闲而其他槽位子卡在位工作时,空闲槽位插入子卡,则正常工作的槽位将通讯失败,经查,是由于插入子卡的瞬间,由于浪涌大电流拉死了背板I2C总线,导致I2C总线上其他正在运行的设备无法正常工作。
原因及解决办法:较早设计的设备,没有进行I2C热插拔设计,导致热插拔I2C总线上某个设备时对其他设备产生干扰,影响正常工作。
设计I2C总线板卡,需进行热插拔设计。
(2)74LVT16245在总线热插拔中应用
图中为通过总线连接到一起的板卡,Card1工作时,将接口总线被驱动为高电平(CMOS的上管导通),此时插入Card2,由于Card2的Vcc上电需要一定的时间,导致使能信号和输入端信号都为低电平,因此Card将驱动输出端口为低电平(CMOS的下管导通),从而在Card1和Card2之间出现了一条低阻抗的电流通路,两个接口器件都存在被损坏的可能。
子卡与背板之间通过总线通信的,比如PCI总线、telecomBus总线、UART总线等,一般采用逻辑器件来进行热插拔处理,74LVT16245就是我们最常用的芯片。
74LVT16245对总线热插拔的解决方法是使接口器件在Vcc上电完成之前,输出端口保持高阻而不对任何输入信号作出响应,这种解决方法称为上电三态(PU3S :Power up 3 state),上电三态的内部结构如图所示。
PU3S内部包含一个如上图所示的结构,PU3S输出低电平时,器件输出端呈现高阻状态,只有在PU3S输出高电平时,输出端才能对输入端的信号做出正确的响应。PU3S结构中,R1和R2构成分压电路,使M1管只有在Vcc的电平超过阈值后才能导通,因此在Vcc上电的过程中,节点2保持为高电平,驱动PU3S输出低电平,Vcc上电完成后,M1导通,节点2变为低电平,驱动PU3S输出高电平,器件输出端开始正常工作。
74LVT16245是一款高性能16位三态缓冲总线收发器,工作电压为3.3V,74LVT16245有输出使能管脚,能够控制总线之间的有效隔离,还有一个方向控制管脚,可以控制输入和输出的方向,具体方向控制见下图。
74LVT16245方向控制图
(3) CompactPCI总线热插拔
PCI和PCI-X总线是多点并行互联总线,多台设备共享一条总线。CompactPCI结合PCI的电气特性和Eurocard的机械封装特性,除了具有PCI总线的高性能外,还支持热插拔功能。为了使系统能够支持热插拔,CompactPCI协议在硬件和软件方面都做了特殊规定。
硬件方面,主要从连接器的角度进行了设计,CompactPCI的连接器分为长针、中针和短针,如图所示。
CompactPCI的连接器示意图
这样的设计使得CompactPCI模块在插入和拔出时各引脚按一定的顺序与系统底板进行连接和断开。
长针:电源、地引脚。用于插槽放电和Vo引脚预充电。
中针:PCI总线信号引脚。当模块上电以后,这些信号应该保持三态。为了减小对PCI信号的影响,在插入过程中,应预充电到1V左右。
短针:IDSEL、BD_SEL#引脚。用于模块插入/拔出的确认信号,当这个信号有效时(低电平),表示整个模块已完全插入系统中。
软件方面,需要在驱动程序级、服务程序级以及在应用程序级上有足够的附加软件来支持。
CompactPCI热插拔技术规范将热插拔划分为3个过程:物理连接、硬件连接和软件连接。
物理连接过程是一个机械连接过程,插入CompactPCI模块时,首先通过板卡两侧的静电条放电,电源、地线引脚首先接通,该模块的预充电电路对PCI信号线进行预加电,使这些信号线在与系统连接前维持在1.0V左右,从而使其与系统总线连接时产生的瞬态电流最小,最大限度的减小对总线的瞬态干扰,达到保护总线信号的目的,然后是中针引脚(pCI信号线)与系统总线接通,最后是短针引脚接通,同时向系统发出一个使能信号,系统由此知道有一模块已经插入系统,即开始对它进行初始化。当模块拔出时,上述事件的发生顺序正好相反。
硬件连接过程指模块与背板CompactPCI总线的电气连接/断开,包括上电复位、上电检测,模块自身的初始化以及加载配置空间数据等。
软件连接指软件层同系统的连接,对于模块的插入,这一过程包括分配系统资源(如内存空间分配)、加载驱动程序和其他相关软件。对于模块的拔出,这一过程包括释放系统资源、关闭驱动程序和相应的软件。
应用举例:CompactPCI热插拔设计的核心就是电源管理,按照一定的速率为模块上电和断电,同时为PCI总线信号提供1V左右的预充电电压。下图系统中采用PCI91054作为PCI接口芯片,利用电源管理芯片LTC1644对CompactPCI的电源节能型管理,同时也为PCI总线信号提供预充电。应用连接图如图所示。
CompactPCI热插拔设计图
lTC1644是一块专门用于热插拔的电源管理芯片。对于热插拔模块来说,除了PCI9054和LTC1644从CompactPCI的接口处取电以外,其他模块都只能从LTC1644的输出端取电。它支持对CompactPCI总线上的5V、3.3V、12V、-12V电源进线控制,同时对5V和3.3V输出电压提供过载和短路的双重保护。
PCI9054支持CompactPCI热插拔规范,利用ENUM#和LEDon/LEDin管脚以及相关寄存器实现热插拔功能。
(4)ATCA
AdvancedTCA®是一种用于在中心局电信环境的新型模块化计算构架,由P CIIndustrial Computer Manufacturers Group开发。在PICMG®3.0规范其中定义了背板、连接器和可插拨板卡的电气和机械特性。系统电源由电信装置中常用的–48V双电池馈电方式来提供,而且,ATCA™中的许多相关规范都取自已制定的电信标准。功率要求每一块可插拨板卡或前端电路板都是专为能够在一个运行系统中进行带电插拨而设计的。允许每块前端电路板吸取高达200W的功率,从而将最大负载电流置于4A至5A的范围内。与这些类型的系统中常见的一样,非常希望进行以板卡为中心的涌入限制以及电流和电压监视,以便清除输入电源馈电并最大限度地减少电源背板干扰。
电路解决方案图,是一种专为具备对最大可用功率的处理能力而设计的完整电路。LTC4252A所设定的精确电流限值旨在提供至少5.5A的电流(在所有的条件下)、一个针对200W功率的舒适裕度、并能够在7A电流以下关断,以便在出现有害过载时使熔断器保持完好。该电路兼具过压(OV)和欠压(UV)监视功能。UV门限被设定在–37V接通时和在–33.3V关断,在“或”二极管之后进行测量。OV在–74.7V时关断,并在–73.2V时重新接通(“或”二极管之后进行测量)。
这确保了在–43V至–72V的满量程内以及至–75V的输入浪涌和至–100V的瞬变条件下的正常操作(与ATCA规范一致)。
一旦检测到有板卡插入,则LTC4252A将暂停运行达230ms的时间以便允许触点颤动,然后采用一个斜坡电流电路来对负载进行软启动。涌入电流将逐渐增加,直到MOSFET完全导通为止。利用三个截然不同的响应级来处理由SENSE引脚和8mΩ分流电阻器进行检测的电流过载。如果检测到一个小且在7A或更大的持续过载,则TIMER引脚将在延迟5.7ms之后关断。如果过载超过7.5A,则LTC4252A将调低MOSFET电压并把电流维持在该数值上。同样,在经过了一个5.7ms的延迟之后,电路关断。如果过载很严重,则一个坚固且非常快速的放大器将迅速地对MOSFET的栅极电压进行校正,使其降至器件的门限附近。LTC4252A的电流限制电路随后开始起作用,并在5.7ms的TIMER延迟周期中将过载维持于7.5A。LTC4252A还对MOSFET两端的压降进行监视,并可在电压应力增加时将TIMER延迟降至小至1.8ms。这便能够在出现硬故障的情况下使MOSFET舒适地保持在其安全工作区之内。