基于Zynq的TTP/C总线节点备份与再整合
2017-01-05陈飞张天宏
陈飞,张天宏
(南京航空航天大学 江苏省航空动力系统重点实验室,南京 210016)
基于Zynq的TTP/C总线节点备份与再整合
陈飞,张天宏
(南京航空航天大学 江苏省航空动力系统重点实验室,南京 210016)
TTP/C总线节点的备份与故障节点的再整合是提高总线可靠性与实用性的有效方法。参考TTP/C总线协议,在自主设计的基于Zynq的TTP/C总线控制器上设计了一种节点备份与再整合的方法,保证节点故障后可以重新整合进入集群,或者启用备份节点来保证集群的正常功能,最后通过试验验证了所设计的节点备份与再整合方法的有效性。
节点备份;再整合;Zynq;TTP/C
引 言
时间触发架构(TTA)是由欧洲委员会资助开发的分布式实时容错系统架构,大量研究表明,对高可靠性系统而言,TTA架构具有更大的优势[1]。1993年,在TTA架构的基础上,TTP/C(时间触发协议C类标准)被首次提出,其在安全性、可用性和可组合性等方面具有严苛的要求,更加适合分布式实时系统[2-3]。
故障是总线不得不面对和处理的情形,TTP/C总线协议采用组成员协议(GMP)这种分布式多机容错策略来快速探测和隔离故障节点,以维持整个集群的一致性,保证在故障模式下,集群中的每个正常节点都必须对其他节点的运行状态有相同的判断,以便采取和其他正常节点协调的容错行动,同时故障节点也会检测到自身已被集群踢出而进入冻结状态[4-5]。
1 总线协议
图1是TTP/C协议规定的分层结构,协议控制器主要包含3层:协议服务层、数据链路层和物理层。协议服务层主要实现TTP/C总线集群启动、故障节点再整合等高级功能。数据链路层实现数据组帧、CRC校验、曼彻斯特编解码、数据传输等底层功能。物理层是通信协议的最底层,为各个节点的数据链路层之间提供一条物理的比特流收发通道,TTP/C协议没有明确规定物理层传输介质,可以根据工作环境和传输带宽选择同轴电缆、双绞线或者光纤。本文设计的节点备份与再整合位于协议服务层。
图1 TTP/C协议的功能分层
如图2所示,TTP/C总线控制器在运行过程中包含可能的6个状态和15个状态转移路径,其中启动状态只有预设的启动节点才具备。表1为这6个状态的特征描述,状态5是节点正常运行的状态,在这个状态下的节点和集群中的其他正常节点处于时间同步和成员关系一致状态,并在MDEL设定的时间槽内发送数据。表2列出了6个状态之间的状态转移条件。
图2 TTP/C总线控制器的状态转移图
编 号状 态描 述0冻结等待主机激活1初始化完成控制器参数初始化和MDEL的CRC校验2侦听监听传输通道上用于集群同步的I帧3启动预设的启动节点在总线上广播I帧4被动已经实现时间同步,等待获取发送时间槽5运行已经实现与集群的时间和成员关系同步,并获取了发送时间槽
表2 状态转移描述列表
TTP/C总线集群的正常节点大部分时间处在运行状态,当节点检测到内部故障时,立即进入冻结状态,等待再整合进入集群,如果整合次数超过给定值,说明节点故障无法修复,需启动备份节点。对于备份节点,正确启动后进入被动状态,此时备份节点除了发送功能,其他完全正常,包括正常执行容错算法、接收其他节点的信息、进行时钟同步等。备份节点在被动状态时依据集群中其他节点的成员列表检测被备份节点的工作状态,当被备份节点故障后等待其再整合结果,如果再整合失败,则启动备份节点,保证集群的正常功能。
2 节点备份与再整合的实现
2.1 故障节点的再整合
本文设计的故障节点再整合中,当节点隐式确认失效时,同样认为发生内部故障进入冻结状态,而不是进入被动状态,等待获取发送时间槽。
图3 节点再整合流程
图3所示是节点再整合流程,当节点检测到自身内部故障时,进入冻结状态,如果此时再整合次数未达到上限,节点可以尝试进行再整合进入集群。此时节点默认处于未启动状态,等待冷启动帧重新启动,正确启动后读取MDEL列表中的发送时间槽,时间到后,将自身加入成员列表并尝试发送一个信息,随后侦听其他节点的信息,判断自己是否重新进入集群,如果其他节点的成员列表包含自身,说明成功进入集群,否则再整合失败,重新进行整合或者永久进入冻结状态。
2.2 节点的备份
图4 TTP/C总线备份 节点的运行流程
图4所示是备份节点的运行流程。备份节点的启动等功能与正常节点完全相同,不同的地方在于备份节点正常启动后需长期处于被动状态,时刻依据集群内其他节点的成员列表信息判断被备份节点的工作状态,依据TTP/C总线协议单故障假设,在一个TDMA周期内最多有一个节点故障,如果是被备份节点故障,则集群中其他所有正常节点的成员列表不包含被备份节点,否则集群中其他所有正常节点的成员列表必然包含被备份节点,因此备份节点依据集群内其他节点的成员列表是否全部不包含来判断被备份节点的工作状态。如果集群内其他节点的成员列表全部不包含被备份节点,则当前被备份节点不在集群中,处于故障状态。
备份节点在检测到被备份节点故障后,等待其进行再整合过程,如果连续多次检测到被备份节点始终处于故障状态,说明其故障无法恢复,此时备份节点转为正常节点,立即进入运行状态接替对应的故障节点,保持集群的正常功能。具体代码如下:
if((node_error==1) && (backup==1)){
//backup为是否备份标志位
//1表示当前节点为备份节点,0表示节点目前为正常节点
//被备份节点发生故障,自身为备份节点
//backup_count为被备份节点故障检测次数
backup_count++;
if(backup_count>=4){
//被备份节点故障检测次数超过给定值,启动备份节点
backup_count=4;
backup=2;
}
}
if(backup==2){
//被备份节点故障检测次数超过给定值
……//初始化各类计数值以使节点进入运行状态
mode=5;//mode为工作状态标志位,5表示运行状态
backup=0;//当前节点转换为正常节点
}
3 试验结果与分析
试验集群包含4个节点,每个TDMA(静态时分多路复用)周期分配4个时间段,并通过串口将本地成员列表和接收到的其他节点成员列表一起发送给串口助手进行显示。成员列表采用一个8位无符号整型数表示,低4位从第0位开始,分别表示1~4号节点的状态,1表示节点正常,0表示节点故障,高4位暂时未启用,默认为1。通信协议如下:
012~670x550xAA节点1~4的成员列表校验
图5所示是1号节点发送给串口助手的成员列表信息,由于1号节点只能在其他节点发送数据帧之后更新其各节点的成员列表,这会导致串口助手中显示的各节点成员列表存在滞后,才会出现图5中各节点的成员列表不同的现象,但这并不会影响集群的正常运行。
图5 TTP/C总线节点备份与再整合试验结果
4号节点备份试验结果中发生永久故障,第一个方框区域中4号节点发生故障,在之后的多个周期内未能再整合进入集群,在第二个方框区域中备份节点成功启动并进入集群,接替原4号节点的功能继续运行。4号节点再整合试验结果中发生瞬发故障,黄色区域中4号节点由一开始的故障状态经过3个周期后成功再整合进入集群,继续正常运行。由上述试验结果可知,当发生瞬发故障后,节点可以成功再整合进入集群,而当节点发生永久故障无法再整合进入集群时,可以成功启动备份节点,继续保证集群的正常运行。
结 语
[1] 魏婷,张喜民,陈益,等.一种基于TTP/C协议的容错策略研究[J].航空计算技术,2008,38(3):90-93.
[2] 赵罡,何锋,王红春,等.航空电子环境TTP/C总线应用技术研究[J].航空计算技术,2014,44(6):110-115.
[3] 张文豪,张天宏,陈飞,等.基于Zynq的TTP/C分布式控制系统智能节点设计[J].单片机与嵌入式系统应用,2016,16(5):53-56.
[4] 刘冬冬,张天宏,陈建,等.TTP/C协议的关键特性研究[J].计算机测量与控制,2012,20(10):2769-2772.
[5] 刘双与,郭丽娟,张激,等. TTP/C协议的一致性机制研究[J].计算机工程,2006,32(5):119-121.
陈飞(硕士研究生),主要从事航空发动机控制系统设计与仿真;张天宏(教授),研究方向为嵌入式控制系统、系统控制与仿真。
Backup and Integration for TTP/C Bus Based on Zynq
Chen Fei,Zhang Tianhong
(Jiangsu Province Key Laboratory of Aerospace Power System,Nanjing University of Aeronautics and Astronautics,Nanjing 210016,China)
The backup and integration are the effective methods to improve the reliability and practicability of the TTP/C bus.A method of backup and integration is designed on the self-designed TTP/C bus controller based on TTP/C bus protocol.The method can make the fault node rejoin the cluster or use the backup node to ensure the normal function of cluster.At last,the experiment results prove the validity of the designed method.
backup;integration;Zynq;TTP/C
V233.7
A
�士然
2016-06-02)