基于CPCI总线的多网口卡设计

以太网(ethernet)作为应用最广泛的局域网技术异军突起,已经迅速走向工业自动化控制领域的前台。cpci总线系统插槽有限,设计基于cpci总线的多网口卡可节省空间,又可以满足状态监测及故障诊断系统要求的实时和大数据量传输。
1模块总体设计
该模块采用cpci并行总线进行设计。图1给出该模块总体设计框图,其中,通过pci桥扩展总线分别连接4片intel82551,由于intel82551内部已集成pci接口,pci桥可实现与intel82551之间的无缝连接。j1和j2为cpci的接口插件。
2cpci总线结构模块
2.1原理和结构
在1条pci总线上如果连接过多的电气负载或设备,总线不能正常工作。通过在系统内另外增加1条或多条pci总线,问题可以得到解决。在系统内扩展另1条pci总线,唯一的方法是使用pci-pci(即p2p)桥进行系统扩展。p2p桥是特殊的pci设备,可把系统中的pci总线粘合在一起。p2p桥在系统中连接主从两条pci总线,它作为上一级总线的一个负载,通过对pci信号的重新驱动和仲裁,而向下可以驱动一个总线段。
其作用是协调2条pci总线之间的数据传输,监视在这两条pci总线上启动的所有交易,并决定是否将交易传送通过另一条pci总线。当桥确定将一条总线上的交易传送到另一条总线时,桥必须充当交易总线的总线目标,以及交易的目的总线的主设备。系统设计者也可以安装多个p2p桥。
2.2pci2050b简介
根据系统集成的特性,这里选择ti公司的pci2050b桥接器来实现p2p桥。pci2050b属于透明的pci-pci桥,在2个32位最高工作频率66mhz的pci总线之间提供桥连接。该桥支持突发模式(burstmodetransfers),极大增加了数据的吞吐量,桥的总线数据路径(tmstrafficpaths)独立工作。桥的主、从总线分别可以工作在3.3v或者5v的环境下,而桥的核心逻辑工作在3.3v,以减少功耗。主机软件通过内部寄存器对桥进行操作。通过内部寄存器既可以得到标准pci的状态,也可以对主、从总线进行控制。桥的pci配置头只能通过主pci接口来操作。pc-i2050b带9个从总线,除了为每个从总线提供内部仲裁外,也可为系统提供外部仲裁。pci2050b提供10个从侧时钟输出。
2.3pci桥的设计
根据该模块总体设计框图,系统设计需要注意以下几个方面。
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总线中的任意一根。同时,为了减少地址线的容性负载,需要在该信号连线上串接一只1kω的电阻。本模块仅扩展一级总线,pci2050b主侧的idsel引脚直接连接到cpci插座j1的idsel。对于二级总线侧的pci器件(本模块为intel82551),其idsel引脚经过1kω的电阻连接到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.3pci2050b工作模式的选择
pci2050b有3种工作模式可供选择:ticpci热插拔模式、电源管理模式和intel21150兼容模式。选择引脚分别为mso,msl,模式选择定义如表2所示。
根据cpci总线应用设计的需要,笔者选择了ticpci热插拔工作模式。当pci2050b选择ticpci热插拔工作模式时,为了确保热插拔逻辑的正常工作,要求必须将hs_swich/gpi03引脚和hsenum引脚上拉,同时,由于没有使用pci2050b的关于gpi0引脚,且因为这些引脚在缺省条件下定义为输入脚,为了避免误触发,将这些引脚全部上拉。
3以太网接口
本网卡使用4片intel82551、4片eeprom93c46和4片pe68515实现4路以太网网络接口。intel82551是intel公司的一款高集成的以太网控制器,其主要功能是实现以太网帧的收发。它集成了10base-t/loobase-tmac控制器和10base-t/100base-tphy控制器,支持数据的全双工或半双工传输,支持自动协商,支持10/100mb/s传输速率,支持流控机制。
3.1intel82551与pci桥的接口设计
每片intel82551的cpci总线信号连接到pci2050b的从侧,应特别注意的是信号idsel和int#根据表1一一对应,否则模块插到系统槽上,系统不能正确驱动模块。其中1路器件的电路连接,如图3所示。器件的idsel连接到s_ad31上,则器件的中断int#连接到j1的intd#上。
3.2intel82551与传输介质接口
使用4片pe68515和4个rj-45实现传输介质接口。每一路接口电路连接,如图4所示。
3.3网卡调试
pcb电装完后,检查各器件及其他电路是否有虚焊,网卡插于cpci机箱插槽,在系统设备管理器中可看到模块属性,如idsel连接ad31,则属性为pcislotl(pci总线n,设备15,功能o)(n为总线编号)。用eeupdate对网卡配置后,模块可正常收发数据。
4结束语
本四网口模块符合pci2.2规范,已成功应用于3ucpci机箱的windows平台。根据需要可扩展为八网口的cpci卡,此系列基于cpci多网口卡,可广泛用于各类测试设备、有线通信等领域。

结构简单、操作方便的单片机红外遥控灯头控制系统设计
AI企业的盈利破局点在哪里
有没有比Xshell更牛逼的工具?
长电科技2022年上半年实现营业收入155.94亿元
HTC或在CES 2017上发布Vive2?
基于CPCI总线的多网口卡设计
技术速递 | Java Agent场景性能测试分析优化经验分享
多路竞赛抢答器
十大陨落的IT消费类电子产品公司:诺基亚居榜首
基于机器视觉的智能车系统
互联网医院扎堆出现,如何保障它们的信息安全
出游拍照手机推荐?华为p9,vivox7首选专业拍照手机!
3D打印和增材制造:一个充满活力和创新的行业
简单分析服务器的可用性问题
OPPO R17 Pro开启夜拍手机的2.0时代
基于有限状态机[8]的DSR路由表项设计实现方法
浅谈工业以太网串口网关ES-301A的典型应用
美国研究人员开发出了一种由3D打印的刚性机器人
土壤温度湿度测试仪的产品介绍
关于LabVIEW如何实现截屏