CPCI总线设备热插拔功能的实现

时间:2022-09-23 03:31:22

CPCI总线设备热插拔功能的实现

【摘要】 简要介绍了CompactPCI总线技术以及在实际中CompactPCI热插拔功能实现的原理和一般设计方法。由于热插拔功能的实现首先需要单板的硬件支持,又详细说明了CompactPCI热插拔单板的电气设计要点,最后给出通讯板卡的有关热插拔方面的测试数据,对上述的软硬件方法进行可行性和实用性分析。

【关键词】 cpci总线;热拔插

一、CPCI简介

CompactPCI是compact peripheral component interconnect的英文缩写,意思是“坚实的PCI”。简单地说,CompactPCI是PCI总线的电气和软件标准加欧式卡的工业组装标准,它是当今最新的一种工业计算机标准。设计CompactPCI的出发点在于,迅速利用PCI的优点,提供满足工业环境应用要求的高性能的核心系统,同时还能充分利用传统的总线产品,CompactPCI不是重新设计PCI规范,而是改造现行的PCI规范,使其成为无源底板总线式的系统结构。CompactPCI依附于PCI平台,在芯片、软件和开发工具方面可以得到大批量生产制造的PC机资源,有利于自身成本的降低。另外,CPCI在32位/33MHz系统中能够提供132MB/s的背板传输能力,在64位/66MHz系统配置情况下的性能为528 MB/s。在对带宽要求高的场合CPCI具有很强的优势。

除了上述所有的优点,CPCI还具有非技术性的优势,即经济实用、可快速推向市场以及高可靠性的特点,并且CPCI还支持热插拔,即可在不关机状态下插入或取出板卡。热插拔的优点在于能增强系统性能或诊断系统故障而无需关闭系统。在当今诸多要求高可靠性领域中CPCI总线已经取代了ISA、STD等其它总线,成为主流总线形式。

二、硬件方案设计

(一)CPCI功能板基本构成

在整个设计中,我们设计了一张具有热插拔功能的CPCI的数采功能板,通过这块板卡对CPCI热插拔技术和VxWorks系统下的热插拔驱动进行了实际验证。下面简单的介绍一下CPCI功能板的基本构成(见下图1)。

图1CPCI数采功能板结构框图

由于数采功能不是本文的重点,在这里就不详细介绍了。在功能板上采用SDRAM作为数据缓存,其控制逻辑在FPGA中实现。CPCI总线控制以及通信协议十分复杂,一般需要选用专门的处理芯片。选用了PLX公司的PCI9030芯片,电源管理选用了凌力尔特公司的LTC1646芯片。

(二)CPCI总线接口设计

设计PCI接口的实现通常有两种方法:一种是用可编程器件FPGA或CPLD,另一种是用专用PCI接口芯片。二者各有优缺点:利用可编程器件自行设计PCI接口逻辑,可以根据具体的应用需要,优化接口逻辑,灵活性是该方法最大的特点,且接口逻辑也可获得较高的性能。由于PCI协议比较复杂,在具体的实现中也相当困难,并且各种逻辑关系验证起来也很麻烦,有时会得不偿失,把简单的设计变得复杂化了;利用专用芯片来实现PCI总线接口是一种能够解决设计难点的有效方法。这种芯片必须具有较低的成本和通用性,不限于插卡一侧的特定处理器总线,能够优化数据传输,提供配置空间,具备片内FIFO功能(用于突发性传输)等。目前,很多半导体器件公司提供这类专用芯片。如PLX开发的PCI9030、PCI9054 和AMCC开发的接口芯片S5933等。

比较以上两种实现PCI接口的方案可知,用可编程逻辑器件能够较灵活地实现所需要的功能,为了达到PCI指标的苛刻要求,需要做大量的逻辑验证和时序分析工作。采用PCI专用芯片,可以比较容易地实现PCI接口,大大缩短开发时间,由于厂家设计芯片时对通用性的考虑,在用户需要的某个方面可能不是最好的,但综合性能方面,采用专用芯片要比用可编程器件设计好得多。

最终选用了PLX公司的PCI9030芯片。PCI9030是PLX公司生产的PCI总线通用接口芯片,采用先进的PLX数据管道结构技术,符合PCIV2.1和V2.2规范。在PCI总线端支持32位/33MHz;本地端(local bus)可以编程实现8、16、32位的数据宽度,传输速率最高可达132MB/s。

(三)热插拔电路设计

CPCI总线不同于PCI总线的最大特点是支持热插拔(Hot Swap)。 Compact PCI定义了基本热插拔、完全热插拔、高可用热插拔三种不同级别的热插拔方式。

1.基本热插拔(Basic Hot Swap):通过总线隔离方法和电源管理技术保证带电插拔板卡时不影响系统总线。

2.完全热插拔(Full Hot Swap):在拔肩上增加了微动开关,以产生ENUM#信号,提前通知操作系统此板卡即将拔出系统;软件完成板卡资源释放后通过前面板上的指示灯提醒用户可以拔出板卡。这种模式实现相对复杂,其软件资源分配/释放由系统自动完成,不需用户干预,操作更加方便快捷。

3.高可用热插拔(High Availability Hot Swap):新增 加了多个信号,可以对板卡进行加电、下电、复位等操作。在这种模式下两块功能完全相同的板卡可以同时运行,当一块板卡出现错误时,另外一块板卡就可通过软件控制接替其功能,实现板卡的备份。高可用热插拔模式在所有热插拔模式中最复杂,系统的可用性最高。采用不同的热插拔模式,系统的复杂程度和造价会有很大差别。可根据应用要求的不同来选择适当的模式。

本文讨论的是完全热插拔模式的实现。

采用的LTC1646热插拔控制器是凌力尔特公司研制的针对CPCI总线的热插拔控制器,它使线路板能够在带电的CPCI总线插槽中安全地插入或拔出, 能控制全部4个CPCI电源,它使用两个外部N沟道晶体管控制3.3V和5V电源,“电源良好”输出信号表明所有电源电压都在正常容限之内,它使用户能够开启或关闭器件、置位RESETOUT、开启状态LED指示驱动器以及不受±12V电源故障的影响。这个器件还可为I/O引脚提供预充电偏压.以及通过将PCI_RST信号和HEALTHY信号整合来产生LOCAL_PCI_RST信号.并能满足PCI定时要求,且不需要外部逻辑电路。其典型应用(如图2所示)。

图2 LTC1646热插拔控制器典型应用

(四) LTC1646工作过程

1.板卡插入过程。当板卡插入背板时,在CPCI接插件的防护地连接上,板卡上可能存在潜在的对地电压放电。该热插拔板将首先接触到背板插件的长针(+5V和地),即LTC1646的VCC管脚被加电,将对其后端电路进行复位以关断VGATE3/5输出,从而禁止外部MOSFET管工作,并输出1V参考电压,此1V参考电压对还未接触到背板的I/O管脚加电,同时PWRGD#的输出将被置高,接着I/O管脚接触到背板插针上,BD_SEL#管脚被主机置低,以确认板卡已经被正确的插入,此时LTC1646控制的上电顺序开始。LTC1646通过控制VGATE3/5的输出来打开外部的MOSFET功率管。板卡上的电路都保持在复位状态,直到5和3V电源电压稳定,而且内部复位时间计时器达到一定时间时,复位信号停止,板卡进入正常操作过程。在正常工作过程中,LTC1646将持续监控板卡的后端电压,一旦电压超过关断电压阈值,LTC1646将控制PWRGD#输出为低,以使主机检测到该信号并指示板卡电源有问题。

2.板卡拔出过程。板卡拔出时,首先将BD_SEL#与地断开,LTC1646则立即关断VGATE3/5输出,并改变PWRGD#的状态,同时将LOCAL_PCI_RST#输出置低,并将总线I/O接口电路置为高阻态,这时电源依旧对I/O脚加电,以使总线从激活状态平稳转为非供电状态。一旦I/O脚与背板插针断开,板卡上的电路和LTC1646将通过最后断开的长针进行最后的放电过程。

近年来,在工控、通信、军事等特定应用领域对高可用系统的需求不断增加,需要在CompactPCI总线设备上实现热插拔功能,以减小系统的宕机时间,为高可用性设计奠定基础。本文详细讲解了应用LTC1646热插拔电源控制芯片和PLX9030接口芯片实现完全热插拔单板的具体方法,对于较简单的基本热插拔及较复杂的高可用热插拔的实现,可参照本文设计思路稍加改动得以实现。

参考文献

[1]Raj Kamal.嵌入式系统体系结构、编程与设计[M].北京:清华大学出版社,2005

[2]尹勇,李宇.PCI总线设备开发宝典[M].北京:北航出版社,2004

上一篇:网络数据包的捕获和分析 下一篇:浅谈变电站自动化建设的新特点