基于W5200的双冗余以太网通信系统应用研究
2018-02-26张高明李维波华逸飞范磊许智豪徐聪
张高明,李维波,华逸飞,范磊,许智豪,徐聪
武汉理工大学自动化学院,湖北武汉430070
0 引 言
随着现代舰船技术的迅猛发展,舰船电力系统作为整个船舶的核心,为其提供行驶动力和工作电力,但传统的现场总线通信方式已经无法满足日益增长的信息交换需求。针对这种情况,可将成熟的以太网技术应用于舰船动力信息系统中,设计船舶内部通信网络,提升舰船内部信息交换的效率和可靠性[1]。而电力系统内部总线承担着重要数据和命令的传输任务,拥有一种可靠、实时、高容错的通信总线对于舰船能量管理系统至关重要[2]。因此,通信的稳定性越来越被看重,而电力推进舰船在航行过程中会受到风、浪、流等多种随机不确定因素的干扰,可见对通信故障情况的处理至关重要[3]。
因为需要对相关电压、电流、功率等参数进行测试,计算机与受控设备之间的通信信息常会发生无法预测的错误[4],舰船数据采集设备工作环境复杂多变,由于传输距离、现场状况等诸多因素的影响,可能会导致传输通道中断,比如网络堵塞、网线断开、网络接口连接器松动、网络接口硬件电路故障等,造成网络实时性和可靠性降低,甚至不能正常工作。但系统对网络的要求却越来越高,除了满足正常的数据通信之外,还要求网络有较高的容错率,需要提高系统与外界通信的可靠性[5]。以太网具有传输速度高、低耗和兼容性好等优点,并支持几乎所有流行的网络协议。传统的以太网采用总线拓扑结构,如果局部网络故障,可能会造成大范围的网络瘫痪,而工程应用中要求网络具有零恢复故障时间[6],希望通过在冗余模式下收发重要的数据来避免因故障而引起数据丢失。
W5200是一款硬件TCP/IP协议的网络控制器,ARM处理器通过SPI接口可以实现与Internet网络的连接。在嵌入式领域,一般以太网设计实现方法相对复杂,其中物理层和数据链路层由芯片硬件实现,其他层由软件实现,因CPU中RAM空间有限,这对于移植相关协议栈有很大的限制[7]。
通信系统发展至今已经较为多元化,最初微控制器(MCU)在舰船上广泛应用时,多利用CAN,RS-422/485等来将多个MCU系统组成局域网络,以实现MCU之间的信息交流和共享,这种局域网络有很大的优势,但也存在着透明传输的可靠性低、通信效率低和传输距离短等弊端。随着以太网通信技术的发展,将嵌入式系统接入网络,利用全舰的网络资源实现舰船信息化是一种发展趋势。现在多用以太网技术将串口设备的控制和数据采集延伸到Internet上的各个终端,以方便地进行数据采集和仪器控制。
为了保证数据传输的可靠性,以太网通信冗余技术已普遍运行于舰船通信系统,因此本文拟阐述将以太网双冗余通信运用于舰船能量数据采集系统的可靠性实现。以某型舰船能量管理系统和数据采集通信系统为背景,对舰船各能量模块的数据进行实时采集,监控将模块的工作状态、温度、告警状态等传输给上位机的过程。鉴于以太网通信传输速率高,本文将构建基于W5200以太网芯片的双冗余以太网设计,利用W5200控制器的优点,提高通信的便捷性,进而实现双冗余以太网冗余切换方案,即设计两路独立的以太网外围电路,通过软件实现冗余切换功能,即一路故障或线路受损时,自动切换另一路以保证系统与外界设备通信时数据的可靠性。
1 冗余技术
目前,比较常用的冗余方式有并联冗余和旁联冗余。
1)并联冗余。
系统工作时,只有在所有并行工作的部件都发生故障时,系统才会出现故障。可靠性数学模型如式(1)所示:
式中:RS为系统的可靠度;n为组成系统的部件数,假设n个部件的可靠度均为R0。分析式(1)可知,在采用高可靠性的部件时,根据实际需求确定部件数目,可以使并联的冗余可靠性更高。
2)旁联冗余。
系统工作时,当只有一个组成部件故障时,检测与转换装置会转换至另一个冗余部件继续工作,只有在所有部件都故障时系统才会故障,数学模型为
式中:R1为工作单元的可靠度;R1,…,Rn为备份部件的可靠度;Rw为故障检测及转换装置的可靠度。分析式(2)可知,故障检测与转换装置的可靠性要求很高,旁联冗余性能与并联冗余性能较为相似,但旁联冗余可靠性对检查与转换装置的硬件有要求,且切换备件是冷启动,不满足实时性要求,因此,此舰船能量管理通信系统选择并联的冗余方式:对于需重点采集的部分,会采用2套采集底箱,同时对数据进行采集并通信至上位机,这样能够保证重要数据不会丢失。
每个底箱的双冗余通信系统利用软件实现切换,此冗余设计概述为:将两路以太网连接于不同的IP地址,两路以太网用于采集同一设备数据,在正常工作时,一路以太网与上位机正常连接并传送数据,另一路以太网连接但不通信且处于热备份状态。热备份指的是两路以太网都处于正常连接状态,一路以太网作为工作通信,另一路以太网作为备用通信,只连接而不通信数据,当工作以太网通信出现故障后,备用的一路立即开放数据通信。
本文将从硬件和软件2个方面对冗余通信进行介绍。硬件方面主要从系统各个组成部分及其对可靠性的提高上进行介绍;软件方面主要从W5200驱动初始化实现以及冗余切换策略上进行介绍。
2 硬件架构
2.1 系统组成
为实现舰船能量管理系统,设计了能够实时采集数据的通信系统,该系统的基本工作架构为:通过多个底层采集箱(以图1中的4个为范例)实时采集外部传感器测量的气温、电流、湿度、电压和功率等重要参数,再将采集的原始测量数据通过以太网通信发送给上级系统服务器(即集控台),控制箱通过采集的数据对输出功率和负载功率进行处理控制,再由数据了解舰船航行各个部件的实时情况,并根据需求进行调整控制,以保证设备运行在安全状态。系统拓扑图如图1所示。
该架构每个底箱与集控箱之间的通信为双路以太网,两路硬件上采用一样的电路设计并相互独立,每一路以太网通信为了避免受干扰采取了2次隔离防干扰处理,可以从根本上提高以太网的可靠度。在硬件上实现了双路以太网冗余,其中一路为另一路的热备份工作状态。下面,分别对各部分冗余结构进行详细分析。
2.2 数据采集中心组成
现对底箱架构进行原理分析。硬件整体设计的实时采集和传输系统的控制器选用ARM处理器,基于网络控制芯片W5200,实现双冗余以太网通信系统方案。选用ARM Cortex-M4内核的微控制器STM32系列的配置包括Flash:1 024 KB,SRAM:192 KB,3个12位ADC,2个DAC,1个低功耗RTC,12个通用16位定时器,支持全双工的3线 SPI模式(SCK,MISO,MOSI)。用此高性能ARM处理器达到系统的稳定运行和控制,系统框架如图2所示。
因为该系统建立在ARM嵌入式基础上,所以该系统通过编制所需的驱动程序,便可以完成对外部传感器数据的实时采集和控制输出,以达到对外部传感器的控制。同时,驱动网络控制芯片W5200用于网络通信,建立TCP/IP协议的双冗余网络通信,通过CAN1通信传输数据并显示于显示屏上。
此双冗余以太网系统在通信工作时设置其中一条通道为工作通道,既可以接收数据也可以发送数据;另一条通道作为备用通道,仅能接收数据。工作中,CPU处理器实时监测通道状态,发现工作通道出现故障时,将备用通道切换为工作通道[8]。
2.3 以太网介绍和原理描述
以太网控制芯片W5200内部有32 KB的存储器用于通信数据的存储。使用以太网芯片W5200通过简单的端口编程,用户可以实现想要的以太网通信的应用,而不必处理复杂的以太网控制。W5200非常适合通过单芯片实现TCP/IP协议栈、10/100 Mb以太网MAC和PHY。W5200包含一个经过多年市场验证的硬件TCP/IP协议栈、以太网的MAC和PHY。硬件TCP/IP协议支持TCP,UDP,IPv4,ICMP,ARP,IGMP和PPPoE,这些协议在各种应用领域已得到多年的验证。
这里W5200只提供SPI接口与CPU连接。以太网控制芯片W5200可实现TCP/IP协议栈、10/100 Mb以太网MAC和PHY。W5200内部有32 KB的存储器用于通信数据的存储,可以通过简单的端口编程[9]。该设计硬件采用2个网络控制芯片W5200,通过2个不同的网口接以不同的IP地址,利用SPI串口高速通信连接,采用全双工模式使交换机能够同时接收和发送数据。
网络控制芯片与ARM处理器连线的关系如图3所示。以太网通信使用SPI总线,SPI的时钟最高可达80 MHz,在SPI通信中,ARM处理器作为主机,W5200作为从机。图中:NSS为片选信号;SCLK为时钟信号;MOSI为主出从入;MISO为主入从出。为了避免对以太网通信的干扰,这里采用双层隔离的电路设计。首先,从CPU出来的相关SPI信号进行Ⅰ级隔离,采用芯片ADuM3150专用SPI隔离器,ADuM3150集成4个高速通道。4个通道为NSS,CLK,MI/SO和MO/SI(斜杠“/”表示特定输入和输出连接,在隔离器两端形成对应SPI总线信号的数据路径),针对B级的低传播延迟或A级的高噪声抗扰度进行了优化。
W5200与RJ45间连接的网络变压器起到了Ⅱ级隔离的作用,如果不接网络变压器,传输距离就会很受限制,而且当接到不同电平网口时,也会有影响,外部对芯片的干扰也很大。网络变压器的作用有:可以增强信号,使其传输距离更远;使芯片端与外部隔离,抗干扰能力大大增强,而且对芯片增强了保护作用(如雷击);当接到不同电平(如有的PHY芯片是2.5 V,有的PHY芯片是3.3 V)的网口时,不会对彼此设备造成影响。因为选用的网络变压器HR961160C上带有2个发光二极管,此设计将以太网传输速度信号状态和LINKLED连接状态表现为二极管的发光情况,其中SPEED信号灯亮表示传输速度为100 Mb/s,LINKLED信号灯闪烁表示连接正常。
以上为双冗余以太网电路设计的相关原理,其使得两路以太网电路通信不受干扰,使得冗余通信更加可靠。
3 软件架构
ARM处理器采用MDK开发平台的集成开发环境,可使用Keil 5软件结合C语言和汇编语言进行程序开发,此软件的在线调试Debug功能在开发过程中帮助很大。需要该系统对输入输出的传感器信号和数据进行一定的运算与处理,为此,还要在嵌入式系统中编写相应的应用程序。
3.1 W5200驱动的初始化
以太网控制器W5200的驱动程序包括:初始化设置和收发数据包程序;数据采集和处理程序,包括数据收发格式转换和暂存[10]。以太网控制器W5200驱动初始化步骤流程图如图4所示。
程序对芯片进行协议所必须的参数初始化配置,就可以实现以太网数据收发,包括以下几部分:
1)对以太网芯片所需的管脚进行初始化配置;
2)设置网口所需的接收缓存区和发送缓存区的大小;
3)设置网关IP地址、子码掩码、MAC地址和本地IP地址;
4)设置本地端口号、目的地端口号和目的地IP地址;
5)初始化网口数据区,初始化网口故障标志,在网络连接超时或故障时网口标志会被设置为1,以此作为冗余切换的标志。
3.2 以太网双冗余实现
经过初始化后,程序的每次循环会检查与目标端口连接是否超时(时间设置为2 s),若超时,则设置错误标志位为1。
本设计将2路以太网连接到2个不同的IP地址,配置完成并创立连接后,将其中一路以太网置于工作通道,开放解析报文功能,即能够与上级控制箱实现通信功能,实时刷新输入量状态和控制输出量;备份通道在程序中利用错误标志位来控制其通信是否开放,在工作通道正常工作时只收集数据而不对外开放解析报文输出功能,以达到热备份的作用。当工作一路的以太网出现故障时,势必会导致断开连接,程序中判据超时2 s未连接就令错误标志位为1,切换备用以太网至工作状态,解析报文功能开放输出,以此实现冗余切换功能。图5为双冗余实现流程图。
4 工程化验证
设计的控制器会将收集到的数字量和模拟量以及输出的数字量和模拟量通过以太网向外通信,将控制器作为服务器,平台管理中心作为客户端。程序设计需要从客户端发送对应的报文(显示当前采集的量、控制输出的量),控制器(即服务器)会回传应答报文,其中应答报文按照协议显示客户端所要求采集的数字和模拟量,也可显示控制输出量的相关信息。
设计的控制器作为Modbus TCP Server(服务)端,终端设备为Modbus TCP Client(客户)端;速率为10/100 Mb/s自适应;上位机访问周期为100 ms;使用Modbus功能码:0x03,0x06和0x10,其功能列举如下:
1)功能码0x03(读取保持寄存器):调试以太网的AI,DI相关输入通信量时,需要用到功能码0x03举例报文格式,读取的值根据服务器应答的数据来读取。
2)功能码0x06(写1个寄存器):因为1个寄存器可暂存2 byte,在只需要发送2 byte关于AO,DO数据时,在需要写入单个寄存器时,可用功能码0x06。
3)功能码0x10(写多个寄存器):在发送多个关于DO,AO的数据时需要用到功能码0x10的举例报文格式。
测试以太网通信功能码0x03情况如图6所示。由电脑作为客户端测试发送关于功能码0x03的报文格式,控制器作为服务端回传数据,可以看出,以太网连接正常且客户端发送和服务器应答报文格式均符合要求。
模拟舰船给入信号,使用信号发射器给入控制底箱的采集通道入口,经过测试底箱通过以太网回传的采集数据与给入的信号在允许误差之内,说明数据采集准确并且通过以太网传输无误,接下来,要对冗余切换功能进行测试。
为了测试冗余功能,采用2台电脑作为客户端分别与设备的2个网口IP连接,其中一台电脑与设备通信为正常工作状态,实时采集数据和控制输出,另一台电脑与设备以太网通信处于备份状态,只负责采集数据而不输出。正常工作以太网断开连接前,一直用另一台电脑发送功能码对应的报文格式,确认外部不受控制后,人为地将正常工作的以太网通信断开连接,计时断开连接后备用以太网能够控制对外输出的冗余切换时间,经多次测试,确实满足2 s的切换时间要求。
5 结 语
本文以STM32系列为主芯片,用于驱动2个W5200以太网控制芯片,并在硬件方面对以太网电路采取双隔离,设计了一种双冗余以太网通信的控制器。通过Internet,就可以将串口设备的控制和数据采集延伸到Internet上的各个终端,方便地对舰船能量系统所需参数进行数据采集和仪器控制,并且由于采用了高集成度的ARM嵌入式处理器,并对通信接口采用了冗余设计,使之在一路通道故障的情况下能够及时切换至正常的备用通道,加强了其可靠性,使之具有系统小型化、低成本、低功耗、稳定运行等特点,具有应用与推广价值。
[1]曲全福,石励,王奕.分组传送网技术在舰船网络系统中的应用[J].中国舰船研究,2013,8(4):109-115.QU Q F,SHI L,WANG Y.Application of PTN technologies to ship network systems[J].Chinese Journal of Ship Research,2013,8(4):109-115(in Chinese).
[2]陈尧,孙汉旭,贾庆轩,等.空间机器人冷热双冗余CAN总线系统的研制[J].测量技术与仪器仪表,2008,34(2):83-86,90.CHEN Y,SUN H X,JIA Q X,et al.The implementation of a dual-redundaney CAN bus system for space robot[J].Application of Electronic Technique,2008,34(2):83-86,90(in Chinese).
[3]李洪跃,王锡淮,肖健梅,等.柴电混合电力推进船舶负载频率H∞鲁棒控制[J].中国舰船研究,2017,12(3):120-127.LI H Y,WANG X H,XIAO J M,et al.H∞robust control of load frequency in diesel-battery hybrid electric propulsion ship[J].Chinese Journal of Ship Research,2017,12(3):120-127(in Chinese).
[4]刘丽军,杨耿杰,郭谋发.双以太网冗余通信系统的设计及应用[J].工业控制计算机,2005,18(7):15-16.
[5]谢战洪.双冗余CAN-以太网网桥热切换的研究[J].电气技术,2010(增刊1):85-87.XIE Z H.Research on a dual redundance can-Ethernet bridge of switch online[J].Electrical Engineering,2010(Supp 1):85-87(in Chinese).
[6]王一茗,张可,陈龙.一种高可靠可控双冗余以太网的设计与实现[J].计算机科学,2014,41(5):97-101.WANG Y M,ZHANG K,CHEN L.Design and realization of high-available controlling integrated double-redundant Ethernet scheme[J].Computer Science,2014,41(5):97-101(in Chinese).
[7]于慧彬,李小峰,齐鹏.基于双冗余以太网通信的气象实时观测数据采集网络传输系统的设计与实现[J].海洋技术,2012,31(1):31-35 YU H B,LI X F,QI P.Design&implementation of acquisition and transmission network system for meteorological real-time data based on dual-redundancy ethernet communication[J].Ocean Technology,2012,31(1):31-35(in Chinese).
[8]许学雷,孙招凤,张洪彬.CAN总线双冗余热切换系统及热切换方法:CN201020266922.4[P].2010-07-16.
[9]夏文,冯国伟,夏武.基于W5200的电能质量远程监控系统设计[J].电气技术,2012(8):88-91.XIA W,FENG G W,XIA W.Power quality remote monitoring system design based on W5200[J].Electrical Engineering,2012(8):88-91(in Chinese).
[10]易以锋,王治国,王雁,等.嵌入式Internet技术在舰船上的应用[J].中国舰船研究,2008,3(3):71-73 YI Y F,WANG Z G,WANG Y,et al.Application of embedded Internet technology in ships[J].Chinese Journal of Ship Research,2008,3(3):71-73(in Chinese).