本文研究并设计了基于PCI/cPCI(Peripheral Component Interconnection/Compact PCI)的高速媒体网关MGC(Multimedia Gateway Controller)系统。本媒体网关能在E1/T1(2.048 Mbps)时分多工TDM(Time Division Multiplex)多时槽(time slot)数据与100Mbps以太网的IP包之间进行高速数据交换。
在系统设计上,采用了软硬件并发设计(Codesign)的思想。在设计硬件系统的同时,着手研究并设计相应的软件系统。这样,在硬件系统设计完成后,软件系统也就基本就绪了。这样做的好处是:加快了系统总体设计进度,减少了软硬件的相互依赖。
在硬件系统总体设计上,采用了自顶向下(Top-down)设计技术。即先设计系统总体方案;然后将系统划分成一个个功能模块,再详细设计各个子系统;最后将各功能模块有机地连接起来做系统优化。
·四个串行通信口SCC(Serial Communication Controller),二个串行管理通道SMC(Serial Management Controllers);
·一个基于媒体独立接口MII(Media-Independent InteRFace)的快速以太网控制器FEC(Fast Ethernet Controller);
本系统设计了两个以太网口:基于MII的10Mbps/100Mbps自适应快速以太网接口和基于SCC的10Mbps以太网接口。FEC固定使用MPC860T的并行输入输出端口Port D,所以SCC不能使用这些引脚资源(同时也没有并行端口PD)。因此,在MPC860T资源的利用上要合理安排和综合考虑。以太网接口电路如图2所示。
MPC860T内部存储器管理单元MMU(Memory Management Unit)和通用途线GPL(General-Purpose Line)可以直接连到Flash、SRAM、DRAM和SDRAM上。本系统设计了8MB(一个Intel 28F640芯片;当使用Intel 28F320和Intel 28F160时,Flash的容量分别为4MB和2MB;它们引脚兼容)的Flash和16MB的SDRAM(最多可扩展至32MB)。
Flash用于存储嵌入式操作系统EOS(Embedded Operating System)和一些重要的配置数据。由于MPC860T的/CS0信号是为选择系统启动地址用,故将它连到闪存上。
对于SDRAM,情况要复杂一些。本系统设计了2组SDRAM(每组为2片HY57V651620B),它们分别受/CS1和/CS2控制。 SDRAM在地址信号上采用分次传送行地址和列地址的方式,因此用2片HY57V65162 0B(12×8结构;内有4个Bank)实现16MB内存时,MPC860T先送出行地址A18~A29,再送出列地址A10~A17(这些信号不直接连到SDRAM上,在MPC860T内部实现)。由于 SDRAM芯片内部的四个内存组需要另外两个地址信号A8~A9,因此总的地址信号为A8~A29(MPC860T的最低地址位为A31;最低数据位为 D31)。
1.4 时分多工(TDM)电路
本系统设计的时分多工数据交换由MT89L80和MT90823实现。这两个芯片都是Zarlinks公司生产的TDM芯片,它们的作用完全一样。使用两个芯片是系统设计上的技巧。当其中一个芯片不可获得时,启用另外一个芯片。因此在实际安装时,只使用其中一个(它们的交换容量不一样)。电路如图3所示。
按照H110总线规范,从H110连接器到交换单元之间必须有隔离电路。这一点容易被忽略。另外,本地时钟要求与网络参考信号同步。
1.5 PCI/cPCI电路
这部分电路是媒体网关的关键电路。媒体网关通过PCI/cPCI接口(与PCI2.2规范兼容)电路与主机或其它PCI/cPCI功能模块进行快速的数据交换,电路如图4所示。

PCI/cPCI电路在设计上比较复杂,调试起来也很费力(需要驱动程序的支持)。下面对其设计要点作分析:
(1)设计的可重用性。由于PCI与cPCI在信号上是完全兼容的(但在物理尺寸及信号排列上各不相同),所以在原理图设计时,这两者“同时存在”。但在实际的PCB版图设计,根据需要只选择其中一个。
(2)热插拔功能。该功能使媒体网关可以随时拔下来更换或做测试。这对系统的调试非常方便。热插拔需要预充电、电源检测和电源软切换等支持;
(3)防电磁波反射及预充电电阻网络。由于PCI总线工作在高频状态下(33MHz),因此cPCI引脚到PCI桥之间必须串接100Ω左右的电阻。在PCI/cPCI的电源引脚端,至少要有一个交流回路(对地并联一个去耦电容)。预充电电阻网络为PCI桥芯片提供一个从静态到正常工作的缓冲过程。
2 软件系统设计精要
软件系统包括:对嵌入式操作系统EOS(Embedded Operating System)的裁剪以适合嵌入式应用、PCMCIA驱动程序的设计、PCI驱动程序及应用程序的设计、TDM驱动程序及应用程序的设计等。
驱动程序是应用程序与软件进行数据交换的媒介,是操作系统(这里指主机OS而不是媒体网关的EOS)的信任部分,其好坏及性能将直接影响到OS的稳定性及性能。图5表明了应用程序、驱动程序与OS之间的关系。

在设计驱动程序时,首先利用KernelDriver5.0的驱动程序设计向导完成驱动程序源代码的设计(含安装信息文件*.inf);然后调用C/C++语言工具(如微软的Visual C++ 6.0)设计、修改和编译上述源程序以生成系统文件(*.sys)。同时,安装信息文件也必须编写和修改以使其中的信息与实际的安装程序一致。编译后的驱动程序还必须经安装测试以证实其安全性、稳定性和可靠性。
驱动程序设计完成后还必须设计相应的应用程序以调用该驱动程序。这一点相对比较简单。
3 系统设计中的一些关键问题
在硬件上,主要有四个问题:SDRAM地址信号的连接;PCI上的和信号至少要有一个接地;必须安装防电磁波反射电阻;PCI9054的E2PROM必须安装并正确配置。第1、3问题在硬件系统设计部分已讨论过;第2个问题决定系统板的电源功耗,如果两个信号都是“1”,则表示PCI卡没有正确插入到PCI槽中;第4个问题中,E2PROM至少要配置成PCI9054的默认工作方式(可以通过WinDriver等工具做实时修改)。
在软件设计上,主要有两个问题:安装信息文件必须修改及驱动程序的分发。当分层式驱动程序安装编译并测试完成后需要在没有WinDriver软件环境下安装和使用时,必须在目标机器上注册WinDriver插件以使安装程序能正确运行(如:WDREG INSTALL)。
本文在充分利用MPC860T资源的基础上设计了一种基于PCI/cPCI的媒体网关系统。该系统运行良好,总体性能优越。经适当的调整和修改,该设计也可以应用于基于MPC860系列CPU的系统。
参考文献
1 Motorola. MPC860 PowerQUICCTM User's Manual.1998
2 Motorola.MPC860T(Rev.D) Fast Ethernet Controller.1999
3 Jungo.Kernel Driver V5 Developer's Guide. 2002
4 D.M.D hamdhere.System Programming and Operating System,2nd Edition. McBraw-Hill Inc. 2001
5 方承志.基于MPC8260处理器的PPMC系统. 电子技术应用,2002;28(9)
6 戴志涛.E1信道多业务接入/复用设备的设计与实现.通信技术,2002;(6)