基于FPGA的实时以太网(PowerLink)星载通信技术

2018-01-18 07:11钟铁君李华旺
电子设计工程 2018年1期
关键词:物理层实时性以太网

钟铁君 ,李华旺 ,常 亮

(1.中国科学院上海微系统与信息技术研究所上海200050;2.上海微小卫星工程中心上海201203;

3.中国科学院大学北京101407)

目前国内在航天器上采用的总线主要是CAN总线和1533B总线等传统总线,随着中国航天和空间技术的快速发展,航天器对其内部总线的通信性能提出了越来越高的要求,传统总线的工作方式的已经难以满足航天器对其内部通信系统提出的新要求[1]。普通以太网虽然具有稳定、可靠,通信速率高、成本低等特点,但其采用CSMA/CD(Carrier Sense Multiple Access with Collision Detection,冲突检测载波监听多点访问)介质访问控制方式[2],导致传输延迟和传送时间的不确定性,因此普通以太网并不适合航天器上的安全关键场合[3-4]。为了满足安全关键场合对高实时性的需求,目前已经出现了EtherCat,TTEthernet等多种以太网实时性的技术解决方案[5-7]。

相对于几种主流的实时以太网,Powerlink具有开放性好,速度快,性能卓越等特点[8],且支持多种硬件平台实现,其中,采用FPGA为硬件平台可获得相对更高的实时性能,因此,本文以FPGA为核心设计实现了一个嵌入式以太网通信系统,并以此为硬件平台运行Powerlink协议,通过实际测试验证了系统设计的正确性。

1 Powerlink协议概述

Powerlink基于标准的OSI模型,它规定了OSI模型七层协议中的三层:物理层、数据链路层以及应用层[9]。

Powerlink的OSI参考模型如图1所示[10],除了物理层之外,每层建立在下一层的基础之上。Powerlink协议栈是建立在快速以太网IEEE802.3标准基础之上的,它采用Ethernet标准网络的物理层和 MAC(Media Access Control,媒体访问控制),通过修改数据链路层,使用时间槽网络通信管理机制SCNM达到实时控制。其应用层遵循广泛使用的CANopen协议标准[11]。Powerlink协议支持标准以太网的通信接入,并能很方便的与TCP、UDP以及IP协议等结合工作。

以实时性,确定性为目标Powerlink性能十分优越,通信系统的循环周期最小可达数十μs,每个节点最大可支持1 490 Bytes的数据帧传输。

图1 Powerlink的OSI参考模型

1.1 SCNM机制原理

SCNM机制通过配置主站和从站两种不同的节点来避免标准以太网采用的CSMA/CD机制产生的数据碰撞,其中,管理节点(Manage Node)MN负责对总线的使用权进行分配,避免产生冲突,实现实时通信。同一时刻只允许一个活动的MN节点存在,根据具体的应用场景可以设置冗余的MN,其余的节点在网络中作为受控节点(Control Node)CN运行[12],其数据收发完全由管理结点控制。网络通信阶段,MN为每个CN分配一个固定的时隙,确保在同一时刻仅有一个CN能够对网络媒体进行访问,有效地避免了冲突。

1.2 Powerlink通信机制

Powerlink有两种通信机制:基于请求/应答模式(Preq/Pres模式)和基于定时主动上送模式(PRC)模式[13-14]。

1)请求/应答模式

该模式下主站(MN)根据预先设置的节点号依次对所有从站(CN)进行轮询访问。首先MN发送同步帧SOC对所有节点进行同步,然后,MN发送单向Preq数据帧给第一个CN,CN收到PReq数据帧后向整个网络广播一个Pres数据桢,网络中其他CN对该帧进行监控并选择是否接收,如此主站和从站完成了一次信息交互,重复这个过程,直至轮询完所有节点。网络中所有节点完成一次通信所需的时间为一个循环周期。该模式的性能取决于物理层的传输速度和通信数据帧的大小。

2)定时主动上报模式

该模式下,MN将配置各个CN在循环周期上报数据的时刻。在MN广播发送Preq数据帧后,各CN以广播的方式在指定的时间上发送Pres报文。该模式下MN仅需发送一次Preq数据帧,因此,这种模式相比于基于请求/应答模式有更好的性能。

2 通信系统设计

文中以Microblaze为核心,通过调用IP核在FPGA内部搭建包括存储器、Powerlink MAC,节点拨码开关等多种外设的SOPC系统,利用片上PLB总线进行连接整合,外接以太网PHY芯片实现协议栈物理层的功能,通过RJ45接口连接到PC机,构建出完整的嵌入式网络通信系统[15]。系统整体框图如图2所示。

2.1 硬件设计

文中设计的基于FPGA的Powerlink硬件系统的基本架构如图3所示。

Mircoblaze软核CPU是目前处理性能最好,使用最广泛的软核处理器之一。在本系统中,Mircoblaze为Powerlink协议栈提供硬件运行平台,控制Powerlink实时以太网的数据传输。

图2 通信系统框图

图3 系统架构

Powerlink MAC主要负责控制与链接物理层的物理介质,提供MII/RMII等标准接口实现与外界PHY芯片的连接,同时提供MDIO/MDC接口来访问PHY芯片的内部寄存器,管理PHY芯片。

PHY芯片用来实现Powerlink协议栈的物理层功能,是直接面向实际承担数据传输的物理媒介,并且为数据链路层提供一个传输原始比特数据流的物理连接。

SRAM存储器主要负责存储协议栈的源代码以及对MAC的数据暂存。

拨码开关用来设置节点的节点号,Powerlink是通过节点号来寻址的,因此可以通过拨码开关来设置每个节点自己的NodeID。

本文采取的通过在FPGA中构建一个软核处理器来运行Powerlink协议栈的设计方法,相对于其他解决方案,具有灵活度高,成本低,实现容易等特点,而且能满足绝大部分的应用场合。在这个系统中,SRAM、拨码开关等作为CPU的外部设备,Microblaze会给每一个设备分配一个地址,在CPU中可以直接对地址进行操作,访问各个外部设备。此外,根据具体应用场景,可以添加一些新的逻辑功能,编写一个外部设备,挂到总线上。

2.2 软件设计

Powerlink以快速以太网标准IEEE802.3为基础。一个完整的Powerlink通信周期分为同步阶段和异步阶段两个阶段,在Powerlink循环的同步段,管理节点MN对控制节点CN进行周期性的轮询访问。异步段用于传输非周期性的、没有太高实时性要求的数据,其应用层通信规范改编自CANopen协议标准。CANopen协议有主要有3个部分:用于交换周期性数据的过程数据对象PDO、用于配置对象字典的服务数据对象SDO以及保存对象参数的对象字典OD。

Powerlink是唯一个真正基于标准的以太网硬件平台,并且与标准以太网完全兼容的纯软件解决方案,软件结构如图4所示。

图4 Powerlink软件结构

Powerlink API层为用户提供应用程序和协议栈间的一个简单的接口。应用程序通过使用API层的函数初始化Powerlink协议栈并执行不同的任务。

Powerlink协议栈可处理硬实时任务和低优先级任务,其中硬实时任务用于处理循环事件,低优先级任务负责异步事件的处理以及协议栈参数配置,这些任务之间的通信被封装在通信抽象层,便于对新平台的移植和优化。

Powerlink对象字典用于对协议栈参数的配置,配置的过程可以在协议栈的初始化阶段调用相应的API函数执行,也可以在协议栈运行期间通过SDO的远程传输来配置。

Powerlink网络管理模块通过NMT(Network managemengt)状态机来实现,NMT状态机决定通信单元的行为。主要包括通用初始化NMT状态机、MN NMT状态机和CN NMT状态机。

图5 系统测试连接图

3 数据通信与测试

为了验证系统设计的正确性,利用装有Wireshark网络诊断工具和windows操作系统的PC机上建立主站,在FPGA上建立从站,用网线将主站和从站连接起来,进行测试验证,主站和从站的通信方式采用请求/应答模式。系统测试连接图由图5所示。

运行Powerlink网络,需要设置网络的循环周期,循环周期的长短很大程度上取决于主站硬件处理器的性能,如果有操作系统,和操作系统的实时性也有关。例如在VxWorks上,可以达到几十至几百微秒的循环周期;在Linux+实时补丁下,可以达到几百毫秒的循环周期;在Windows下,最短循环周期在2 ms以上。因此,本次设置的网络循环周期为3 ms。

当Powerlink协议正常运行时,PC机上能够抓取到通信过程产生的数据包。图6为PC机上Wireshark成功抓取到的数据包。由图可知在t1=3.452 432、t2=3.455 431和t3=3.458 434的时刻,主站发出了一个preq数据桢,根据Powerlink协议通信原理,该系统的循环周期为t2-t1或t3-t2约等于3 ms,与系统配置的循环周期相等,验证了系统设计的正确性。

图6 Wireshark软件通信测试

4 结束语

文中对Powerlink实时以太网进行了理论研究,在此基础上,基于SOPC的方式实现了一个Powerlink网络通信系统,可以根据具体的应用场景灵活的进行增添裁剪,克服了原有普通以太网CSMA/CD访问冲突检测机制带来的时间延迟和不确定性的问题。通过实际测试可以得出,Powerlink实时以太网具有很高的实时性、可靠性、实现起来具有很高的灵活性且符合航天业务的发展对通信系统的要求,这为我国在空间应用中大规模使用以太网提供了一种有效的思路。

[1]邱爱华,张涛,顾逸东.航天器可应用实时以太网分析[J].空间科学学报,2015,35(3):368-380.

[2]曹云鹏.以太网MAC层协议研究与FPGA实现[D].苏州:苏州大学,2011.

[3]李婵娟.安全关键实时通信协议研究[D].兰州:兰州大学,2011.

[4]孔繁青,郭永林.我国空间站信息系统的综合技术研究[J].载人航天,2011,17(2):45-49.

[5]姚胜东.工业以太网现场总线EtherCAT的应用[J].仪表技术,2014(8):4-6.

[6]罗安心.基于时间触发以太网的同步算法研究与实现[D].成都:电子科技大学,2013.

[7]刘成,王彤,李铮,等.时间触发AFDX网络的设计和实时性分析[J].北京航空航天大学学报,2013,39(6):728-733.

[8]Erwinski K,Paprocki M,Grzesiak L M,et al.Application of Ethernet Powerlink for Communication in a Linux RTAI Open CNC system[J].IEEE Transactions on Industrial Electronics,2013,60(2):628-636.

[9]胡书立,王清理.POWERLINK总线技术的研究与实现[J].计算机工程与设计,2012,33(10):3821-3827.

[10]陈在平,孙逊,贾超.POWERLINK物理层通信的实现[J].计算机工程与设计,2015(6):1420-1424.

[11]王永兴.基于CANopen的多协议转换与传输机制研究[D].武汉:武汉理工大学,2011.

[12]赵粹臣.Ethernet POWERLINK通信协议的实时性研究与硬实时优化设计[D].沈阳:沈阳理工大学,2014.

[13]赵凤鸣.Ethernet POWERLINK实时以太网分析[D].包头:内蒙古科技大学,2012.

[14]赵涌,李延军,彭文才,等.Powerlink实时以太网的实现与测试[J].水电自动化与大坝监测,2015(1):52-55.

[15]梁绥泽,朱同文.基于FPGA的Ethernet Powerlink通信节点的设计与实现[J].无线互联科技,2015(7):3-4.

[16]苏玉烽.千兆网络通信系统的FPGA设计实现[D].西安:西安电子科技大学,2012.

猜你喜欢
物理层实时性以太网
基于K-ML-MPWFRFT的物理层安全传输技术
基于规则实时性的端云动态分配方法研究
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
公路联网电子不停车收费系统路侧单元物理层自动测试软件研发
基于虚拟局域网的智能变电站通信网络实时性仿真
航空电子AFDX与AVB传输实时性抗干扰对比
谈实时以太网EtherCAT技术在变电站自动化中的应用
多天线物理层安全传输系统性能分析
一种90W高功率以太网供电系统的设计
浅谈EPON与工业以太网在贵遵高速公路中的应用