張曉敏 馬鵬飛
上海機(jī)電工程研究所,上海201109
指控計(jì)算機(jī)是導(dǎo)彈武器系統(tǒng)的重要組成,對(duì)上連接外部所有情報(bào)節(jié)點(diǎn)和網(wǎng)絡(luò),對(duì)下連接發(fā)射裝置、顯控臺(tái)、導(dǎo)航設(shè)備等,在很短的時(shí)間內(nèi),需要完成數(shù)據(jù)接收、模型解算、命令解析、數(shù)據(jù)發(fā)送和時(shí)間更新等多種不同的任務(wù),對(duì)系統(tǒng)的實(shí)時(shí)性要求很高。多年來(lái),國(guó)外軟硬件產(chǎn)品,包括核心的CPU和操作系統(tǒng),在導(dǎo)彈武器以及運(yùn)載火箭[1]等多個(gè)領(lǐng)域中被大量應(yīng)用和采購(gòu),一旦戰(zhàn)爭(zhēng)到來(lái),裝備生產(chǎn)將會(huì)面臨很大難題,無(wú)法自主可控。
近年來(lái),武器裝備核心元器件100%國(guó)產(chǎn)化的要求也逐步被提出,另一方面,國(guó)產(chǎn)CPU和實(shí)時(shí)操作系統(tǒng)在性能上不斷提升[2],國(guó)產(chǎn)CPU中龍芯處理器、飛騰處理器和申威處理器,實(shí)時(shí)操作系統(tǒng)中道系統(tǒng)、銳華操作系統(tǒng)等,都在三軍武器裝備上得到了驗(yàn)證和使用。
文獻(xiàn)[3]基于龍芯2H芯片和道嵌入式操作系統(tǒng)設(shè)計(jì)研制了某型火控計(jì)算機(jī);文獻(xiàn)[4]介紹了一種新型的基于龍芯3A+2H的火控計(jì)算機(jī)的設(shè)計(jì)方法,并移植了麒麟Linux操作系統(tǒng)內(nèi)核,實(shí)驗(yàn)證明該計(jì)算機(jī)能滿足軍用要求;文獻(xiàn)[5]在研制雷達(dá)中心計(jì)算機(jī)時(shí),選用了龍芯2F芯片和道3.0操作系統(tǒng),并通過(guò)實(shí)際工程應(yīng)用證明了國(guó)產(chǎn)化替代的可行性;文獻(xiàn)[6]采用龍芯2F加麒麟操作系統(tǒng)的組合,在多雷達(dá)點(diǎn)跡航跡融合處理設(shè)備上取得一定效果;文獻(xiàn)[7]基于龍芯3A芯片加天熠嵌入式操作系統(tǒng)加中標(biāo)麒麟系統(tǒng)設(shè)計(jì)研制了指控系統(tǒng)的嵌入式計(jì)算機(jī)和桌面應(yīng)用軟件。本文基于龍芯3A3000系列芯片和道6.0操作系統(tǒng),設(shè)計(jì)研制指控計(jì)算機(jī),測(cè)試結(jié)果表明該計(jì)算機(jī)滿足相關(guān)需求。
指控計(jì)算機(jī)通常集成在標(biāo)準(zhǔn)顯控臺(tái)上,依軍種不同安裝在艦船、裝備車或地面固定指揮中心上,是C4ISR(指揮、控制、通信、計(jì)算機(jī)、情報(bào)、偵察和監(jiān)視)系統(tǒng)的核心部分[8]。如圖1所示,指控計(jì)算機(jī)的主要功能有[9]:1)接收各種信息源(如雷達(dá)、紅外)送來(lái)的各類目標(biāo)參數(shù)信息,并建立目標(biāo)數(shù)據(jù)庫(kù),對(duì)目標(biāo)進(jìn)行數(shù)據(jù)融合等綜合處理;2)接收硬件操控臺(tái)和人工發(fā)出的數(shù)據(jù)或命令,進(jìn)行數(shù)據(jù)信息的處理顯示,如各車態(tài)勢(shì)、各設(shè)備硬件狀態(tài)等;3)依據(jù)數(shù)學(xué)模型,如坐標(biāo)轉(zhuǎn)換、威脅排序、殺傷區(qū)解算等,進(jìn)行戰(zhàn)術(shù)計(jì)算和輔助決策。
圖1 指控計(jì)算機(jī)功能示意圖
通過(guò)表1可以看出,Intel i5-7200U、FT1500和SW1600具有高吞吐率計(jì)算能力,適合應(yīng)用于需要處理大量數(shù)據(jù)和計(jì)算的服務(wù)器中。與Intel處理器相比,龍芯3A3000綜合性能相當(dāng)于Intel賽揚(yáng)J1900,單核性能相當(dāng)于i5-7200U的30%~40%,優(yōu)化之后能夠達(dá)到后者的60%。2020年,龍芯將采用14nm生產(chǎn)工藝,其主頻有望提升到2.5GHz。龍芯3A4000有望達(dá)到Intel I5-7200U水平。
表1 國(guó)產(chǎn)CPU與國(guó)外常用CPU主要性能比較
綜合考慮處理器的成熟度、應(yīng)用領(lǐng)域、配套軟件等情況,這里選擇龍芯3A系列作為國(guó)產(chǎn)化平臺(tái)計(jì)算機(jī)的核心處理器。具體而言:
1)龍芯、申威和飛騰,三家公司有著不同的主攻方向,龍芯主攻方向是嵌入式和PC;而飛騰和申威則把主要精力放在了超算芯片和高性能服務(wù)器上。我們的地面裝備目前階段網(wǎng)絡(luò)化布局還在試驗(yàn)起步,重點(diǎn)還是在嵌入式和PC上;
2)飛騰1500A系列芯片是在與ARM公司授權(quán)下,短周期內(nèi)研發(fā)出來(lái)的產(chǎn)品,業(yè)內(nèi)認(rèn)為其內(nèi)核是對(duì)ARM公版內(nèi)核進(jìn)行了修改,而非完全自己編寫(xiě)。相比起來(lái),龍芯處理器在性能上稍微落后,但其進(jìn)步快,單核CPU性能逐步提升,且依托中科院技術(shù)支持。
3)國(guó)產(chǎn)芯片與國(guó)外的差距上,CPU性能只是一小塊,重點(diǎn)是在下游產(chǎn)業(yè)鏈上,由于龍芯重點(diǎn)放在了嵌入式和PC方面,所以其與曙光、浪潮、銳捷網(wǎng)絡(luò)等下游軟硬件企業(yè)以及艦載火炮、艦載導(dǎo)彈的火控領(lǐng)域有多年的研發(fā)經(jīng)驗(yàn)。
龍芯處理器是中國(guó)科學(xué)院計(jì)算所自主研發(fā)的通用CPU,采用類MIPS 指令集,目前已發(fā)展到龍芯第二代產(chǎn)品。龍芯3A3000系列[10]就是目前第二代產(chǎn)品中已成熟穩(wěn)定且性能突出的一款處理器,它是一款4 核處理器芯片,采用28nm工藝制造,最高工作主頻為1GHz,主要面向嵌入式和PC應(yīng)用。其片內(nèi)集成4個(gè)64 位的四發(fā)射超標(biāo)量GS464 高性能處理器核,2個(gè)定點(diǎn)、2個(gè)浮點(diǎn)、1個(gè)訪存部件; 每個(gè)處理器核包括2 個(gè)全流水的64 位雙精度浮點(diǎn)乘加部件; 訪存部件支持128 位存儲(chǔ)訪問(wèn),虛地址和物理地址各為48 位。龍芯3A3000 的接口主要包括2個(gè)DDR 2/DDR3 內(nèi)存接口,2個(gè)16 bits、4個(gè)8 bits HT1.0 接口,4個(gè)32 位PCI/PCIX 接口,1個(gè)LPC 接口。
2.3.1 計(jì)算機(jī)整體架構(gòu)設(shè)計(jì)
中心計(jì)算機(jī)采用CPCI總線結(jié)構(gòu)、雙機(jī)的設(shè)計(jì)方案。兩臺(tái)指控主機(jī)互為備份關(guān)系,雙機(jī)置于同一機(jī)箱內(nèi),機(jī)箱設(shè)計(jì)為19英寸6U機(jī)箱。
中心計(jì)算機(jī)由2塊CPU模塊、2塊時(shí)統(tǒng)處理模塊、1塊BUS板及1個(gè)電源等組成,兩塊CPU板之間的通訊可通過(guò)外接網(wǎng)絡(luò)進(jìn)行,兩塊CPU模塊、時(shí)統(tǒng)處理模塊完全相同。
圖2 計(jì)算機(jī)接口方案圖
2.3.2 CPU板架構(gòu)設(shè)計(jì)
指控計(jì)算機(jī)采用CPCI總線結(jié)構(gòu),機(jī)箱為6U機(jī)箱。CPU板是基于龍芯3A3000CPU和龍芯7A1000橋片進(jìn)行設(shè)計(jì),CPU板實(shí)現(xiàn)計(jì)算機(jī)的基本功能,包括數(shù)據(jù)處理、總線管理、外設(shè)控制以及存儲(chǔ)等。CPCI載板根據(jù)外圍接口要求,完成電源管理、PCIe轉(zhuǎn)CPCI、并提供人機(jī)界面接口以及網(wǎng)絡(luò)等通信接口等。
國(guó)產(chǎn)實(shí)時(shí)操作系統(tǒng)主要有道系統(tǒng)、銳華操作系統(tǒng)、天熠、和欣及RT-THREAD 等操作系統(tǒng),綜合考慮地面裝備計(jì)算機(jī)對(duì)操作系統(tǒng)實(shí)時(shí)性的要求,配套開(kāi)發(fā)工具的完善性以及商業(yè)運(yùn)行模式,選擇道系統(tǒng)作為地面裝備計(jì)算機(jī)配套的實(shí)時(shí)操作系統(tǒng)。
道系統(tǒng)由北京科銀京成公司開(kāi)發(fā),目前最新的是6.0 版本[11],可對(duì)標(biāo)VxWorks-V6.8/6.9。支持多種處理器架構(gòu),包括X86、PowerPC、ARM和MIPS。支持多種國(guó)產(chǎn)處理器架構(gòu),包括龍芯、申威和飛騰,支持32位、64位應(yīng)用開(kāi)發(fā),提供基于應(yīng)用的定制化功能,提供豐富的故障診斷、調(diào)試功能,提供豐富的網(wǎng)絡(luò)組件,提供FTP訪問(wèn)權(quán)限設(shè)置功能,兼容QT圖形組件及擴(kuò)展QT圖形組件。在艦載、車載、機(jī)載等裝備領(lǐng)域有較成熟的應(yīng)用,某型護(hù)衛(wèi)艦綜合反潛火控分系統(tǒng)已使用道系統(tǒng)作為設(shè)備操作系統(tǒng)。
道系統(tǒng)6.0與VxWorks6.8系統(tǒng)的主要功能對(duì)比如表2所示:
表2 道系統(tǒng)6.0與VxWorks6.8功能模塊對(duì)比
道系統(tǒng)為類VxWorks 操作系統(tǒng),VxWorks下的應(yīng)用程序作少量修改即可移植到該系統(tǒng),考慮到軟件研制進(jìn)度緊,周期短,選擇道系統(tǒng)也能提供一種更為便捷省時(shí)的軟件移植方法。
3.2.1 PMON開(kāi)發(fā)
龍芯CPU是基于MIPS架構(gòu)設(shè)計(jì)的,目前所支持的固件有uboot,PMON,昆侖固件,UEFI等。這里選用PMON固件,PMON是一種具有BIOS部分功能的開(kāi)放源碼軟件,它保存著計(jì)算機(jī)基本輸入輸出程序、系統(tǒng)設(shè)置信息、開(kāi)機(jī)后自檢程序和系統(tǒng)自啟動(dòng)程序。PMON作為龍芯產(chǎn)品的基本輸入輸出系統(tǒng),能夠完成計(jì)算機(jī)系統(tǒng)的開(kāi)機(jī)自檢,板級(jí)初始化,加載操作系統(tǒng)內(nèi)核以及基本I/O功能。
3.2.2 BSP移植
板卡支持包的作用是使嵌入式操作系統(tǒng)在各種不同的硬件環(huán)境下都能較好地工作,通過(guò)特定的上層接口與操作系統(tǒng)內(nèi)核進(jìn)行交互,向操作系統(tǒng)提供底層的硬件信息,并根據(jù)操作系統(tǒng)的要求完成對(duì)硬件的直接操作。目前龍芯芯片公司會(huì)提供相應(yīng)的BSP包,供硬件集成方進(jìn)行二次開(kāi)發(fā),考慮到選擇 “道系統(tǒng)”,因此在道開(kāi)發(fā)環(huán)境Lambda Tools下,建立BSP項(xiàng)目,在龍芯公司提供的BSP模板上做二次開(kāi)發(fā),重點(diǎn)完成異常處理和中斷的管理、內(nèi)存管理和各驅(qū)動(dòng)程序的配置。具體步驟如下:
BSP移植開(kāi)發(fā)的常規(guī)步驟如圖4所示。
圖4 BSP移植開(kāi)發(fā)常規(guī)步驟
1)配置開(kāi)發(fā)環(huán)境。使用道系統(tǒng)的集成開(kāi)發(fā)環(huán)境LambdaTools。包含基本的編碼、調(diào)試等功能。
2)編寫(xiě)B(tài)SP初始化代碼。選擇PMON啟動(dòng)系統(tǒng),PMON將完成硬件初始化,包括設(shè)置時(shí)鐘和堆棧以及分配存儲(chǔ)空間等,并將編譯生成的道操作系統(tǒng)鏡像文件加載到相應(yīng)的內(nèi)存中,然后再啟動(dòng)操作系統(tǒng)。這里要依次調(diào)用sysInit()、usrInit()和UsrRoot()等3個(gè)啟動(dòng)函數(shù)。
3)配置最小內(nèi)核。在集成開(kāi)發(fā)環(huán)境LambdaTools下,建立一個(gè)BSP工程,依據(jù)硬件及機(jī)構(gòu)具體情況,配置內(nèi)核。
4)測(cè)試最小內(nèi)核。將內(nèi)核鏡像,下載到計(jì)算機(jī)上,測(cè)試系統(tǒng)能否正常啟動(dòng)。
5)編寫(xiě)和移植驅(qū)動(dòng)程序。首先重新配置中斷系統(tǒng),然后對(duì)網(wǎng)卡、窗口卡等外圍設(shè)備進(jìn)行驅(qū)動(dòng)適配。常用的配置和管理驅(qū)動(dòng)程序的設(shè)備驅(qū)動(dòng)架構(gòu)為VxBus。
指控軟件在道系統(tǒng)上開(kāi)發(fā)設(shè)計(jì),采用多任務(wù)的設(shè)計(jì)思想,根據(jù)指控計(jì)算機(jī)的外圍接口類型以及自身功能需求,對(duì)任務(wù)進(jìn)行合理劃分以及優(yōu)先級(jí)的設(shè)置。指控軟件要接收外部傳感器的情報(bào)信息、上級(jí)指揮單元的控制命令和數(shù)據(jù)、衛(wèi)星導(dǎo)航設(shè)備的準(zhǔn)秒信息、顯控計(jì)算機(jī)的人機(jī)交互命令以及自身作戰(zhàn)車輛的數(shù)據(jù)報(bào)文等等。因此,將指控軟件劃分為6個(gè)任務(wù),各任務(wù)優(yōu)先級(jí)高低及交互關(guān)系如圖5所示。
圖5 軟件任務(wù)關(guān)系圖
各任務(wù)主要功能如下:
1)網(wǎng)絡(luò)接收任務(wù):收到網(wǎng)絡(luò)報(bào)文后,保存報(bào)文發(fā)送地址,打上接收時(shí)戳,同時(shí)送主處理消息隊(duì)列和數(shù)據(jù)記錄消息隊(duì)列。
2)網(wǎng)絡(luò)重發(fā)任務(wù):通過(guò)130ms看門(mén)狗同步,將網(wǎng)絡(luò)重發(fā)消息隊(duì)列中的數(shù)據(jù)發(fā)送一遍,還需要重發(fā)的數(shù)據(jù)則再放回消息隊(duì)列。
3)主處理任務(wù):阻塞在主處理消息隊(duì)列上,若取的消息是報(bào)文,則進(jìn)行報(bào)文處理;若取的消息是83ms定時(shí)器所發(fā)送,則進(jìn)行周期處理(如定周期自動(dòng)分配、心跳報(bào)文組織和發(fā)送、送顯報(bào)文組織和發(fā)送)。
4)數(shù)據(jù)記錄任務(wù):阻塞在數(shù)據(jù)記錄消息隊(duì)列上,記錄網(wǎng)絡(luò)接收任務(wù)發(fā)送來(lái)的接收?qǐng)?bào)文,并封裝sendto函數(shù),在每次sendto時(shí)都同時(shí)向數(shù)據(jù)記錄消息隊(duì)列中發(fā)送一份,用于記錄。
5)數(shù)據(jù)回放任務(wù):讀硬盤(pán),若為需要送顯回放的數(shù)據(jù),則發(fā)送顯控;若不是,則繼續(xù)尋找。
6)外時(shí)統(tǒng)任務(wù):接收外接時(shí)統(tǒng)卡的準(zhǔn)秒脈沖中斷,對(duì)本機(jī)進(jìn)行校時(shí)。
為充分驗(yàn)證指控計(jì)算機(jī)的功能和性能,筆者設(shè)計(jì)了圖6所示測(cè)試系統(tǒng),系統(tǒng)由指控計(jì)算機(jī)、外接時(shí)統(tǒng)卡和外圍多個(gè)模擬器組成。其中指控計(jì)算機(jī)和外接時(shí)統(tǒng)卡之間通過(guò)RS232總線連接,指控計(jì)算機(jī)和外圍模擬器之間通過(guò)交換機(jī)進(jìn)行網(wǎng)絡(luò)連接。該測(cè)試系統(tǒng)旨在模擬真實(shí)工作環(huán)境,滿負(fù)荷運(yùn)轉(zhuǎn),檢驗(yàn)指控計(jì)算機(jī)的功能性能。
圖6 測(cè)試系統(tǒng)框圖
指控計(jì)算機(jī)對(duì)實(shí)時(shí)性有較強(qiáng)的要求,具體而言,指控軟件的6個(gè)任務(wù)中,主處理任務(wù)計(jì)算量最大,耗時(shí)最長(zhǎng)。以該任務(wù)為例,計(jì)算機(jī)必須在特定周期內(nèi)完成該任務(wù)的解算。其方法為在任務(wù)開(kāi)始前和任務(wù)結(jié)束后,分別調(diào)用tickGet函數(shù),讀取定時(shí)器的值t1和t2,t2-t1即為本次任務(wù)占用時(shí)間,假設(shè)做n次試驗(yàn),取最大值。
經(jīng)過(guò)12小時(shí)拷機(jī)對(duì)數(shù)據(jù)進(jìn)行記錄和分析,指控計(jì)算機(jī)在不同場(chǎng)景下主處理任務(wù)執(zhí)行平均時(shí)間如表3所示,可以看出:計(jì)算機(jī)在各種工作場(chǎng)景下,實(shí)時(shí)性均滿足要求。
表3 計(jì)算機(jī)實(shí)時(shí)性測(cè)試結(jié)果
對(duì)于一路時(shí)統(tǒng)卡準(zhǔn)秒脈沖輸入信號(hào),驗(yàn)證方法如下:
1)當(dāng)準(zhǔn)秒脈沖第i次到來(lái)時(shí),TimeOld更新為i-1次收到準(zhǔn)秒脈沖的時(shí)間,即將TimeNew首先賦值給TimeOld;
2)同時(shí),TimeNew通過(guò)調(diào)用tictGet()函數(shù)取準(zhǔn)秒脈沖第i次到來(lái)時(shí)的tick值。
3)DeltaT等于TimeNew和TimeOld差的絕對(duì)值,如果DeltaT<3,則本次脈沖有效。
4)對(duì)DeltaT進(jìn)行監(jiān)控,如果連續(xù)3次無(wú)效,則認(rèn)為時(shí)鐘模塊不合格。
如圖7所示,統(tǒng)計(jì)其中一次實(shí)驗(yàn)共計(jì)1892s,準(zhǔn)秒偏差為0或1ms。經(jīng)過(guò)12小時(shí)拷機(jī)測(cè)試,準(zhǔn)秒偏差均不超過(guò)±3ms。時(shí)鐘模塊滿足要求。
圖7 準(zhǔn)秒偏差分布圖
依據(jù)測(cè)試系統(tǒng)框圖,搭建測(cè)試環(huán)境,依據(jù)武器系統(tǒng)工作流程,分別從維護(hù)、訓(xùn)練和作戰(zhàn)狀態(tài)驗(yàn)證了指控軟件諸如初始化、信息交互、外圍設(shè)備控制、目標(biāo)數(shù)據(jù)接收、模型結(jié)算、任務(wù)調(diào)度、目標(biāo)控制等流程,最終試驗(yàn)結(jié)果和測(cè)試結(jié)果表明:指控軟件功能性能均滿足要求。
本文所研究設(shè)計(jì)的指控計(jì)算機(jī),依托國(guó)產(chǎn)龍芯3A3000系列CPU和國(guó)產(chǎn)嵌入式操作系統(tǒng)道6.0系統(tǒng)研制而成,經(jīng)過(guò)測(cè)試,計(jì)算機(jī)的硬件、驅(qū)動(dòng)和應(yīng)用軟件均滿足相關(guān)要求,本計(jì)算機(jī)進(jìn)一步提升了本武器裝備核心元器件的國(guó)產(chǎn)化率,保障了裝備的信息安全,對(duì)領(lǐng)域內(nèi)相似計(jì)算機(jī)的研制具有參考意義。