一种基于网络心跳的VxWorks操作系统的以太网冗余装置的制作方法

文档序号:23706124发布日期:2021-01-23 13:24阅读:138来源:国知局
一种基于网络心跳的VxWorks操作系统的以太网冗余装置的制作方法
一种基于网络心跳的vxworks操作系统的以太网冗余装置
技术领域
[0001]
本发明属于嵌入式软件开发领域,具体涉及一种基于网络心跳的vxworks操作系统的以太网冗余装置。


背景技术:

[0002]
在嵌入式开发领域,以太网的应用越来越多。尽管以太网有传输带宽大的优势,但是由于本身不具备错误处理能力,因此在需要传输可靠性的应用场景下需要额外的设计来保证。
[0003]
以太网最常见的可靠性设计方法就是链路冗余设计,其中主备网切换的方式——在主用链路故障时切换为备用链路是常用的链路切换方法。而目前主要使用的链路故障判定方法,是通过读取以太网的物理链路状态来判断该链路是否正常。但是该方法在如phy芯片或者变压器故障时,会出现链路假正常的判定问题,在面对恶劣环境的嵌入式系统中尤为突出。


技术实现要素:

[0004]
(一)要解决的技术问题
[0005]
本发明要解决的技术问题是如何提供一种基于网络心跳的vxworks操作系统的以太网冗余装置,以解决嵌入式系统中的链路假正常的判定问题。
[0006]
(二)技术方案
[0007]
为了解决上述技术问题,本发明提出一种基于网络心跳的vxworks操作系统的以太网冗余装置,所述以太网冗余装置包括心跳报文发送模块、网络报文抓取模块、链路连接状态查询模块和链路判定切换模块;
[0008]
所述心跳报文发送模块周期性向设备所在广播域中,通过两个链路发送心跳报文;
[0009]
所述网络报文抓取模块将收到心跳报文,根据接收的链路的不同、心跳报文的设备id的不同分类存储,并记录每个报文接收的时间,供所述链路判定切换模块调用查询;
[0010]
所述链路连接状态查询模块读取phy芯片的寄存器,周期性查询两个链路的物理连接状态,供所述链路判定切换模块调用查询;
[0011]
所述链路判定切换模块从所述网络报文抓取模块与所述链路连接状态查询模块查询信息,根据心跳报文和链路连接状态进行主备链路切换。
[0012]
进一步地,所述vxworks操作系统运行在单广播域下多个相互通信的设备上,所述vxworks操作系统上装有所述以太网冗余装置。
[0013]
进一步地,所述设备均有两个物理链路接入该广播域。
[0014]
进一步地,所述心跳报文是广播报文或组播报文。
[0015]
进一步地,所述心跳报文包括每个设备唯一的id,以及校验数据正确性的crc校验码。
[0016]
进一步地,所述心跳报文基于以太网二层报文发送,报文发送的周期在10毫秒以上。
[0017]
进一步地,所述vxworks操作系统的mux层节点中保存有报文接收和发送的定制函数指针,所述定制函数基于心跳报文的格式,将设备收到的报文进行过滤,筛选出其他设备发送过来的心跳报文发送到所述网络报文抓取模块,将其他非心跳的报文通过该mux层节点的原函数继续发送给协议栈。
[0018]
进一步地,所述根据心跳报文和链路连接状态进行主备链路切换具体包括:
[0019]
链路连接状态为先决判定条件,当主用的链路的连接状态异常,备用的链路的连接状态正常,则切换到备用的链路上;
[0020]
若连续收到间隔时间与心跳报文发送周期相符的心跳报文m次,则判定为心跳报文接收正常;
[0021]
若主用与备用链路的连接状态正常,设备从上电以来双链路从未接收到过任何心跳报文,则以心跳报文发送周期的n倍时间为周期来回切换主用与备用链路;
[0022]
若主用与备用链路的连接状态正常,设备从上电以来双链路接收到过心跳报文但没有心跳报文接收正常,则切换到收到心跳报文较多的链路上,直到哪个链路心跳报文接收正常就切换到该链路上;
[0023]
若主用与备用链路的连接状态正常,设备从上电以来双链路都有过心跳报文接收正常,出现了主用链路不是心跳报文接收正常,备用链路心跳报文接收正常,则切换到备用链路;
[0024]
若主用与备用链路的连接状态正常,设备从上电以来双链路都有过心跳报文接收正常,出现了主用与备用链路均不是心跳报文接收正常但是还能收到心跳报文的情况,则不切换;
[0025]
若主用链路连接状态正常,备用链路连接状态异常,则无论是否心跳报文接收正常,均不切换。
[0026]
进一步地,m大于等于3,n大于等于10。
[0027]
进一步地,所述判定心跳报文接收正常时根据接收的心跳报文id,筛选重点关注的设备的心跳报文作为主要判断依据。
[0028]
(三)有益效果
[0029]
本发明提出一种基于网络心跳的vxworks操作系统的以太网冗余装置,通过phy芯片得到的物理链路状态,和报文抓取模块得到的心跳报文综合判断是否切换,从而解决了物理链路正常收包不正常时不切换的问题。本发明实现了单广播域下更加精确的链路故障判断,继而达到更加可靠的以太网冗余。
附图说明
[0030]
图1为本发明的以太网冗余装置的结构图。
具体实施方式
[0031]
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
[0032]
本发明设计了一种运行于常见嵌入式操作系统vxworks上的软件装置,与传统的基于链路连接状态的故障判断方法相结合,实现在单广播域下基于网络心跳的更加可靠的以太网冗余。所述以太网冗余装置包括心跳报文发送模块、网络报文抓取模块、链路连接状态查询模块和链路判定切换模块;
[0033]
所述心跳报文发送模块周期性向设备所在广播域中,通过两个链路发送心跳报文;
[0034]
所述网络报文抓取模块将收到心跳报文,根据接收的链路的不同、心跳报文的设备id的不同分类存储,并记录每个报文接收的时间,供所述链路判定切换模块调用查询;
[0035]
所述链路连接状态查询模块读取phy芯片的寄存器,周期性查询两个链路的物理连接状态,供所述链路判定切换模块调用查询;
[0036]
所述链路判定切换模块从所述网络报文抓取模块与所述链路连接状态查询模块查询信息,根据心跳报文和链路连接状态进行主备链路切换。
[0037]
本实施例中,在单广播域下有多个相互通信的设备,每个设备运行vxworks系统,上面装有本发明的装置,每个设备均有两个物理链路接入该广播域。每个设备安装的装置是相同的,因此后文介绍一个设备上的软件装置实施方式。
[0038]
本发明的软件装置包括以下模块:
[0039]
1.心跳报文发送模块
[0040]
2.网络报文抓取模块
[0041]
3.链路连接状态查询模块
[0042]
4.链路判定切换模块
[0043]
模块1:心跳报文发送模块
[0044]
该模块的主要功能为周期性向设备所在广播域中,通过两个链路发送心跳报文。心跳报文可以是广播报文,也可以是组播报文,视具体的实施情况而定。报文内容应包括每个设备唯一的id,以及可以校验数据正确性的crc校验码。发送报文应直接基于以太网二层报文发送,尽可能的短,减少心跳报文对带宽资源的占用。报文发送的周期视具体的主备切换时间要求而定,一般要在10毫秒以上,避免对网络带宽资源占用过多。
[0045]
模块2:网络报文抓取模块
[0046]
vxworks操作系统网络协议栈中,每有一个使用中的网卡硬件,就会有一个对应的mux层节点。所有的mux层节点以链表的形式存储在全局变量endlist中。每个节点中保存有报文接收和发送的函数指针。将报文发送的函数指针指向本实施例定制的函数。
[0047]
本实施例定制的函数将基于心跳报文的格式,将设备收到的报文进行过滤,筛选出其他设备发送过来的心跳报文发送到所述网络报文抓取模块,将其他非心跳的报文通过该mux层节点的原函数继续发送给协议栈。
[0048]
该模块将收到心跳报文,根据从接收的链路的不同、心跳报文的设备id不同分类存储,并记录每个报文接收的时间,供链路判定切换模块调用查询。
[0049]
模块3:链路连接状态查询模块
[0050]
该模块读取通过phy芯片的寄存器,周期性查询两个链路的物理连接状态,供链路判定切换模块调用查询。
[0051]
模块4:链路判定切换模块
[0052]
该模块从网络报文抓取模块与链路连接状态查询模块查询信息,根据心跳报文和链路连接状态进行主备链路切换。
[0053]
链路连接状态为先决判定条件,当主用的链路的连接状态异常,备用的链路的连接状态正常,则切换到备用的链路上。
[0054]
心跳报文接收正常的条件为,连续收到间隔时间与心跳报文发送周期相符的心跳报文m次(一般可以设置为3次以上,视具体实施的切换时间与网络负载要求而定),则判定为心跳报文接收正常。可以根据接收的心跳报文id,筛选重点关注的设备的心跳报文作为主要判断依据。
[0055]
若主用与备用链路的连接状态正常,设备从上电以来双链路从未接收到过任何心跳报文,则以心跳报文发送周期的n倍(一般可以设置为10倍以上)时间为周期来回切换主用与备用链路。
[0056]
若主用与备用链路的连接状态正常,设备从上电以来双链路接收到过心跳报文但没有心跳报文接收正常,则切换到收到心跳报文较多的链路上,直到哪个链路心跳报文接收正常就切换到该链路上。
[0057]
若主用与备用链路的连接状态正常,设备从上电以来双链路都有过心跳报文接收正常,出现了主用链路不是心跳报文接收正常,备用链路心跳报文接收正常,则切换到备用链路。
[0058]
若主用与备用链路的连接状态正常,设备从上电以来双链路都有过心跳报文接收正常,出现了主用与备用链路均不是心跳报文接收正常但是还能收到心跳报文的情况,则不切换。
[0059]
若主用链路连接状态正常,备用链路连接状态异常,则无论是否心跳报文接收正常,均不切换。
[0060]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1