陶想林+陸熊+殷斌
摘 要: 為了抑制共模故障和提高飛控計算機系統的可靠性,設計實現了一種二余度非相似的飛控計算機原型系統。首先,給出了該系統的硬件結構和原理,硬件結構包括基于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],以提高飛控計算機系統的可靠性。當系統的某一部分出現故障時,余度技術可以確保系統在規(guī)定的時間內完成規(guī)定的功能。對于飛控計算機而言,余度技術是一種常見的容錯方法,它可以確保系統在一定的時間內即使存在故障也能正常工作[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 通信模塊
通信模塊用于實現數據傳遞、主副通道狀態(tài)交換和任務同步等功能,為系統中的關鍵環(huán)節(jié)。在三種通用的通信方式——總線、網絡協議(TCP/IP)和雙口RAM[6]中,本系統選用雙口RAM。本設計的通信模塊原理圖如圖2所示。
圖2 通信模塊示意圖
在圖2中,主副通道通過PC104總線和LBC總線與雙口RAM相連。雙口RAM包含3個環(huán)形緩沖區(qū)[7],分別用于存放正常工作時采集的數據、FPGA發(fā)送過來的狀態(tài)信號、故障發(fā)生時自檢采集的數據。為了避免訪問相同地址所造成的沖突,主副通道和FPGA在讀寫操作前通過讀取雙口RAM的狀態(tài)信號來判斷雙口RAM是否工作[8]。
1.3 仲裁模塊
仲裁模塊主要由故障分析單元和通道切換單元組成,負責故障檢測、故障定位、故障隔離和選擇輸出通道等功能。仲裁模塊是通過FPGA實現的,其原理圖如圖3所示。
仲裁模塊在一個判定周期內的工作流程如下:
(1) 仲裁模塊對采集數據進行比較,如果兩者的偏差在一定的范圍內,那么判定系統正常并優(yōu)先選擇主通道作為輸出通道,否則判定系統存在故障。
(2) 如果發(fā)生故障,故障檢測和仲裁模塊向主副通道發(fā)送相應的自檢和互檢信號,進行故障檢測。本系統的自檢過程為:主副通道先分別采集一個固定已知的值,然后FPGA比較主副通道采集的數據。
(3) 根據自檢和互檢結果,仲裁模塊隔離故障通道并為飛控計算機系統選擇輸出通道。
圖3 仲裁模塊原理圖
2 余度控制的軟件設計
2.1 任務同步
主副通道具有不同的處理器、指令系統和編譯效率,因而具有不同的算法執(zhí)行時間,在數據采集時就可能存在任務不同步的現象[9?10]。本文設計的系統采取的任務同步是在每次采集數據完成后進行任務同步。任務同步流程圖如圖4所示。
圖4 任務同步流程圖
任務同步的流程如下:
(1) 主副通道分別將數據寫入雙口RAM的采集數據存儲區(qū)。
(2) FPGA判斷主副通道數據是否都寫入雙口RAM。
FPGA定時檢測該數據存儲區(qū),如果檢測到有數據寫入,就將代表主副通道數據寫入的標志位flag1,flag2置位。
當flag1和flag2同時為1的時候,進入數據比較環(huán)節(jié)。在規(guī)定的時間內,當標志位flag1,flag2不能同時為1時,則進入仲裁模塊。
(3) FPGA對兩個通道采集的數據進行比較。若比較的結果在設定的范圍內,則分別向主副通道發(fā)送同步完成信號,并啟動下一次數據采集和同步;否則判定系統存在故障,進入仲裁模塊。
2.2 仲裁處理軟件模塊
當任務同步成功時,仲裁模塊優(yōu)先選擇主通道作為輸出通道[11];當任務同步失敗時,仲裁模塊進行故障檢測和選擇輸出通道,其流程圖如圖5所示。
圖5 仲裁模塊軟件流程圖
(1) 當檢測到系統發(fā)生故障,仲裁模塊向主副通道發(fā)送自檢信號。
(2) 主副通道同時進行自檢,并將自檢結果發(fā)送至仲裁模塊。
(3) 根據自檢結果,仲裁模塊進行故障定位。
(4) 仲裁模塊選擇輸出通道。如果主副通道都正常,優(yōu)先選擇主通道輸出;如果主副通道其中一個故障,選擇正常通道輸出并對故障通道進行互檢;如果主副通道均故障,則輸出前10次正常工作時的采集數據的平均值。
3 實驗和仿真結果
3.1 系統原型實現
基于以上硬件和軟件設計方案,本二余度非相似飛控計算機系統的實物圖如圖6所示。為了驗證系統的有效性,本文進行了相應的實驗。
圖6 二余度非相似飛控計算機系統的實物圖
主通道選擇基于Vortex86DX Soc處理器的NAC?1911單板機作為控制系統,采用AD7908采集數據。副通道選擇基于MPC8309處理器的TWR?MPC8309單板機作為控制系統,采用AD7829采集數據。主副通道分別將采集的數據送到雙口RAM,并且將采集的數據顯示在型號為DE2?115的FPGA開發(fā)板上。圖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發(fā)送的狀態(tài)信號,syn_X86=11表示同步失敗,進行自檢;syn_X86=ff表示一次任務同步成功,可以啟動下一次數據采集和任務同步;syn_X86=aa表示任務同步正在進行,主副通道等待。
(5) dcount是等待計數器,在每一次 clk的下降沿計數,dcount可計數255次大概計時2 s。
圖7為主通道數據寫入FPGA,但是在dcount計數到255時仍檢測不到副通道的數據,所以發(fā)出syn_X86=11和syn_MPC=11的狀態(tài)信號,表示同步失敗,進行自檢。圖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] 劉小雄,章衛(wèi)國,李廣文.電傳飛行控制系統的余度設計技術[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的環(huán)形數據緩存系統[J].計算機技術與發(fā)展,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].北京:國防工業(yè)出版社,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] 劉小雄,章衛(wèi)國,李廣文.電傳飛行控制系統的余度設計技術[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的環(huán)形數據緩存系統[J].計算機技術與發(fā)展,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].北京:國防工業(yè)出版社,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] 劉小雄,章衛(wèi)國,李廣文.電傳飛行控制系統的余度設計技術[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的環(huán)形數據緩存系統[J].計算機技術與發(fā)展,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].北京:國防工業(yè)出版社,2003.