摘要:描绘了cPCI渠道完结热切换的动作机制,引进一种办法将cPCI设备热插拔动作转为独享中止,用LED指示处理进程,并给出依此办法完结无操控台进行全热切换的软硬件规划计划。
关键词:cPCI 热切换 即插即用 设备驱动中止服务程序
cPCI(即Compact PCI)是PICMIG拟定的、愈加巩固耐用的PCI版别,广泛使用于工业和嵌入式操控体系中。它在电气、逻辑和软件功用方面与PCI彻底兼容。除机械特性不一致外,cPCI与PCI最大的不同在于cPCI具有支撑热切换(HotSwap)的才干。跟着电子产品本钱的下降和商场对工业产品尤其是电信使用产品牢靠性要求的进步,依据cPCI渠道的规划逐步成为电信设备厂商的首选。
1 cPCI热切换原理
1.1 热切换根底
cPCI标准界说的机械、电气特性是完结热切换的根底。它选用的衔接器契合IEC917和IEC1074-101标准,其插针引脚别离有最长、中长、最短三种长度。当刺进一个卡到插槽时,首要最长的引脚(电源和地)被衔接,卡逻辑将一切PCI信号引脚预设到一个固定电平1V;接着是中长度引脚的PCI信号衔接,这些信号的电平现已固定且没有开端,不会对体系形成搅扰;最终才轮到最短的此脚,即BD_SEL#信号衔接,奉告卡逻辑能够开端作业。卡拔出的次序正好相反,BD_SEL#首要断开,PCI信号被调整到一固定电平,最终才断开电源和地信号。在电路方面,cPCI增加一个ENUM#信号,即体系枚举信号。当一个cPCI设备卡被刺进或拔出时,ENUM#被激活。
除cPCI自身的特性以外,要完结热切换,具有支撑即插即用(PnP)的操作体系也是必要条件之一,只要支撑PnP才干完结设备驱动程序的动态设备和卸载。
1.2 三种层次热切换
1.2.1 根本热切换
最根本的热切换方法需求用户干涉。用户经过操控台告诉OS(操作体系)行将进行设备卡刺进或拔出。当刺进一个卡时,其具体流程如下:
(a)经过体系界面,用户告诉OS行将在一个槽中刺进一个卡;
(b)用户刺进卡,对卡完结上电初始化;
(c)用户告诉体系,卡现已刺进,要求OS从头枚举总线;
(d)OS履行总线枚举,确认新卡需求的资源;
(e)OS对卡的PCI装备寄存器编程,向其分配资源;
(f)OS装入恰当的设备驱动程序,并调用其初始化代码;
(g)设备驱动程序初始化完结,卡开端作业。
当拔出一个卡时,流程相似,需求用户预先告诉OS即将拔出设备卡,OS卸载设备驱动程序并收回设备资源后,才干拔出设备。
1.2.2 全热切换
全热切换是在根本热切换的根底上,在卡的刺进/拔出组织中增加一个微开关设备。这个开关藏在手柄中。当cPCI卡被刺进或拔出时,在卡开端或停卡作业之前,微开关首要改动状况,发生ENUM#信号,该信号经过某种途径告诉OS即将刺进或拔出一个卡,OS再履行总线枚举、设备驱动程序或卸载驱动程序等动作。
1.2.3 高可用性热切换
高可用性热切换是在全热切换的根底上树立的。它要求在体系卡和每个设备卡之间完结点对点的RST#和信号阻隔。这使OS能够主动阻隔一个坏卡,然后将一个代替卡(现已设备)发动,接着坏卡持续作业。所以它一般也称作无缝切换或无间断切换,是一种冗余规划计划。
三种热切换的主动化层次不同,完结的杂乱程度也各有不同。下面介绍一种支撑全热切换的cPCI渠道的HotSwap子体系完结计划,对其硬件电路和软件规划别离进行介绍。
2 cPCI热切换子体系硬件完结
2.1 桥接芯片
在硬件电路上需求一兼容cPCI标准的PCI-to-PCI的桥接芯片,以便热插拔卡时完结引脚操控逻辑和支撑全热切换功用。以PLX PCI6150为例,它供给一个HotSwap寄存器,记载设备插拔状况,其界说如表1所示。
表1 HotSwap寄存器界说
bit15~8 | 7 | 6 | 5,4 | 3 | 2 | 1 | 0 |
保存 | INS | EXT | PI | LOO | PIE | EIM | DHA |
DHA:Device Hiding Arm,设备躲藏处理,在设备卡刚刺进没有正常作业前或被驱动程序中止之间可躲藏后级总线设备。
EIM:Enable or Disable ENUM#,使能或制止ENUM#输出。
PIF:Pending Insert or Extrace act,暂时挂起刺进或许拔出动作。
LOO:LEN On or Off,LED指示操控,与芯片的LED引脚相对应。
PI:Programming Interface,可编程接口,软件触发刺进/拔出等动作。
EXT:Extraction State,拔出状况位,当微开关断开时,此状况位为1。
INS:Insertion State,刺进状况位,在PCI6150上电复位成功后,此状况位为1。
2.2 硬件电路逻辑
体系卡电路在逻辑上便是一遍及PC主机板,它与热切换相关的部分会集在对来自cPCI衔接器的ENUM#信号的处理。在规划时,将它接在体系板Super I/O芯片Winbond W83627HF的IRQIN0引脚,以扩展中止输入的ISA中止方法完结。这样规划的优点是:可防止与其它PCI设备同享中止,而独点一个中止以确保中止的呼应速度;该引脚输入是可编程的,可依据体系的中止使用情况分配恣意闲暇中止;并且该中止能够不挂靠任何物理设备而独立存在,这样驱动程序也就能够规划成一静态服务程序,静态服务程序设备/卸载比物理设备驱动程序要简略得多。ENUM#是低电平有用,而IRQIN0输入是边缘触方法,需求一逻辑电路进行转化。体系卡逻辑框图如图1所示。
设备卡电路中与热切换相关的部分是微开关电路和状况LED驱动,PCI6150的ENUM#信号直接与cPCI衔接器的同名信号相连。EUNM#信号还和LED信号一同被用来驱动一双色LED,ENUM#信号为低时,LED被驱动为赤色闪耀;ENUME信号为高、LOO信号为高时LED被驱动为赤色,LOO信号为低时LED信号被驱动为绿色。设备卡逻辑电路如图2所示。
整个体系电路的逻辑作业是:当设备卡刺进时,PCI6150上电初始化,芯片逻辑置HotSwap寄存器INS状况位,触发ENUM#信号为低,LED闪耀赤色,ENUM#经cPCI底板抵达体系卡,经电平/边缘转化,生成中止请求有用信号IRQIN0,处理器呼应中止,进入中止服务程序,ENUM#信号被撤消,设备驱动程序成功设备后置LOO位,状况指示为赤色,设备开端作业。当要拔出设备卡时,EJECT微开关先被断开,PCI5160置HotSwap寄存器EXT位,激活ENUM#信号,状况LED为闪耀赤色,处理器呼应中止,ENUM#被撤消,告诉OS卸载设备驱动程序,之后热交换软件清LOO位,状况LED指示蓝色,设备能够安全拔出。整个进程无需用户与操作体系交互,依据LED的显现即可判别卡的作业状况,安全顺利完结热切换。
3 cPCI热切换子程序软件完结
软件体系的方针是完结中止的呼应处理,与操作体系交互,以正确及时地设备或卸载对应的设备驱动程序,确保整个软件体系安全运转。
3.1 软件分层规划
本体系软件分红三层:最底层为设备驱动程序hotswap.sys,它履行与硬件相关的操作,如呼应热切换进程中发生的中止事情、对Hotswap寄存器的操作,包含操控LED指示、铲除INS/EXT状况位、躲藏设备等;中间层为热切换处理程序,一个由HSMonitor.exe创立的树立线程,一方面接纳来自驱动程序的告诉,另一方面告诉OS从头枚举cPCI总线或卸载某一设备驱动程序;最上层为一图形界面使用程序HSMonitor.exe,为用户供给可见的设备插拔动态信息。软件结构如图3所示。
3.2 软件流程
ENUM#信号有用时,首要设备驱动程序hotSwap.sys的中止服务程序被履行,中止服务程序扫描整个cPCI总线,读取P%&&&&&%6150的热切换寄存器,铲除相应状况,并依据设备的INS/EXT状况位树立设备改变清单,告诉热切换处理线程。热切换线程读取设备改变清单,假如有刚刺进的设备,则告诉OS从头枚举cPCI总线,假如有待拔出的设备,则使用设备槽信息(总线号/设备号)换算成PnP DevNode地址,告诉OS移除该DevNode。OS在移除一个DevNode后或枚举总线时发现了新设备则发音讯到使用程序HSMonitor.exe,该使用程序被规划成每次开机时自运转且注册为该音讯的接纳者。HSMonitor.exe获取刚被处理过的DevNode及处理结果。包含设备驱动加载成功、设备被成功移除等,以日志方式显现到操控台,供用户查询。
cPCI渠道产品由于其牢靠性和巩固性逐步被国内电信设备三商选用,本规划中的cPCI渠道产品被广泛使用于语音呼叫中心和主动应答体系,其依据cPCI的全热切换规划确保了体系的不间断运转,极大地进步了体系牢靠性。本产品近一年的商场使用标明,该规划计划本钱低价,简单完结,用户使用方便。