以太网(Ethernet)作为应用最广泛的局域网技术异军突起,已经迅速走向工业自动化控制领域的前台。CPCI总线系统插槽有限,设计基于CPCI总线的多网口卡可节省空间,又可以满足状态监测及故障诊断系统要求的实时和大数据量传输。
1 模块总体设计
该模块采用CPCI并行总线进行设计。图1给出该模块总体设计框图,其中,通过PCI桥扩展总线分别连接4片INTEL82551,由于INTEL82551内部已集成PCI接口,PCI桥可实现与INTEL82551之间的无缝连接。J1和J2为CPCI的接口插件。
2 CPCI总线结构模块
2.1 原理和结构
在1条PCI总线上如果连接过多的电气负载或设备,总线不能正常工作。通过在系统内另外增加1条或多条PCI总线,问题可以得到解决。在系统内扩展另1条PCI总线,唯一的方法是使用PCI-PCI(即P2P)桥进行系统扩展。P2P桥是特殊的PCI设备,可把系统中的PCI总线粘合在一起。P2P桥在系统中连接主从两条PCI总线,它作为上一级总线的一个负载,通过对PCI信号的重新驱动和仲裁,而向下可以驱动一个总线段。
其作用是协调2条PCI总线之间的数据传输,监视在这两条PCI总线上启动的所有交易,并决定是否将交易传送通过另一条PCI总线。当桥确定将一条总线上的交易传送到另一条总线时,桥必须充当交易总线的总线目标,以及交易的目的总线的主设备。系统设计者也可以安装多个P2P桥。
2.2 PCI2050B简介
根据系统集成的特性,这里选择TI公司的PCI2050B桥接器来实现P2P桥。PCI2050B属于透明的PCI-PCI桥,在2个32位最高工作频率66 MHz的PCI总线之间提供桥连接。该桥支持突发模式(burstmode transfers),极大增加了数据的吞吐量,桥的总线数据路径(tmstraffic paths)独立工作。桥的主、从总线分别可以工作在3.3 V或者5 V的环境下,而桥的核心逻辑工作在3.3 V,以减少功耗。主机软件通过内部寄存器对桥进行操作。通过内部寄存器既可以得到标准PCI的状态,也可以对主、从总线进行控制。桥的PCI配置头只能通过主PCI接口来操作。PC-I2050B带9个从总线,除了为每个从总线提供内部仲裁外,也可为系统提供外部仲裁。PCI2050B提供10个从侧时钟输出。
2.3 PCI桥的设计
根据该模块总体设计框图,系统设计需要注意以下几个方面。
2.3.1 时钟设计
图2为PCI2050B的时钟设计框图。
该时钟设计要点如下:
1)PCI2050B有2个独立的时钟域,主接口受主侧输入时钟P_CLK的控制,从接口受从侧输入时钟S_CLK的控制。这2个时钟相互独立,但保持同步,而且从侧的时钟频率不能高于主侧的时钟频率。P_CLK与S_CLK最大延时不得超过7ns,S_CLK不能超前P_CLK。
2)PCI2050B的从侧有10个时钟输出S-clkout[9:0],其中9个时钟输出可以供给扩展的PCI槽,为保证时钟输出同步,另1个必须反馈给从侧的输入时钟S_CLK,每一个时钟只能驱动一个负载。
3)为了减小时钟的信号反射,输出到扩展槽的9个时钟输出必须在起始端加串联电阻匹配,匹配电阻阻值与电路板特征阻抗大小有关,对65 Ω的传输线,选用50 Ω串联匹配电阻。
4)为了减小这些时钟之间的抖动(skew),供给扩展槽(或扩展设备)的9根时钟线(9个S_clkout)与S_CLK必须等长。所以,从S_clkout[9]输出反馈至S_CLK的时钟线长度应等于从PCI2050B的时钟输出引脚到扩展设备的时钟线的总长。本模块扩展4个网口,使用PCI2050B从侧的4个输出时钟,在PCB布线中这4根时钟线与反馈时钟线必须等长。
2.3.2 中断设计和IDSEL映射
PCI2050B支持9个从设备,在初始化配置空间读写时,PCI2050B作为上一级PCI总线的操作对象,提供了IDSEL引脚进行器件选择,该引脚可以连接到高24位PCI总线中的任意一根。同时,为了减少地址线的容性负载,需要在该信号连线上串接一只1 kΩ的电阻。本模块仅扩展一级总线,PCI2050B主侧的IDSEL引脚直接连接到CPCI插座J1的IDSEL。对于二级总线侧的PCI器件(本模块为INTEL82551),其IDSEL引脚经过1 kΩ的电阻连接到PCI2050B的S_AD31S_ADl6引脚的任意一根。来自从侧上的设备的INT线不通过桥。如果桥位于一个插入卡上,从侧设备的中断线直接接到连接器的中断引脚(INTA#~INTD#)。本模块中,PCI2050B是一个桥设备,INTEL82551的中断引脚直接连接到J1的中断引脚。所有从设备的中断线的连接与设备编号(即IDSEL线的连接)有绑定关系,对应关系如表1所示。4片INTEL8255l的IDSEL引脚分别连接到S_AD28、S-AD29、S_AD30和S_AD31,对应的设备编号为12、13、14、15,则器件的中断引脚INT#对应连接到J1的INTA#、INTB#、INTC#、INTD#。
2.3.3 PCI2050B工作模式的选择
PCI2050B有3种工作模式可供选择:TI CPCI热插拔模式、电源管理模式和INTEL 21150兼容模式。选择引脚分别为MSO,MSl,模式选择定义如表2所示。
根据CPCI总线应用设计的需要,笔者选择了TI CPCI热插拔工作模式。当PCI2050B选择TI CPCI热插拔工作模式时,为了确保热插拔逻辑的正常工作,要求必须将HS_SWICH/GPI03引脚和HSENUM引脚上拉,同时,由于没有使用PCI2050B的关于GPI0引脚,且因为这些引脚在缺省条件下定义为输入脚,为了避免误触发,将这些引脚全部上拉。
3 以太网接口
本网卡使用4片INTEL82551、4片EEPROM 93C46和4片PE68515实现4路以太网网络接口。INTEL82551是Intel公司的一款高集成的以太网控制器,其主要功能是实现以太网帧的收发。它集成了10Base-T/lOOBase-T MAC控制器和10Base-T/100Base-T PHY控制器,支持数据的全双工或半双工传输,支持自动协商,支持10/100 Mb/s传输速率,支持流控机制。
3.1 INTEL82551与PCI桥的接口设计
每片INTEL82551的CPCI总线信号连接到PCI2050B的从侧,应特别注意的是信号IDSEL和INT#根据表1一一对应,否则模块插到系统槽上,系统不能正确驱动模块。其中1路器件的电路连接,如图3所示。器件的IDSEL连接到S_AD31上,则器件的中断INT#连接到J1的INTD#上。
3.2 Intel82551与传输介质接口
使用4片PE68515和4个RJ-45实现传输介质接口。每一路接口电路连接,如图4所示。
3.3 网卡调试
PCB电装完后,检查各器件及其他电路是否有虚焊,网卡插于CPCI机箱插槽,在系统设备管理器中可看到模块属性,如IDSEL连接AD31,则属性为PCI SLOTl(PCI总线N,设备15,功能O)(N为总线编号)。用EEUPDATE对网卡配置后,模块可正常收发数据。
4 结束语
本四网口模块符合PCI2.2规范,已成功应用于3U CPCI机箱的Windows平台。根据需要可扩展为八网口的CPCI卡,此系列基于CPCI多网口卡,可广泛用于各类测试设备、有线通信等领域。