APP下载

基于PowerPC和X86的二余度非相似飞控计算机系统设计与实现

2014-10-14陶想林陆熊殷斌

现代电子技术 2014年20期

陶想林+陆熊+殷斌

摘 要: 为了抑制共模故障和提高飞控计算机系统的可靠性,设计实现了一种二余度非相似的飞控计算机原型系统。首先,给出了该系统的硬件结构和原理,硬件结构包括基于PowerPC和X86处理器构成的主副通道、用于交叉通信的双口RAM、基于FPGA的仲裁模块等部分;其次,系统中的余度控制软件部分主要给出了任务同步和仲裁处理软件模块的软件实现流程图,这是非相似余度的关键问题;最后,在实现实物系统的基础上,开展了一系列的仿真实验,验证了该设计系统的可行性。

关键词: 非相似余度; 飞控计算机; PowerPC处理器; X86处理器

中图分类号: TP393 文献标识码: A 文章编号: 1004?373X(2014)20?0091?04

Design and realization of dual redundancy dissimilar flight control computer system based on PowerPC and Vortex86

TAO Xiang?lin, LU Xiong, YIN Bin

(College of Automation Engineering, Nanjing University of Aeronautics and Astronautics, Nanjing 210016, China)

Abstract: In order to avoid the common mode faults and improve the reliability of the flight control computer (FCC) system, the prototype system of dual redundancy dissimilar FCC was designed and realized. Hardware structure and principle of the system are given. The hardware structure includes the primary and redundant control computers with PowerPC and Vortex86 processor, two?port RAM for cross communication and arbitration module based on FPGA. As for the redundancy control software in the system, the software flow charts for engineering realization of the task synchronization and the arbitration processing software module are given. These are the core sections of the system. Based on the realization of the proposed system, a series of simulation experiments of the proposed approach were carried out to verify the feasibility of the system.

Keywords: dissimilar redundancy; flight control computer; PowerPC processor; X86 processor

0 引 言

近年来,余度技术被广泛地应用在民用和军事方面[1?2],以提高飞控计算机系统的可靠性。当系统的某一部分出现故障时,余度技术可以确保系统在规定的时间内完成规定的功能。对于飞控计算机而言,余度技术是一种常见的容错方法,它可以确保系统在一定的时间内即使存在故障也能正常工作[3]。

为了有效抑制共性故障和提高系统的可靠性,本文基于PowerPC和X86处理器,设计实现了一种二余度非相似飞控计算机系统。在该非相似余度系统中,所有的余度资源都采用不同的硬件设备和软件设计[4?5]。

1 系统硬件结构

系统总体硬件结构如图1所示,主要由主副计算机通道、通信模块和仲裁模块组成。

1.1 主副计算机通道

考虑到本系统的需求和处理器的特点,在二余度非相似飞控计算机系统设计中,X86和PowerPC的处理器分别被选作为主副通道。

(1) 主通道主要由X86处理器和串行接口的ADC模块(AD7908)构建。主通道通过PC104总线实现通信和资源扩展,所使用的是FreeDos操作系统。

(2) 副通道主要由PowerPC处理器和并行接口的ADC模块(AD7829)组成。副通道是通过LBC总线完成通信,使用的操作系统是Linux。

图1 系统硬件结构图

主副通道配备各自外围接口(串口、离散I/O、模拟量输入输出等)和硬件资源(看门狗、电源、存储器等)。

1.2 通信模块

通信模块用于实现数据传递、主副通道状态交换和任务同步等功能,为系统中的关键环节。在三种通用的通信方式——总线、网络协议(TCP/IP)和双口RAM[6]中,本系统选用双口RAM。本设计的通信模块原理图如图2所示。

图2 通信模块示意图

在图2中,主副通道通过PC104总线和LBC总线与双口RAM相连。双口RAM包含3个环形缓冲区[7],分别用于存放正常工作时采集的数据、FPGA发送过来的状态信号、故障发生时自检采集的数据。为了避免访问相同地址所造成的冲突,主副通道和FPGA在读写操作前通过读取双口RAM的状态信号来判断双口RAM是否工作[8]。

1.3 仲裁模块

仲裁模块主要由故障分析单元和通道切换单元组成,负责故障检测、故障定位、故障隔离和选择输出通道等功能。仲裁模块是通过FPGA实现的,其原理图如图3所示。

仲裁模块在一个判定周期内的工作流程如下:

(1) 仲裁模块对采集数据进行比较,如果两者的偏差在一定的范围内,那么判定系统正常并优先选择主通道作为输出通道,否则判定系统存在故障。

(2) 如果发生故障,故障检测和仲裁模块向主副通道发送相应的自检和互检信号,进行故障检测。本系统的自检过程为:主副通道先分别采集一个固定已知的值,然后FPGA比较主副通道采集的数据。

(3) 根据自检和互检结果,仲裁模块隔离故障通道并为飞控计算机系统选择输出通道。

图3 仲裁模块原理图

2 余度控制的软件设计

2.1 任务同步

主副通道具有不同的处理器、指令系统和编译效率,因而具有不同的算法执行时间,在数据采集时就可能存在任务不同步的现象[9?10]。本文设计的系统采取的任务同步是在每次采集数据完成后进行任务同步。任务同步流程图如图4所示。

图4 任务同步流程图

任务同步的流程如下:

(1) 主副通道分别将数据写入双口RAM的采集数据存储区。

(2) FPGA判断主副通道数据是否都写入双口RAM。

FPGA定时检测该数据存储区,如果检测到有数据写入,就将代表主副通道数据写入的标志位flag1,flag2置位。

当flag1和flag2同时为1的时候,进入数据比较环节。在规定的时间内,当标志位flag1,flag2不能同时为1时,则进入仲裁模块。

(3) FPGA对两个通道采集的数据进行比较。若比较的结果在设定的范围内,则分别向主副通道发送同步完成信号,并启动下一次数据采集和同步;否则判定系统存在故障,进入仲裁模块。

2.2 仲裁处理软件模块

当任务同步成功时,仲裁模块优先选择主通道作为输出通道[11];当任务同步失败时,仲裁模块进行故障检测和选择输出通道,其流程图如图5所示。

图5 仲裁模块软件流程图

(1) 当检测到系统发生故障,仲裁模块向主副通道发送自检信号。

(2) 主副通道同时进行自检,并将自检结果发送至仲裁模块。

(3) 根据自检结果,仲裁模块进行故障定位。

(4) 仲裁模块选择输出通道。如果主副通道都正常,优先选择主通道输出;如果主副通道其中一个故障,选择正常通道输出并对故障通道进行互检;如果主副通道均故障,则输出前10次正常工作时的采集数据的平均值。

3 实验和仿真结果

3.1 系统原型实现

基于以上硬件和软件设计方案,本二余度非相似飞控计算机系统的实物图如图6所示。为了验证系统的有效性,本文进行了相应的实验。

图6 二余度非相似飞控计算机系统的实物图

主通道选择基于Vortex86DX Soc处理器的NAC?1911单板机作为控制系统,采用AD7908采集数据。副通道选择基于MPC8309处理器的TWR?MPC8309单板机作为控制系统,采用AD7829采集数据。主副通道分别将采集的数据送到双口RAM,并且将采集的数据显示在型号为DE2?115的FPGA开发板上。图6中8个数码管分别显示主通道(左4个数码管)和副通道(右4个数码管)采集的电压值,分别为1.688 V和1.788 V。经过任务同步和仲裁模块,FPGA将采集的电压转换为PWM波来控制演示电机。

表1为在该系统中注入不同故障的情况下主副通道的电压采集值和自检时采集的固定电压值。

表1 故障注入时主副通道的电压采集值

3.2 仿真实验

余度设计软件仿真中的相关信号为:

(1) clk为50 MHz时钟。

(2) PC_WR是X86与FPGA相连的PC104总线的写信号,下降沿表示在进行写操作。在仿真实验中,以检测总线写信号的下降沿来确定数据是否写入双口RAM。

(3)data_X86是PC104的数据线,addr_X86是PC104的地址线。

(4) syn_X86是任务同步后向X86发送的状态信号,syn_X86=11表示同步失败,进行自检;syn_X86=ff表示一次任务同步成功,可以启动下一次数据采集和任务同步;syn_X86=aa表示任务同步正在进行,主副通道等待。

(5) dcount是等待计数器,在每一次 clk的下降沿计数,dcount可计数255次大概计时2 s。

图7为主通道数据写入FPGA,但是在dcount计数到255时仍检测不到副通道的数据,所以发出syn_X86=11和syn_MPC=11的状态信号,表示同步失败,进行自检。图8为主副通道均正常时的余度软件实现的信号变化过程。

图7 副通道故障时的仿真图

图8 主副通道正常的仿真图

4 结 论

本文研究了基于PowerPC和X86的二余度非相似飞控计算机系统,给出了系统的硬件结构和余度软件设计。实验和仿真结果部分给出了系统的实物图和余度设计仿真,验证了二余度非相似飞控计算机系统的可行性和有效性。

参考文献

[1] 杨林芳.无人机容错飞行控制系统研究[D].南京:南京航空航天大学,2007.

[2] DUCARD G J J. Fault?tolerant flight control and guidance systems: practical methods for small unmanned aerial vehicles [M]. Germany: Springer, 2009: 89?90.

[3] MICRA S, SAXENA N R, MCCLUSKEY E J. A design diversity metric and reliability analysis for redundant systems [C]// ITC International Test Conference. [S.l.]: ITC, 1999: 662?671.

[4] 陈宗基,秦旭东,高金源.非相似余度飞控计算机[J].航空学报,2005,26(3):320?327.

[5] 刘小雄,章卫国,李广文.电传飞行控制系统的余度设计技术[J].飞机设计,2006(1):37?40.

[6] YEH Y. Triple?triple redundant 777 primary flight computer [C]// Aerospace Applications Conference. [S.l.]: [s.n.], 1996: 293?307.

[7] 李震.一种基于双口RAM的环形数据缓存系统[J].计算机技术与发展,2010(1):207?210.

[8] 唐永辉,徐鸣谦,乌建中.双口RAM在嵌入式多CPU系统中的应用[J].制冷空调与电力机械,2005(1):49?52.

[9] 杨文涛,李志宇,李洪冬.基于PowerPC和X86非相似余度无人机飞控计算机设计[J].计算机测量与控制,2013(2):166?168.

[10] 王丽丽,陈欣.无人机飞行控制计算机余度管理软件[J].南京航空航天大学学报,2009(z1):32?37.

[11] 宋翔贵,张新国.电传飞行控制系统[M].北京:国防工业出版社,2003.

图8 主副通道正常的仿真图

4 结 论

本文研究了基于PowerPC和X86的二余度非相似飞控计算机系统,给出了系统的硬件结构和余度软件设计。实验和仿真结果部分给出了系统的实物图和余度设计仿真,验证了二余度非相似飞控计算机系统的可行性和有效性。

参考文献

[1] 杨林芳.无人机容错飞行控制系统研究[D].南京:南京航空航天大学,2007.

[2] DUCARD G J J. Fault?tolerant flight control and guidance systems: practical methods for small unmanned aerial vehicles [M]. Germany: Springer, 2009: 89?90.

[3] MICRA S, SAXENA N R, MCCLUSKEY E J. A design diversity metric and reliability analysis for redundant systems [C]// ITC International Test Conference. [S.l.]: ITC, 1999: 662?671.

[4] 陈宗基,秦旭东,高金源.非相似余度飞控计算机[J].航空学报,2005,26(3):320?327.

[5] 刘小雄,章卫国,李广文.电传飞行控制系统的余度设计技术[J].飞机设计,2006(1):37?40.

[6] YEH Y. Triple?triple redundant 777 primary flight computer [C]// Aerospace Applications Conference. [S.l.]: [s.n.], 1996: 293?307.

[7] 李震.一种基于双口RAM的环形数据缓存系统[J].计算机技术与发展,2010(1):207?210.

[8] 唐永辉,徐鸣谦,乌建中.双口RAM在嵌入式多CPU系统中的应用[J].制冷空调与电力机械,2005(1):49?52.

[9] 杨文涛,李志宇,李洪冬.基于PowerPC和X86非相似余度无人机飞控计算机设计[J].计算机测量与控制,2013(2):166?168.

[10] 王丽丽,陈欣.无人机飞行控制计算机余度管理软件[J].南京航空航天大学学报,2009(z1):32?37.

[11] 宋翔贵,张新国.电传飞行控制系统[M].北京:国防工业出版社,2003.

图8 主副通道正常的仿真图

4 结 论

本文研究了基于PowerPC和X86的二余度非相似飞控计算机系统,给出了系统的硬件结构和余度软件设计。实验和仿真结果部分给出了系统的实物图和余度设计仿真,验证了二余度非相似飞控计算机系统的可行性和有效性。

参考文献

[1] 杨林芳.无人机容错飞行控制系统研究[D].南京:南京航空航天大学,2007.

[2] DUCARD G J J. Fault?tolerant flight control and guidance systems: practical methods for small unmanned aerial vehicles [M]. Germany: Springer, 2009: 89?90.

[3] MICRA S, SAXENA N R, MCCLUSKEY E J. A design diversity metric and reliability analysis for redundant systems [C]// ITC International Test Conference. [S.l.]: ITC, 1999: 662?671.

[4] 陈宗基,秦旭东,高金源.非相似余度飞控计算机[J].航空学报,2005,26(3):320?327.

[5] 刘小雄,章卫国,李广文.电传飞行控制系统的余度设计技术[J].飞机设计,2006(1):37?40.

[6] YEH Y. Triple?triple redundant 777 primary flight computer [C]// Aerospace Applications Conference. [S.l.]: [s.n.], 1996: 293?307.

[7] 李震.一种基于双口RAM的环形数据缓存系统[J].计算机技术与发展,2010(1):207?210.

[8] 唐永辉,徐鸣谦,乌建中.双口RAM在嵌入式多CPU系统中的应用[J].制冷空调与电力机械,2005(1):49?52.

[9] 杨文涛,李志宇,李洪冬.基于PowerPC和X86非相似余度无人机飞控计算机设计[J].计算机测量与控制,2013(2):166?168.

[10] 王丽丽,陈欣.无人机飞行控制计算机余度管理软件[J].南京航空航天大学学报,2009(z1):32?37.

[11] 宋翔贵,张新国.电传飞行控制系统[M].北京:国防工业出版社,2003.