APP下载

实时以太网核心调度模块设计及FPGA实现

2018-04-19孙伟龙朱元武张振华刘开源

火力与指挥控制 2018年3期
关键词:实时性以太网端口

孙伟龙,朱元武,张振华,刘开源,赵 腾

(北方自动控制技术研究所,太原 030006)

0 引言

以太网技术发展于20世纪90年代中期,以其兼容性强,成本低,引起了自动化设备厂商和广大用户的注意。然而经过验证,标准以太网在通信过程中存在着一定的问题,如消息传输不确定性、实时性差、环境适应能力弱、网络安全性不足、缺乏总线供电能力等。随着总线网络的快速发展,在陆军火控领域中引入了带宽相对较好的CAN总线[1]。

如今我国军工科技在图像识别、人工智能、机器人技术和多传感器融合等一系列领域上均取得了先进的科研成果。这些科研成果的成功取决于网络的带宽和实时性是否满足传输要求。CAN总线带宽已经严重不足,而标准以太网的实时性不够[2],实时以太网技术以其高带宽、高可靠性、高实时性的特点,成为了取代其他总线网络的首要选择。

实时以太网采用星型拓扑结构且拓扑结构中心是网络交换模块,网络交换模块核心是调度模块。运用FPGA技术实现核心调度模块,使实时网络在MAC层实现其存储转发的主要功能,进而提高网络实时性和可靠性,为实时以太网在火控领域的应用打下坚实的基础。

1 基于虚拟链路的实时以太网技术

1.1 虚拟链路技术

虚拟链路是建立在物理链路上的单向的逻辑通信通道,目的是建立从一个端系统到一个或者多个端系统的逻辑通道。如图1所示:

在信息传输过程中,同一物理链路上的不同虚拟链路之间有可能互相影响,导致数据流误传,带宽分配不合理等问题。通过限制物理链路上数据流帧的传输速率及帧的大小,使同一物理链路上的不同虚拟链路相互隔离,不受影响。通过限制两个参数来达到上述目的,即BAG(带宽分配间隔Bandwidth AllocationGap,BAG数值范围在2的1次幂到128次幂ms)和Lmax(虚拟链路上最大帧长),推论可知,每条虚拟链路的最大可用带宽Bmax=Lmax/BAG。综上通过设置时间间隔(帧传输速率)和时间延迟(帧的长度)避免了不同虚拟链路间的信息碰撞问题[9]。

1.2 流量整形技术

数据包在通过流量整形后才可以在虚拟链路上正常传输。流量整形的过程分为两个部分。首先筛选每个数据包的帧长度,如果长度超过Lmax,则流量整形器会将数据包分片,且分片后帧长小于等于Lmax;其次当两个数据包发送间隔小于BAG时,流量整形器将两者之间的时间间隔规整为一个BAG,保证每个BAG时间内只允许通过一个分片。BAG流量整形示意图如图2所示:

1.3 虚拟链路调度技术

每条虚拟链路分为4条子虚拟链路,虚拟链路调度的核心是子虚拟链路的调度。采用双端口存储器存放数据帧,为每套虚拟链路配置10个缓存单元,并设计一个空闲队列来反映这10个缓存单元的状态,每个虚拟链路设计4个子虚拟链路,用于存放各个子虚拟链路所使用的缓存单元号[6]。

CPU发送数据帧时,首先读取空闲队列来申请缓存单元,根据读出的缓存单元向其中写入需要发送帧的数据,再将缓存单元号写入子虚拟链路队列中。如图3所示:

虚拟链路采用公平轮询法进行调度,虚拟链路调度器逐个检查各个虚拟链路的状态,如果该虚拟链路有帧准备好(VLi_send_flag有效),而且BAG计时器给出有效指示(VLi_BAG_Timer有效),则可以发送。此时从该虚拟链路的子虚拟链路对应的非空队列对应的缓存单元,通过MAC层发送出去,完成一个帧的发送。如图4所示:

2 基于虚拟链路的实时以太网核心调度模块设计

2.1 调度模块功能设计

基于虚拟链路的实时以太网的拓扑结构中心是网络交换模块[9],网络交换模块核心为调度模块,核心调度模块主要实现3个功能:

1)调度模块通过公平轮询算法访问多个输出端口队列,将最终转发数据发送至各交换端口的发送FIFO中,并将帧的发送信息写入帧信息队列;

2)调度模块生成调度控制信息数据,生成调度控制信息数据,经数据接收发送总线将接受FIFO中的数据保存到外部的帧存储器(SSRAM)中;

3)将数据从交换端口接受FIFO中读取,并捕获需要捕获的帧数据,并发送到捕获模块。

2.2 调度模块子模块功能结构图

将调度模块化分为7个子模块:接收调度模块、发送调度模块、预调度模块、数据读写控制模块和3个不同的调度信息FIFO(First Input First Output先入先出队列),其子模块功能结构图,如图5所示。

3 实时网络核心调度模块的FPGA实现

3.1 核心调度模块逻辑代码及工程实现

搭建ISE13.4环境,新建调度模块scheduler_fpga工程,运用Verilog语言编写代码,通过编译,综合,仿真得到逻辑代码[3],如图6所示。

3.2 核心调度模块预调度子模块代码设计

核心调度模块预调度子模块共266行逻辑代码,代码截图如图7所示。

3.3 核心调度模块子模块端口说明实例表

由于子模块数据较多,这里选取接收调度模块rev_scheduler进行描述。

表1为接收调度模块端口说明:

表1 接受调度模块端口说明

3.4 核心调度模块子模块子模块仿真波形图

接收调度模块rev_scheduler的simulate behavioral仿真波形图,如图8所示:

对每个子模块仿真确认无误后,对整个rev_scheduler模块的simulate behavioral仿真如图9所示。

经仿真验证,核心调度模块的子模块经仿真验证得到的波形图,符合基于虚拟链路的实时以太网存储转发功能需求。

4 结论

综上所述,基于虚拟链路的实时以太网以其高带宽、高实时性成为取代其他总线的一大热点。本文设计采用星型拓扑结构,通过规避总线网络竞争来增强网络传输的可靠性。拓扑结构中心为网络交换模块,网络交换模块核心为调度模块,通过FPGA完成调度模块的逻辑设计,实现实时网络MAC层储存转发的主要功能,进而大大提高了网络传输的可靠性实时性,为基于虚拟链路的实时以太网应用打下坚实的基础。

参考文献:

[1]缪学勤.实时以太网技术现状与发展[J].自动化博览,2005,22(2):21-24.

[2]徐皑冬,王宏,邢志浩.工业以太网实时通信技术[J].信息与控制,2005,32(1):11-12.

[3]党树玲,宋宇.基于EDA技术的VHDL语言的研究与应用[J].电脑知识与技术,2006(36):23-24.

[4]叶佳字,陈晓刚,张新家.基于AFDX的航空电子通信网络的设计[J].测控技术,2008 ,27(6):56-58.

[5]张志.基于FPGA的AFDX端系统协议芯片的设计与实现[J].计算机测量与控制,2010,18(2):422-424.

[6]赵国斌.航空电子全双工交换式以太网分析[J].中国制造业信息化,2011,40(21):61-63.

[7]刘向东,李志洁,王存睿,等.以太网交换机原理实验设计[J].实验室研究与探索,2011,30(1):17-19.

[8]王骥,杨永田.实时以太网技术在航空电子系统中的应用[D].哈尔滨:哈尔滨工程大学,2006.

[9]孙书仁,张承瑞.实时以太网可靠性关键技术研究[D].济南:山东大学,2014.

[10]王绮卉,田泽.AFDX核心交换技术的研究和实现[D].西安:西安石油大学,2010.

猜你喜欢

实时性以太网端口
华为交换机端口Hybrid 模式的应用
一种有源二端口网络参数计算方法
一种端口故障的解决方案
隔离型三端口变换器的H∞鲁棒控制
航空电子AFDX与AVB传输实时性抗干扰对比
三大因素驱动创新提速以太网快步迈入“灵活”时代
三大因素驱动创新提速 以太网快步迈入“灵活”时代
计算机控制系统实时性的提高策略
基于以太网的计算机与数控系统通信技术研究
可编程控制器的实时处理器的研究