一种高可用性的冗余工业实时以太网设计
1 引言
基于TCP/IP协议的工业以太网以其高通信速率和低应用成本被大量应用到工业通信中。以太网协议和TCP/IP协议本身未定义冗余通信,因此以提高可靠性为目标的以太网冗余通信研究受到了极大关注。以太网高可用性自动化网络标准IEC CDV 62439提出了“冗余至网络"和“冗余至节点"两类以太网冗余方案。前一类方案只提供线路和交换机冗余,节点本身没有冗余通道。比较典型的应用有STP、RSTP和MSTP。它们采用物理环网连接交换机和网桥。正常工作时阻断一个方向的通道防止“广播风暴”。故障发生后,通过启用阻断通道实现冗余通信。这类方案实现成本低,但是存在一定的故障恢复时间,且无法解决因节点网卡故障引起的通信中断。后一类方案中的节点和两个独立的冗余以太网连接,节点同时在两个网络上收发数据,因此能消除网络的故障恢复时间。其典型代表为PRP。PRP节点上连接冗余以太网的两个通道具有相同的MAC地址和IP地址。所有报文同时在两个网络上发送,接收节点通过报文时间标签筛选冗余报文。这种方案不可避免地增加了网络上报文的数量,且不能实现精确的时钟同步。文献中介绍了一种基于环网的冗余方案,该方案能同时实现节点的冗余通信和网络的精确时钟同步。该方案的节点具有两个具有数据交换功能的以太网接口。节电通过菊花链的形式串接成一个环网,故障发生时通过调整路由表实现冗余通信。采用环网冗余的ProfiNet把每个通信周期分成IRT部分和Open部分。在IRT部分节点向环网的两个方向同时发送数据,实现了重要报文零故障恢复时间的冗余通信。但是当多个节点同时发生故障时,就会造成环网的瘫痪。另有文献介绍的主干冗余方法则极大地利用了网络资源,它采用多条独立的以太网连接两个节点,数据在各个以太网上分散传输。故障发生后,通过其他通道分担故障通道的报文传输实现冗余通信,此方案无法消除故障恢复时间。本文提出了一种新的冗余至节点的工业以太网冗余方案,通过在报文中设计报文时间标签、节点间互检生成并实时维护网络状态映射表、次要报文在网络状态良好时采用双网分散传输等措施,可有效降低了网络的通信负荷,提高以太网的稳定性与可靠性。
2 冗余通信结构设计
2.1 网络拓扑结构
本方案的冗余通信网络采用“冗余至节点"的双以太网结构(如图1)。每个节点配备两个完全独立的网络接口(通讯介质、网络控制器、驱动接口等均冗余配置),构成A、B两个独立以太网通道。每个接口拥有各自的IP地址,分别与物理上独立的以太网A网和B网相连。IP地址的第四个字节与节点号对应(例如,节点n的A网和B网的IP地址分别为128.128.3.n,128.128.4.n)。当其中一个网络出现故障时,节点仍可以利用另一个网络进行报文收发,有效提高了系统的可靠性。
图1 冗余以太网拓扑结构
2.2 节点网络层次模型
网络中报文可以在A、B两个网络冗余传输也可以独立分散传输。但在应用层上必须保证所有报文的端口单一性,因此本文在TCP/IP层和应用层之间设计了冗余处理层,如图2所示。
发送方的冗余处理层负责报文冗余通信方式的选择,冗余报文的复制、报文时间标签的添加、传输通道的分配,实现了节点双网冗余传输和双网分散传输的发送。
接收方的冗余处理层负责报文冗余通信方式的判别、冗余报文的合并、网络故障自诊断,实现了节点双网冗余传输和双网分散传输的接收。
图2 通信节点的结构
2.3 通信报文格式
为区分冗余报文、非冗余报文以及实现冗余报文的筛选,本方案把以太网报文用户数据区的前2个字节定义为报文时间标签(如图3)。报文时间标签的最高位为“冗余通信”表示冗余通信传输方式。低15位为循环序列码,标识相同传输模式下发往同一目标节点的报文发送顺序。本方案在发送节点为每个目标节点、广播组、多播组各设计了一个寄存器存放上一次发送的报文的循环序列号。通过时间标签相当于为两个节点的通信传输建立了连接。
图3 冗余以太网报文格式
3 冗余通信的实现
3.1 双网冗余传输处理
利用报文中的时间标签,节点可以实现零故障恢复时间的双以太网冗余通信,其通信过程分为冗余发送处理和冗余接收处理。
3.1.1 冗余发送处理机制
发送节点的冗余处理层根据报文的目标地址把对应寄存器里的循环序列码加1,作为新报文的循环序列码。新报文同时在A、B两个网络上发送。因此当一个通道出现故障时,发送节点仍能通过另一个通道及时发送报文,实现了零故障恢复时间的冗余发送。
3.1.2 时间优先法冗余接收处理机制
双冗余传输模式下,接收方同时接受A、B两个网络上的报文,当一个通道出现故障
工业以太网冗余通信网络状 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)