梅 勇,袁 強,秦友倫
(中國兵器工業(yè)第58研究所 四川 綿陽621000)
自主可控計算機雙機系統(tǒng)切換仲裁策略及實現(xiàn)
梅 勇,袁 強,秦友倫
(中國兵器工業(yè)第58研究所 四川 綿陽621000)
為了實現(xiàn)自主可控計算機高可靠的需求,提出了一種雙機系統(tǒng)切換的設計方案,并完成雙機系統(tǒng)切換仲裁原理與策略及軟件實現(xiàn)。采用國產龍芯處理器2I(2J)+VxWorks+雙機熱備份方案,完成了主備選擇、數據及程序同步設計、故障檢測、雙機切換、雙機仲裁邏輯,實現(xiàn)了雙機仲裁、心跳、故障檢測等任務。實際應用表明,該策略既實現(xiàn)了系統(tǒng)自主可控的需求,又達到了高國產化率、高可靠性要求。
自主可控計算機;雙機切換;雙機仲裁邏輯;龍芯2J;VxWorks
自主可控計算機是國家重大項目中的關鍵設備,是發(fā)射控制的主控單元。主要通過通訊接口控制遠端設備執(zhí)行特定功能,并對遠端被控設備反饋的信息進行分析、處理及結果顯示。該設備在整個系統(tǒng)中作用重大,在實際應用中處于1年時間的超長加電連續(xù)工作狀態(tài),設備具有很高的任務可靠度[1-5]。
國家已經提出了建立自主可控計算機平臺的要求,包括采用自主CPU、自主操作系統(tǒng)和自主數據庫等。通過多方面的調研及論證,采用國產龍芯處理器2I(2J)+VxWorks+雙機熱備份方案,既實現(xiàn)自主可控又能達到高國產化率、高可靠性要求。
自主可控計算機整機為一體化加固桌面機,由2套配置完全相同的主板和電源板組成雙機熱備冗余系統(tǒng),雙機系統(tǒng)在工作中分別處于主機狀態(tài)、備機狀態(tài)。雙機工作狀態(tài)的仲裁切換由仲裁切換板上的仲裁切換邏輯電路實現(xiàn),仲裁切換邏輯電路檢測主、備機的心跳信號和故障報警信號,如果主機的心跳信號超時或發(fā)出故障報警,立即裁決備機進入主機狀態(tài),并同時控制相關接口設備切換。主備雙機之間通過兩路TTL電平標準的串行通道完成數據同步。雙機系統(tǒng)和仲裁切換板以及電源通過1塊無源底板實現(xiàn)系統(tǒng)連接。系統(tǒng)集成一塊液晶顯示屏和一套鍵盤鼠標設備,另外提供一個VGA視頻接口,支持外接顯示[6-11]。監(jiān)控設備主控計算機系統(tǒng)框圖如圖1所示。
圖1 系統(tǒng)組成示意圖
2.1 主備選擇
主備選擇是指在多機冗余(包括雙機)情況下,當系統(tǒng)加電啟動或主機崩潰后從多個冗余分機中選出一臺為系統(tǒng)的主機。主備選擇應當考慮到選擇出來的主機是冗余中當前性能最優(yōu)的。由于系統(tǒng)使用的兩臺分機,型號和資源配置完全一致,所運行的軟件環(huán)境也是相同的,本系統(tǒng)采用競爭機制進行主備選擇。即當系統(tǒng)加電啟動,仲裁邏輯模塊先確定槽位“A”分機為主機,如檢測到該分機心跳異常,如果槽位“B”正常,則裁決“B”分機為主機。在主機崩潰或發(fā)生故障后,仲裁邏輯模塊檢測到熱備機心跳信號正常,則裁決熱備機轉為主機。
2.2 數據及程序同步設計
整機系統(tǒng)主要通過以太網接口控制被測設備執(zhí)行特定功能,并對控制設備反饋的信息進行分析、判斷及顯示。在系統(tǒng)中主要由主機負責與被測設備進行數據交互,并將交互的數據通過主備機之間的TTL串行總線轉發(fā)給備機。備機完成數據保存以及應用軟件同步,一旦主機出現(xiàn)故障,備機獲取主機權限后,將按照最后一次接收到的正確的控制命令和返回數據順序往下執(zhí)行控制操作。系統(tǒng)雙機之間提供互為備份的兩個TTL串行通道作為數據同步通道。
2.3 故障檢測
故障檢測對于雙機熱備份系統(tǒng)是非常重要的保障機制。使用兩種方式來反應系統(tǒng)是否存在故障,即心跳信號與故障信號。仲裁切換邏輯則一直檢測心跳信號與故障信號的狀態(tài),若發(fā)現(xiàn)異常則進行相應的切換、重啟或報警。其檢測、切換、重啟或報警邏輯框圖如圖2所示。
心跳信號的產生及作用:主、備機分別通過軟件產生(周期性方波信號)心跳信號,用于表征軟件工作正常,如軟件無異常的長時間的阻塞等待式操作,或操作系統(tǒng)工作正常(未死機)。
故障信號的產生及作用:主、備機通過周期性任務檢測軟硬件的狀態(tài),用于表征硬件連接狀態(tài)。如網絡連接或USB連接斷開,則使故障信號有效。
系統(tǒng)仲裁主要通過“故障報警”和“心跳”組合判斷分機故障情況。
2.4 雙機切換
雙機切換設計主要是指雙工系統(tǒng)變成單工系統(tǒng)或單工系統(tǒng)變成雙工系統(tǒng),
1)切出
當一個分機自檢出現(xiàn)輕度故障:“故障報警”信號輸出或“心跳”信號異常,仲裁電路檢測到分機“故障報警”或“心跳”異常,裁決系統(tǒng)另一分機成為主機,系統(tǒng)由雙工變成單工狀態(tài),并控制接口切換電路進行切換,同時作出故障恢復或故障報警提示。
切出時機:某一個分機出現(xiàn)輕度故障(“故障報警”信號輸出或“心跳”信號異常);或接收到控制程序發(fā)出的切出命令。
圖2 故障檢測、切換、重啟、報警邏輯框圖
2)切入
當一個分機修復完成后,加入到系統(tǒng)中,并且將系統(tǒng)狀態(tài)恢復到雙工的過程稱為切入,切入過程中最重要的是保證狀態(tài)同步的一致。雙機系統(tǒng)的切入操作分為兩個步驟進行:狀態(tài)同步和備機加入。備機啟動完成、自檢合格后,通過備用數據同步通道向主機發(fā)出數據同步“請求”,主機收到“請求”后,將到接收到“請求”時刻以前的一個操作周期內的數據向請求機發(fā)送,并同步發(fā)送新產生的數據。當數據同步完成,備機發(fā)出“心跳”脈沖,報告熱備機加入完成,系統(tǒng)進入雙機熱備份狀態(tài),分機切入流程如圖3所示。
圖3 分機切入流程
2.5 雙機仲裁邏輯
仲裁邏輯電路為系統(tǒng)分機提供“心跳”和“故障報警”兩個IO輸入接口和一個“裁決”信號輸出接口?!靶奶睘橹芷谛盘?,是仲裁邏輯判別主備機存在及是否處于正常工作狀態(tài)的主要依據,但鑒于系統(tǒng)開銷問題,“心跳”周期不可能無限小,因此在系統(tǒng)設計上增加“故障報警”的電平信號,該信號可在檢測到故障時立即向仲裁發(fā)出故障報警,縮短從發(fā)生故障到切換的時間,增加切換效率。仲裁邏輯如圖4所示。
圖4 仲裁邏輯圖
軟件主要包含兩個部分:一個是用于啟動的PMON引導程序,另一個是VxWorks 6.7系統(tǒng)。在系統(tǒng)上電后,首先由PMON初始化處理器,內存、南橋控制器等。然后拷貝VxWorks鏡像到內存,跳轉到相應地址后開始進入VxWorks系統(tǒng)啟動過程,之后VxWorks系統(tǒng)將負責初始化所有硬件并加載硬件驅動,加載VxWorks的系統(tǒng)內核。最后執(zhí)行位于系統(tǒng)內核層級的雙機仲裁、心跳、故障檢測等任務,完成全部的啟動流程[12-15]。
3.1 啟動流程
基于龍芯2G+的主控制板的BSP包含兩個部分:一個是用于啟動的PMON引導程序,另一個是VxWorks 6.7的BSP支持包。在系統(tǒng)上電后,首先由PMON初始化龍芯2G+處理器,內存、南北橋控制器等。然后拷貝VxWorks鏡像到內存,跳轉到相應地址后開始進入VxWorks系統(tǒng)啟動過程,之后VxWorks系統(tǒng)將負責初始化所有硬件并加載硬件驅動,加載VxWorks的系統(tǒng)內核。最后執(zhí)行系統(tǒng)內核任務及用戶自定義任務后,完成BSP的全部啟動流程。啟動流程圖如圖5所示。
圖5 啟動流程圖
3.2 心跳產生模塊
心跳模塊采用看門狗定時機制,首先將判斷當前軟件及硬件狀態(tài)寄存器是否有故障狀態(tài)存在,若存在故障,則此次不會觸發(fā)心跳,而是觸發(fā)仲裁邏輯,若不存在故障,則向GPIO周期性輸出高或低電平模擬心跳行為,該模塊作為系統(tǒng)底層內部模塊運行使用。心跳產生邏輯如圖6所示。
圖6 心跳產生邏輯
3.3 仲裁模塊
仲裁模塊主要是為上層應用提供仲裁切換接口,通過該接口可實現(xiàn)切換功能的人工干預。提供接口SWAI_SwitchDevice。同時仲裁模塊還對仲裁板發(fā)出的仲裁完成信號進行響應,讀取仲裁狀態(tài)位,判斷當前系統(tǒng)為工作機或是備機,從而通知上層應用應該進入何種狀態(tài)。仲裁邏輯如圖7所示。
圖7 仲裁邏輯
自主可控計算機采用國產龍芯處理器2I(2J)+ VxWorks+雙機熱備份方案,完成了主備選擇、數據及程序同步設計、故障檢測、雙機切換、雙機仲裁邏輯,實現(xiàn)了雙機仲裁、心跳、故障檢測等任務,既實現(xiàn)自主可控又能達到高國產化率、高可靠性要求。
[1]吳蓬勃.龍芯3A處理器在某軍用系統(tǒng)上的應用研究[J].電子技術,2014(2):32-36.
[2]齊勁松,郭江宇,吳玉生,等.基于龍芯3A+2H的火控計算機系統(tǒng)設計[J].測控技術,2014,33(7): 85-87.
[3]胡海根.軟硬結合打造自主可控產業(yè)鏈[J].航空制造技術,2014(18):96-96.
[4]孫大東,楊帆.自主可控信息系統(tǒng)軍民融合式發(fā)展的探索與實踐[J].中國軍轉民,2015(2):32-33.
[5]秦磊華,譚志虎.信息產業(yè)自主可控人才培養(yǎng)問題研究[J].科技管理研究,2016,36(1):37-41.
[6]周群.基于龍芯3A的艦艇用計算機主模塊的設計與實現(xiàn)[D].北京:中國科學院大學(工程管理與信息技術學院),2014.
[7]權天.基于龍芯3A處理器的嵌入式系統(tǒng)的設計與實現(xiàn)[D].西安:西安電子科技大學,2014.
[8]賈穎,尚慧萍,鄭慧英.測控中心計算機系統(tǒng)的自主可控技術研究 [J].飛行器測控學報,2015(2): 115-119.
[9]張小可.基于XTX模塊的低輻射加固筆記本的設計與實現(xiàn)[D].北京:中國科學院大學(工程管理與信息技術學院),2015.
[10]潘巖.加固便攜計算機主板設計與實現(xiàn) [D].濟南:山東大學,2014.
[11]龔俊.基于龍芯3A的Linux系統(tǒng)網絡設備性能優(yōu)化設計與實現(xiàn)[D].成都:電子科技大學,2015.
[12]袁俊卿.基于龍芯3A2H平臺VxWorks板級支持包的移植與優(yōu)化[D].北京:中國科學院大學(工程管理與信息技術學院),2015.
[13]夏豪駿,王海瑞.基于龍芯平臺的J-Link協(xié)議移植實現(xiàn)[J].計算機工程,2014,40(2):267-270.
[14]史毅龍.基于“龍芯”計算機平臺Vxworks操作系統(tǒng)研究[D].北京:中國科學院研究生院(空間科學與應用研究中心),2015.
[15]周潔.基于VxWorks車載控制設備基礎軟件平臺設計與實現(xiàn)[D].成都:西南交通大學,2014.
Double machine system switching arbitration strategy and implementation of independently controllable computer
MEI Yong,YUAN Qiang,QIN You-lun
(N0.58 Research Institute of China Ordnance Industries,Mianyang 621000,China)
In order to satisfy the requirement of independently controllable computer high reliability,the design of double machine system switching is designed in this paper,which complete double machine system switching of arbitration principle and strategy,the software implementation.The system uses domestic godson processor2I(2J)+VxWorks+double-machine hot backup plan,completed the main machine selection,data and program synchronous design,fault detection,double machine system switching,double machine arbitration logic,has realized the double machine arbitration,heart rate,fault detection etc.Actual application shows that the system to achieve both the requirement of independently controllable,and reached high domestic rate,high reliability requirements.
independently controllable computer;double machine system switching;double machine arbitration logic;godson processor2J;VxWorks
TN702
:A
:1674-6236(2017)08-0183-04
2016-09-16稿件編號:201609151
梅 勇(1979—),男,湖北武漢人,副總工程師。研究方向:嵌入式系統(tǒng)研究。