基于CPCI平台的热插拔技术及实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《工业控制计算机》2007年20卷第8期
基于CPCI平台的热插拔技术及实现
HotSwapTechnologyandImplementationBasedonCPCIPlatform
何礼金雷(西南电子电信技术研究所上海分所,上海200434)
摘要
介绍了基于CPCI平台的热插拔技术及其实现,包括热插拔系统架构、系统模型、热插拔过程的控制,并且给出了实际的硬件接口和软件接口的设计。
关键词:CPCI总线,热插拔,接口设计
Abstract
ThispaperintroducesthehotswaptechnologyandimplementationbasedonCPCIplatform,includinghotswapsystemarchitecture,systemmodel,andthecontrolofhotswapprocedure,alsopresentanactualdesignofhardwareandsoftwarein-terface.
Keywords:CPCIbus,hotswap,interfacedesign
具有模块化、易使用以及易维护等优点的CompactPCI产品已经广泛应用于军事武器系统、航天工业、电信网络、CTI等多个领域,而在CompactPCI的各种技术中,尤以热插拔(HotSwap)技术最为突出。热插拔最主要的目的在于:提供一种平台,使得系统在不断电的前提下,周边卡甚至于系统卡可拔出或插入,而不影响或破坏整个系统的正常工作。
1热插拔系统
1.1热插拔系统架构
热插拔系统的系统架构如图1所示:
图1热插拔系统架构
最底层的部分是可热插拔板卡所应支持的硬件设计,它必须有一个可以控制板卡插拔状态及控制HotSwapLED的芯片,在板卡热插拔时能够发出ENUM#信号通知系统CPU卡。
中间部分为CompactPCI的背板设计。CompactPCI总线的独特硬件接触界面有长短针的分别,在热插拔板卡时可以避免因为电源的不当输入而造成板卡损坏。此外,CompactPCI背板还提供了ENUM#信号的传递接口,以便可使热插拔板卡和系统CPU卡进行通信。
最上层为系统CPU卡所必须支持的部分,它必须具有一个可以知道板卡热插拔的接口(ENUM#),并且还必须有热插拔服务程序负责板卡热插拔时的资源分配及卸载,否则即使CPU卡可以确定任何的板卡插拔,操作者也无法正常使用该平台。1.2热插拔系统模型
热插拔系统架构中包括了PICMG2.1R2.0标准定义的三种不同的热插拔系统模型:
基本热插拔模型(BasicHotSwap):包含了最基本的热插拔需求。该模型允许在系统运行过程中拔出或插入Compact-PCI板卡,但必须由操作人员通过人机接口向操作系统发出控制命令才能实现,软件连接不能自动进行。
完全热插拔模型(FullHotSwap):在完全热插拔模式下的软件连接是自动完成的,不需要人为的干预。
高可用性热插拔模型(HighAvailability):高可用性热插拔是以完全热插拔模型为基础建立的。它要求在系统卡和每个周边卡槽之间实现点对点RST#和隔离信号,这使系统可以自动隔离一个坏的板卡,始终处于运行状态,几乎没有故障。
2热插拔过程
完整的热插拔包括三个过程:
1)物理连接过程:这是一个机械过程,分插入和拔出两种情况。物理连接过程从板卡插入开始,到短针BD_SEL#插入为止,物理断开过程反之。
2)硬件连接过程:主要指的是与系统相连的硬件层的电气连接。该过程包括两个基本组成部分:电源总线部分(为系统电源总线提供保护,允许对板卡进行初始化)和CPCI总线部分(允许按顺序地连接至CPCI总线或从其上断开)。
3)软件连接过程:主要指的是与系统相连的软件层的连接。
这些过程可以用一组状态来描述,如图2所示:
图2热插拔连接状态
2.1硬件连接控制
通过对部分总线信号的控制实现对硬件连接过程的控制,这些信号在所有的热插拔板卡上的实现都是一致的,但是对于不同的热插拔系统模型,它们的实现在平台背板上是不同的。从三种热拔插模型的比较中可以看出,仅在高可用性热插拔系统中才有硬件连接控制,即在高可用性热插拔系统中如下信号可以通过软件进行控制,但在另外两种热插拔系统中是非可控的。
21
基于CPCI平台的热插拔技术及实现
2.1.1BD_SEL#信号
BD_SEL#是连接器上的一个短针,在板卡插入和拔出的过程中这个信号最后连接最先断开,这样保证了系统在所有信号都可靠连接后,板卡上的BD_SEL#才与背板相连。
在没有硬件连接控制的系统中(如基本热插拔系统和完全热插拔系统),可以将背板中的BD_SEL#信号直接接地,这样板卡插入后即上电运行。
在具有硬件连接控制的系统中(如高可用性热插拔系统),BD_SEL#直接连到一个热插拔控制器(HSC)。控制器的BD_SEL#信号接有一个较小的下拉电阻。当板卡插入时,由于板卡上的上拉电阻较大,所以控制器能发现卡的插入,然后控制器将BD_SEL#信号置低,开始上电过程。
2.1.2PCI_RST#信号
PCI_RST#信号是背板上的一个总线信号,由系统主机驱动。由于板卡必须在各路电源完全正常的情况下才可以工作,因此,板卡的复位信号(LOCAL_PCI_RST#)不能直接与背板中的PCI_RST#相连,而是要将PCI_RST#信号与板卡上的HEALTHY#信号进行逻辑“或”以后,再连接板卡的LO-CAL_PCI_RST#信号,这样就保证了只有当系统释放PCI_RST#,并且板卡的各路电源正常时,板卡才退出复位状态开始正常工作。2.1.3HEALTHY#信号
HEALTHY#信号用来监测板卡上各路电源是否正常。在板卡上,HEALTHY#信号连接至电源控制器的PWRGD#上,也可以附加其他条件来扩展应用。板卡插入背板后,此信号与背板相连,在具有硬件连接控制的系统中,背板中的热插拔控制器(HSC)如果检测到HEALTHY#信号正常则释放对板卡的复位。在没有硬件连接控制的系统中,此信号被悬空。
2.2软件连接控制
通过板卡上的部分信号和资源来实现对软件连接过程的控制,包括:ENUM#信号、微动开关、指示灯、热插拔控制/状态寄存器。
2.2.1ENUM#信号
ENUM#信号是送到背板的带上拉的集电极开路信号,它作为所有周边卡的输出,并作为向系统卡的输入。当热插拔板卡被刚刚插入或即将拔出时,热插拔板卡必须立即有效ENUM#信号,系统主机收到该信号后执行相应的操作:板卡刚刚插入时,加载板卡的驱动程序;板卡即将拔出时,停止使用板卡并且卸载板卡的驱动程序,然后通知用户可以拔出板卡。
ENUM#信号可以以中断的方式通知主机,或者系统软件通过轮询的方式查询ENUM#信号的状态。
2.2.2微动开关
在板卡插入或拔出时,要首先闭合或打开安装在板卡下端(右端)把手上的微动开关,该微动开关触发的信号会产生ENUM#信号,从而通知系统配置的改变。
2.2.3热插拔控制/状态寄存器(HS_CSR)
一个热插拔控制/状态寄存器(HS_CSR)应该至少包括4个控制/状态位:INS、EXT、EIM、LOO,HS_CSR可以在板卡的PCI配置空间中实现。
软件通过两个控制和状态位(INS和EXT)确定产生ENUM#信号时发生的事件。INS表示板卡被插入;EXT表示板卡即将被拔出。这些位也被用于响应ENUM#信号。
另外两个控制位(EIM和LOO)用来更进一步地来支持热插拔过程。用EIM屏蔽ENUM#,LOO用于点亮/熄灭指示灯。3CPCI板卡的热插拔实现
在基于CPCI平台的微波总线接收机中,我们已经实现了CPCI板卡的热插拔。该系统中采用研华的MIC-3038A工控机机箱和MIC-3377/MCPU卡,系统支持完全热插拔,所以只有板卡的插拔需要人工手动操作,其余的例如硬件信号连接、资源分配及卸载等工作都通过硬件和软件自动完成。
完全热插拔的系统架构如图3所示,它比高可用热插拔系统少了硬件连接控制的部分。
图3完全热插拔系统架构
3.1连接过程
3.1.1正常插入过程
当插入板卡并扣上板卡把手上的微动开关后,可热插拔板卡上的电源开始供电并产生ENUM#信号,CPU卡接收到ENUM#信号后,系统首先确认CPCI总线上哪个板卡刚刚被插入,然后加载与此板卡相应的驱动程序,之后便可以进入正常使用状态。
图4插入过程
3.1.2正常拔出过程
打开板卡把手上的微动开关,板卡会送出ENUM#信号通知系统CPU卡,系统在接收到信号之后扫描总线上的板卡,以确认哪个板卡将被拔出,若板卡正在被使用,则停止使用,并且卸载此卡的驱动程序以及相关的资源,最后点亮板卡上的指示灯,通知用户可以拔出该板卡。
由插入及拔出过程可以知道,支持热插拔需要特殊的硬件及软件设计。硬件主要包括:板卡、平台。软件主要包括:热插拔驱动程序、热插拔服务程序、高层应用程序。
图5拔出过程
3.2硬件接口设计
3.2.1总线接口控制芯片PCI9054
PCI9054芯片是PLX公司推出的一款支持热交换功能的PCI接口控制芯片,为CompactPCI接口提供了解决方案,可以支持具有热交换功能的PICMG2.1目标设备。
PCI9054在PCI配置空间中提供了热插拔控制/状态寄存
22