FPGA软核高速网络测试仪控制平台
2019-09-17邓峰王颖
文/邓峰 王颖
随着网络的发展和普及,中国骨干网容量大增,单端口带宽能力从Kbps提升10Gbps,骨干网带宽已超100Tbps。随着人工智能、汽车、医疗和金融等领域的发展,对于网络带宽的需求会呈现稳定增长的趋势。根据《中国互联网络发展状况统计报告》数据显示:截止2018年12月,我国国际出口带宽数约8.9Tbps,我国宽带网络平均可用下载速率已经到达28Mbps,均呈现逐年上升的趋势。在网络速度日渐提高的同时,高速率网络测试仪和SDR等高速通信设备的研发也日趋火热。
图1:系统架构
1 系统设计架构
图1是测试仪控制平台系统结构,其中数据平台使用Verilog HDL软核实现,以保证系统性能。处理器是整个控制平台的核心,采用Xilinx MicroBlaze 软核。
核内存储:MicroBlaze使用BlockRAM作为Cache,使用LMB总线与系统相连,这一部分对控制平台软件透明。
AXI4-Lite总线:Xilinx最新的嵌入式方案采用AXI4总线体系,其中AXI4-Lite总线是最简单的一种总线。为了减小系统的复杂度,在可以满足功能的条件下尽可能使用该总线,该总线上连接有看门狗、定时器、UART以及数据平台。
看门狗:为了保证程序由于意外(例如强干扰)跑飞时,能够自动回复使用该模块。
计时器:为了保证可以使用时间片调度,提高网络测试仪的扩展性使用该模块。
UART:用于研发期间的调试。
数据平台:这部分参考NetFPGA10G方案,使用具有自主知识产权IP核,该部分完成包生成,比对和统计等高速信号处理。
AXI4总线:由于PCIe桥(Bridge)必须要DDR3模块的配合完成DMA操作,故这里我们的DDR3与PCIe模块都连接与AXI4总线。PCIe总线工作于从机模式,连接至PC(或工控机)PCIe插槽,完成和上位机的通信。
图3:控制平台流程图
2 网络测试仪软件层次
控制平台层次如图2所示。
从上至下一共3层,最高层应用层可以细分为两层,下面对每层的功能分别说明:
调度框架:实现所有模块任务的整合,采用时间片轮转算法调用各模块的任务函数,完成控制任务。
模块任务层:使用抽象层代码实现该模块在系统中承担的任务。
抽象层:封装物理层驱动,统一化出错(异常)等处理,向上隔离驱动层的易变性,简化模块任务层代码。
驱动层:实现各硬件模块的驱动。
3 控制平台流程
控制平台流程如图3所示。
初始化:首先,设置各模块(PCIe、看门狗、数据通道、定时器、串口)为默认工作模式;然后将时间片设置为1,开启定时器中断;
喂狗:时间片1中将看门狗值设置为初始值,避免程序自动复位;
读取PCIe数据:时间片2读取工控机(PCIe)传来的配置信息;
配置数据通道:时间片3解析PCIe传来的配置信息,并写入数据通道寄存器,间接控制数据通道工作;
空闲:为了便于每轮调度的时间值为一个便于管理的值,将4、5时间片设置为忙等模式;
修改时间片:该功能在定时器中断中完成。
其中,调度中时间片的长度必须大于四个任务中耗时最长的任务,每轮时间片的长度由下式计算:
每轮时间 = 时间片长×时间片数
4 以太网二层测试方案
目前 RFC2544标准测试是所有二层设备入网前的基本测试,为了今后网络测
试仪项目的开展,整理出RFC2544中定义的测试指标,并给出相应的测试方法和方案,用于指导后期逻辑(Verilog)及控制软件(MicroBlaze C/C++)对二层(以太网)测试的研发。RFC2544中定义的最重要4个测试参数为吞吐率、丢包率、时延和背靠背。测试网络(设备)时拓扑结构如图4所示。
图4:测试网络(设备)时系统拓扑结构
5 结论与展望
本设计架构设计新颖,可以借助FPGA的硬件逻辑完成以太网组包、解析、测试、分析等功能来取代传统使用NP(网络处理器)完成的工作,不受性能的约束,后续可以扩展到4~7层网络测试。通过PCIE接口提高稳定性,可以插入多张网络测试卡实现更高速率的带宽测试。