3.1 CPCI桥接芯片
目前,很多PCI协议芯片同时也支持热交换,使得原有的基于PCI总线的硬件系统可以很轻易地移植到CPCI构架下,而不需要在硬件和软件上做大的修改。本设计选用的是PLX公司推出的PCI9054,符合PCI 2.2规范和CPCI 2.1热交换规范。
针对CPCI的热交换规范,PCI9054提供了管脚ENUM#和LEDon/LEDin,ENUM#的激活表明板卡的插拔状态即将发生改变,LEDon/LEDin管脚用于驱动外部LED,指示当前系统软件层连接和断开的情况。PCI9054还提供了热交换控制寄存器HS_CSR用来记录板卡插拔状态并控制指示灯状态。HS_CSR的定义表1所示。
表1 热交换控制状态寄存器HS_CSR
当板卡插进时,HS_CSR[3]被置为1,点亮蓝灯,PCI9054置HS--_CSR[7]为1,激活ENUM#信号引起中断,直到设备驱动程序被安装后,中断被清除,HS_CSR[3]被置为0,熄灭蓝灯。当板卡拔出时,HS_CSR[6]被置为1,激活ENUM#信号引起中断,主机卸载驱动程序后,HS_CSR[3]被置为1,点亮蓝灯,表明板卡可以安全地被拔出。
3.2 热插拔电源治理
CPCI规范中用于热插拔控制的信号主要有:BD_SEL#,HEALTHY和PCI_RST#。CPCI总线的接插件J1的插针分为长针、中长针和短针。长针是电源和地信号,中长针是PCI总线信号,短针是BD_SEL#和IDSEL。当板卡插进时,电源信号最先接触,将PCI总线信号预充电至1V,这是为了减小热插拔过程中对PCI总线信号的冲击,然后是PCI总线信连接,最后是BD_SEL#信号连接,BD_SEL#有效表示板卡已经插好,可以上电工作。卡拔出过程正好相反。HEALTHY#是反映板卡电源状态是否良好的信号。PCI-_RST#是主机复位信号,它和HEALTHY#信号共同作用,控制PCI局部总线的复位信号。
LTC1646是Linear公司针对CPCI接口推出的热插拔电源治理芯片。LTC1646需要外接两个N沟道晶体管作为开关控制3.3V和5V电源对板卡的供电。LTC1646的OFF/ON#管脚与BD_SEL#相连,当BD_SEL#为低时,晶体管导通,3.3V和5V电源按一定速率上电。PWRGD#与HEALTHY#连接,当板卡电源在容差范围内时,此信号为低。PCI_RST#与LTC1646的RESETIN#管脚相连,它与HEALTHY信号进行或运算得到输出信号RESETOUT#,此信号与PCI9054的RST#管脚相连作为CPCI板卡的复位信号。LTC1646提供一个输出管脚PRECHARGE,它与PCI9054的总线信号相连接,在板卡插进和拔出的过程中,对总线信号进行预充电。需要预充电的信号需要经过10kΩ的电阻上拉至预充电电压(1V±10%)。