摘要:具有热插拔PCI槽现已成为许多需要长时间不间断工作和能够在线维修的计算机系统的必备功能。文中介绍了热插拔的基本技术问题,给出了利用Linear Technology公司的热插拔电源控制芯片LTC1421来实现PCI总线热插拔的具体电路以及工作过程。
关键字:PCI总线;热插拔;LTC1421
PCI总线已经广泛使用在高性能个人计算机和单板计算机中,由于具有32/64位的数据宽度和最高达133Mbps的带宽,因而PCI可满足绝大多数I/O设备的要求。但是原始的PCI规范并没有热插拔功能,这样当外设插入或拔出时必须关闭系统电源。
在PCI总线应用到服务器、生命监护系统、工业控制计算机、电话交换系统的重要场合时,由于需要长时间的不间断工作和在线维修,PCI槽的外设热插拔能力成了必备的功能。本文给出了一个通过使用热插拔电源控制芯片LTC1421来控制外设电源的具体方法,它是用专用双向总线开关来缓冲数据总线的,这样外设就可以实现热插拔而不必关闭主电源。
1热插拔的基本技术问题
当外设插入时,外设上的电源旁路电容在充电时会从PCI电源上吸收很大的瞬态电流,这个瞬态电流取决于电源电压和电源内阻以及旁路电容的容量,这样的瞬态电流有时可以达到数安培,因而会引起接插件和电路板线条的永久损坏。该瞬态电流同时也会引起尖峰干扰,使系统中的其它外设被强制进入复位状态。
第二个问题涉及到大多数逻辑元件系列中的输入和输出电路内接到电源端VCC的二极管。当外设初始未加电时,VCC输入端到逻辑门往往位于地电位。当数据总线引脚开始接触时,接到VCC的二极管可能会将总线拉到地电位,这样就破坏了数据线上的状态。另外,由于电流流经二极管会使逻辑门被锁定,从而当电路加电时会产生输出逻辑冲突,从而对电路造成损坏。
PCI总线热插拔的PCI槽在主板上的电路如图1所示。
在该电路中,每个PCI槽的电源都将受LTC1421以及附加的场效应管的控制。数据总线则由几个QS3384缓冲。由ASIC、FPGA或微处理器构成的电源控制器可以控制所有的外设电源。
电路中的12V、5V、3.3V和-12V电源由外置串联N-FET功率管Q1~Q4来控制。它可将串联三极管的门极电压控制在一定的速率上,并将从 PCI电源上吸收的瞬态浪涌电流(I=C·dV/dt)控制在一个安全的数值。正电源的上升速率被设定在dV/dt=20μA/C2,-12V电源由R7和C3设置,R5和Q5用于帮助更快地关闭Q2。电阻R9,R11,R12用来防止潜在的高频FET振荡。上拉电阻R13和R14可把PWRGD和信号拉到适当的逻辑电平,其另一端所接的电源取决于控制器所用的电源。
电压检测电阻R1,R2和R3用来提供电流出错保护。当R1和R2上的电压大于50mV并超过10μs后,LTC1421电路关断器被触发而立即关断所有FET,并将拉为低电平。电路关断器的状态可通过引脚复位。对3.3V电源的保护是通过电阻R6与R8的分压提供的。由于-12V电源的电流较低,因而未加过流保护。
串联在数据总线内的总线开关上包含一个N沟道低电阻开关。当外设电路板插入时,该开关是断开的,直到电源稳定后才接通。开关的输入和输出脚都没有接VCC的二极管,且输入电容也很小。
2热插拔PCI电路的工作过程
PCI功率控制器可以通过功率选择位感应到电路板的插入。另外,用户也能够通过面板开关或键盘来使系统感知到控制器电路板的插入。在有电路板插入时,PCI控制器保持RST#脚为低电位以关闭数据总线开关,然后打开脚,使电源以控制的速率慢慢打开。当12V电源上升到最终值的10%以内时,PWRGD信号拉高有效。PCI电源控制器在等待一个复位时间后拉高RST#信号,并打开总线开关。
当电路板拔出时,RST#被拉低,总线开关随之关闭。LTC1421也通过拉低而关闭,经过20ms延时后外部FET关闭,电源电压消失。
3结束语
通过使用LTC1421和总线开关可使PCI槽实现热插拔。这样当外设插入或拔掉时就不用关闭系统电源,从而使得系统能够不间断的长时间连续工作。在这之前,许多热插拔技术还需要模拟电路的技巧,而使用LTC1421可安全可靠的实现热插拔,用户所需做的仅仅是附加几个场效应管和电阻电容而已。
本文仅介绍了PCI总线热插拔的基本电路构成,但在实际应用时还需要系统软件的支持,包括电路故障的自动检测和诊断、容错系统的设计、系统的自动重构等功能。
参考文献
1.曾繁泰,冯保初编著.PCI总线与多媒体计算机, 电子工业出版社,北京:1998
2.LinearTechnologyCorporation:DataBook,1998
3.袁田光,陈以农编著.容错与避错技术及其应用. 科学出版社,北京:1992