《基于 FPGA 的网络半实物仿真系统.doc》由会员分享,可在线阅读,更多相关《基于 FPGA 的网络半实物仿真系统.doc(5页珍藏版)》请在三一办公上搜索。
1、精品论文基于 FPGA 的网络半实物仿真系统张亮 北京邮电大学信息与通信工程学院,北京 (100876) E-mail: zhangl401摘要:随着软件仿真技术的不断发展,半实物仿真技术因其具有的诸多优点愈来愈成为科学研究必不可少的手段。本文介绍了一种基于 FPGA 硬件的半实物网络仿真系统,该系统将 硬件应用到仿真中,利用丰富的外围硬件接口,为虚拟仿真网络提供实际的激励数据,从而 得到客观准确的仿真结果。本文将从硬件和软件两部分介绍此系统的具体实现。关键词:半实物仿真;FPGA;MicroBlaze;OPNET;ATM;E1中图分类号:TN929.531. 引言随着软件仿真技术的不断发展,
2、软件仿真是研究网络性能的重要手段。但是,现今网络 的发展,已经使得网络的建模和仿真越来越困难,同时仿真结果的准确性也受到怀疑,因此, 需要采用更加先进的软件仿真技术,减小建模的复杂度,增加结果的可信度,半实物仿真的 方法就这样应运而生了。本文提出了一种基于硬件半实物接口的 OPNET 网络仿真方法,使 实际网络节点映射到虚拟仿真网络中。该半实物仿真平台能将实际网络和 OPNET 虚拟网络 有效结合起来,既避免了建立复杂的实物测试平台,又提高了仿真结果的可信度。本文将介 绍一种基于 FPGA 的半实物仿真平台,硬件部分采用 FPGA 及外围芯片实现了虚拟网络到 实际网络的半实物接口。软件部分采用
3、计算机上搭建的 OPNET 虚拟仿真网络,对实际数据 和真实数据进行联合仿真分析。2. 系统总体设计整个半实物仿真系统由软件部分和硬件部分两部分组成,系统的整体结构见图 1 所示。 硬件部分,采用了两片 Xilinx 的 FPGA,实现了实际网络到虚拟网络的常用接口,如ATM 接口、网口、串口、USB 接口。通过 USB 接口或串口,能方便的将实际网络的数据实 时传输到计算机。软件部分,采用了 OPNET 公司的 OPNET Modeler 软件,搭建了一个虚拟的仿真网络, 通过程序进程接收或发送网络数据,然后通过 OPNET 的 ESA4(External Simulation Access
4、 外部仿真控制)技术将真实数据导入到仿真网络,或将虚拟仿真数据发送到真实网络,以此 实现了虚拟网络与真实网络的交互。启动 OPNET 仿真软件,便可以对网络数据进行实时仿 真分析,网络的仿真的结果可以在 OPNET Modeler 软件中得到实时显示。图 1 仿真系统整体结构- 5 -2.1 半实物接口板设计与实现硬件部分在整个系统承担的作用主要是充当计算机(虚拟仿真网络)与实际网络连通的 桥梁,硬件接口板如图 2 所示:图 2 硬件接口板结构框图如图 2 所示是接口板包含两个主要模块,分别是主控模块和接口模块。接口 FPGA 实现 了 ATM 解帧和组帧功能,主控 FPGA 需要控制多个外设
5、接口协同工作,主控 FPGA 通过互 联信号线对接口 FPGA 进行控制。两片 FPGA 之间的互连接口是数据交互的通路。2.1.1 总控部分设计 主控模块是整个半实物接口板的控制核心,对各个硬件接口进行了控制和调度,该部分采用了 Xilinx 公司的 Spartan3E 系列 FPGA 实现,并采用了 EDK 开发工具,在 FPGA 内部嵌入了 MicroBlaze 32 位的 CPU 软核实现主控功能。主控 FPGA 控制了多个接口,它们分别 是通过接口 FPGA 外挂的 USB 口、串口、E1 口、光纤口还有自身的网口。由于考虑到主控 FPGA 需要控制多个外设接口协同工作,所以需要在
6、MicroBlaze 上运行 uClinux 操作系统, 以实现不同接口之间的调度,程序运行在 SDRAM 上,操作系统镜像及基本配置数据信息保 留在 FLASH 上。主控 FPGA 采用 MicroBlaze 的 CPU 软核,使用 EDK 将 uClinux 移植到 MicroBlaze 上 运行,采用多任务方式,每个外设接口使用一个任务,利用时间片轮转调度方式,对多个外 设接口进行控制。uClinux 移植需要采用 EDK 软件首先搭建硬件环境2,通过使用软件提供 的串口,网口,SDRAM 和 Flash 的 IP 核,并将这些 IP 核通过 OPB 总线挂接到 MicroBlaze 的
7、 CPU 软核,配置并生成 uClinux 的 BSP,至此可完成硬件系统的配置,最后一步需要对 uClinux 源代码进行交叉编译,产生可以运行于 Microblaze 的 uClinux 操作系统。硬件系统 开始工作时,利用网口或串口可以将 uClinux 操作系统的代码下载到 Flash,并在 FPGA 上 先运行 boot 程序的代码,以后每次系统启动都会到 Flash 上的制定存储空间,将操作系统程 序拷贝到 SDRAM,并从 SDRAM 开始运行,完成了系统启动过程。2.1.2 接口部分设计 对于半实物仿真系统的接口部分,其作用主要是将各种接口的数据转换成载荷数据,然后通过互连接口
8、发送给主控 FPGA,由主控 FPGA 进行处理转发。考虑到接口 FPGA 需要数量较多的 IO 来实现对外围收发器的控制,所以采用了 Xilinx 公司的基于 IO 优化的 Spartan3A系列 FPGA 实现。此模块通过并行的总线挂接到主控 FPGA 上,接口部分在包含有多达四种接口(USB 口、串口、E1 口、光接口),每个接口通过 FPGA 控制相应的收发器来实现, 其中,USB 采用了 FT245BM 将 USB 口直接转换为并口连接到接口 FPGA,省去了 USB 的 协议处理。串口则是把信号直通到主控 FPGA,由主控 FPGA 直接来控制串口。光接口采用 了单模光纤收发器,也
9、是由主控 FPGA 直接控制。百兆网口直接可以通过总控 FPGA 直接 进行控制。相对其它接口来说 E1 接口部分最为复杂,由于应用过程中 E1 承载是 ATM 信号, 所以,除了控制 E1 的物理层收发芯片 DS21348 之外,接口 FPGA 还要承担一个主要功能就 是实现对 ATM 信源的解帧、解时隙、成帧、成时隙等上层处理,使得与主控 FPGA 交互的 只是载荷部分的数据,从而降低主控 FPGA 的负担。接口 FPGA 的 Verilog 程序部分,主要是 ATM 组帧及拆帧程序、与主控 FPGA 的接口 通信程序。ATM 接口通信程序采用了如下的分模块构造方式。图 3 ATM 发送模
10、块结构E1 发送部分如图 4 所示,来自于 PC 仿真网络的数据,通过以太网接口将数据传输到 主控 FPGA,主控 FPGA 通过互连接口,向接口 FPGA 写入数据,然后通过 ATM 组帧模块, 控制读取 RAM 缓存中的数据,并将读取数据输出给下级的 E1 数据流形成模块,E1 数据流 形成模块对数据进行加扰并组帧,最后通过物理成芯片 DS21348 发到 ATM 网络中,完成了 以太网数据到 ATM 信元的转换。图 4 ATM 接受模块结构E1 接收部分如图 5 所示,E1 数据流接收模块接收 DS21348 的 E1 数据流,并进行帧同 步,输出 PCM30 的 8bit 数据到下一级
11、的 ATM 解帧模块对 8bit 数据进行信源同步和 ATM 解 帧操作,最后得到净载荷数据,将载荷数据输入到缓存 RAM,最后,通过与主控 FPGA 的 接口,输出给主控 FPGA 处理。主控 FPGA 再将载荷数据打包成以太网帧,发送到计算机 或直接发送到以太网,完成了 ATM 信元到以太网数据的转换。2.2 仿真网络设计如图 6 所示:整个系统由虚拟仿真网络、真实网络、半实物网关、半实物接口控制模块、 和半实物接口板五部分组成。图 5 半实物仿真模型结构图 6 虚拟仿真网络示意图如图 7 所示,在仿真网络部分,OPNET 仿真软件按照 TCP/IP 或 ATM 协议栈模拟了实 际节点的结
12、构,这些仿真节点具有用有限状态机实现的虚拟的协议栈,各层协议以及仿真设 备用包流方式连接。当仿真包到达一个模块时,会引发一个流中断,接着协议进程响应中断, 处理仿真包结束,然后仿真包被删除或转发到其他模块。半实物网关作用是对仿真数据包和实际数据包进行转换,仿真包不是比特流,而是使用 由域组成的 OPNET 内部特殊的数据类型。因此,OPNET 仿真和真实网络不能直接通信, 而必须进行包的转换。因此,必须对传入计算机的 IP 包和 ATM 包进行更改,对于 IP 包使 用 WinCap 的 API 函数完成包的截获和转发。在截获和转发 IP 包时, 更改 IP 头完成虚拟 IP 和真实 IP 的
13、映射。对于 ATM 数据也要使用自定义的程序模块对 ATM 数据包进行转换。这 些转换过程都要交给半实物网关来实现。图 7 仿真网络网关实现方式8其中图 8 所示8为用半实物网关具体实现方式,该网关接在每一个连向半实物节点和网 络的链路上。该网关负责将仿真配置信息和仿真包转换成标准 C 能处理的数据结构发送到 外部接口控制模块。同时可以根据外部半实物接口转发来的真实包信息生成系统仿真包,其实现如图 8 所示,左上角是网关节点模型包括一对收发信机和协仿真 cosim 进程。进程中,op_init 完成 OPNET 软件仿真环境初始化,sim_init 状态进程等待外部接口的半实物仿真开 始指令,
14、并处理其传来的真实网络配置信息。sim_rev 和 ext_rev 状态则分别完成仿真数据 包与真实数据包的相互转换。半实物接口控制模块,完成将真实数据包传递到操作系统,可采用 WinCap 的 API 函数 实现。它通过侦听发送到本机的所有 I P 包或 ATM 包,然后将数据包包头分析结果和数据 域发送到半实物接口控制模块。在发包时。它从外部接口管理模块获得要发送的 IP 包或 ATM 包的数据和包头信息,构造 IP 包或 ATM 包,再发送出去。在这部分的发送出去的数 据包可以交给半实物接口板处理,半实物接口板可以将其转化为真实的以太网帧或 E1 数据 流,传送到真实网络。该部分主要是采
15、用了,OPNET 的外部仿真控制技术(ESA)4,完 成了外部真实网络与虚拟仿真网络的交互功能,使仿真网络事件与外部事件取得了同步。3. 结论本文提出的半实物 OPNET 网络仿真系统,软硬件已经实现,但整个系统对实际情况的 响应但硬件接口板的实现方式需要提高,多个硬件接口存在冲突,需要修改更适合的任务调 度方式,来实现对多个接口的控制,提高硬件板的响应性能。另外,光接口的功能还未实现, 需要加强接口 FPGA 的协议处理能力。参考文献1.Xilinx. EDK Concepts, Tools, T,2007.2.Xilinx. Getting started with uClinux on
16、the MicroBlaze Processor,XAPP730(V1.2). ,2007. 3.杨强浩,基于 EDK 的 FPGA 嵌入式系统开发,北京:机械工业出版社,2008.4.OPNET Modeler Documentation.OPNET Technologies,Inc. 5.陈敏,OPNET 网络仿真最新版,北京:清华大学出版社,2004.5. Xinjie Chang, Network Simulations with OPNET, Proceedings of the 1999 Winter Simulation Conference,1999.6 .OPNET Tech
17、nology Inc., OPNET HLA Modeler User Guide, 2000.7.段威、任华、刘海峰,基于 OPNET 的通信网络半实物仿真方法研究,北京:计算机仿真 第 11 期8.张筱、林孝康,一种基于 OPNET 的网络半实物仿真模型, 北京:微计算机信息 第 23 卷 第 11 期The hardware-in-loop simulation system based on FPGAZhang LiangDepartment of Information and Telecommunication, Beijing University of posts and te
18、lecommunications, Beijing (100876)AbstractWith the development of software simulation technology, hardware-in-loop simulation technologybecame the indispensable method in the field of sciences research. This paper describes a simulation system based on FPGA, and hardware is utilized in the system. T
19、hrough using many sorts of external hardware interface, the system supplies real stimulating data to simulation network, then gets the objective and accurate simulation result. The software and hardware implementation of this system is also introduced in the paper.Keywords:Hardware-in-loop simulation (HIL); FPGA; MicroBlaze; OPNET; ATM; E1作者简介:张亮,男,1984 年生,硕士研究生,主要研究方向是宽带无线通信新技术,数 字通信和数字电路设计。