亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        導(dǎo)引頭實時系統(tǒng)仿真架構(gòu)設(shè)計

        2019-06-17 09:28:30韓豐娟叢瀟雨郭山紅付姣姣
        計算機應(yīng)用與軟件 2019年6期
        關(guān)鍵詞:系統(tǒng)

        韓豐娟 叢瀟雨 郭山紅 付姣姣

        (南京理工大學(xué)電子工程與光電技術(shù)學(xué)院 江蘇 南京 210094)

        0 引 言

        在導(dǎo)引頭系統(tǒng)研制過程中,仿真驗證占有非常重要的地位[1],為了能更接近于真實的作戰(zhàn)場景,近年來導(dǎo)引頭系統(tǒng)仿真對實時性的要求越來越高。目前實時系統(tǒng)仿真難于實現(xiàn)的原因主要有兩方面,一方面是仿真多基于Windows操作系統(tǒng),雖然Windows擁有強大的圖形化接口與眾多第三方硬件的支撐,但其存在著延遲不確定、線程優(yōu)先級倒置、線程調(diào)度機制不確定、IO設(shè)備訪問受限、定時器精度差等諸多問題,很難滿足實時性要求。另一方面復(fù)雜的仿真系統(tǒng)多為多機互聯(lián)的拓?fù)浣Y(jié)構(gòu),目前常用的通信機制如紅外、無線、USB等,很難實現(xiàn)多機間的實時通信。

        為了提高Windows系統(tǒng)的實時性,滿足硬實時系統(tǒng)嚴(yán)格的響應(yīng)時間要求,本文采用了美國IntervlaZero公司的Windows操作系統(tǒng)實時性解決方案RTX[2]。該方案的實時性主要體現(xiàn)在以下三個方面:第一,相比于Windows下毫秒級的定時精度,RTX下可達(dá)到100 ns[3-4];第二,RTX能獨立地進(jìn)行中斷管理,而不受Windows干擾[5],可以實現(xiàn)對中斷的實時響應(yīng)。第三,RTX對線程的控制透明、靈活,擁有更多的線程數(shù)和更高的優(yōu)先級,線程間切換時間小于10 μs,能夠大幅優(yōu)化導(dǎo)引頭回波產(chǎn)生和信號處理的時間,提高系統(tǒng)實時性。在滿足實時性的同時,RTX可以通過共享內(nèi)存的方式與Windows實現(xiàn)通信,從而保留了對C/C++標(biāo)準(zhǔn)模板庫與圖形化交互界面的支持。為了解決多機間通信同步的問題,本文采用了由反射內(nèi)存卡+光纖Hub卡組成的反射內(nèi)存網(wǎng)通信機制,它是一種實時網(wǎng)絡(luò)[6],實現(xiàn)了基于總線公共存儲策略的硬件級數(shù)據(jù)同步傳輸,具有速度快、通信協(xié)議簡單、傳輸糾錯能力強等優(yōu)點。

        基于以上的分析,本文提出了基于RTX+Windows+反射內(nèi)存網(wǎng)的解決方案,完成了一種多機互聯(lián)的導(dǎo)引頭實時系統(tǒng)仿真架構(gòu)設(shè)計,實現(xiàn)了對實時性和友好交互的兼顧。

        1 導(dǎo)引頭實時系統(tǒng)仿真架構(gòu)

        如圖1所示,本文導(dǎo)引頭實時系統(tǒng)仿真分為六個模塊,分別是作戰(zhàn)想定人機接口、導(dǎo)引頭回波產(chǎn)生、導(dǎo)引頭干擾產(chǎn)生、導(dǎo)引頭接收機1、導(dǎo)引頭接收機2、數(shù)據(jù)融合與場景演示。每個模塊所在的計算機構(gòu)成分布式控制節(jié)點,各節(jié)點通過反射內(nèi)存卡在光纖HUB上實現(xiàn)互連,組成了一種星型結(jié)構(gòu)的反射內(nèi)存網(wǎng)絡(luò)。整個系統(tǒng)在RTX下進(jìn)行回波產(chǎn)生、干擾產(chǎn)生、信號處理、數(shù)據(jù)融合,在Windows下進(jìn)行可視化展示,RTX與Windows通過共享內(nèi)存進(jìn)行通信,各個模塊在中斷機制的控制下通過反射內(nèi)存網(wǎng)實現(xiàn)同步數(shù)據(jù)傳輸,進(jìn)而實現(xiàn)實時仿真。

        圖1 導(dǎo)引頭系統(tǒng)架構(gòu)圖

        圖2給出了系統(tǒng)的數(shù)據(jù)流程,用戶在作戰(zhàn)想定人機接口模塊的Windows軟件界面上輸入裝訂信息,RTX應(yīng)用程序通過共享內(nèi)存讀到裝訂信息后,再通過反射內(nèi)存網(wǎng)將其分別發(fā)送給回波產(chǎn)生模塊和干擾產(chǎn)生模塊。兩模塊的RTX程序根據(jù)得到的信息計算出回波與干擾信號,并傳送給導(dǎo)引頭接收機1和導(dǎo)引頭接收機2進(jìn)行信號處理。接收機模塊將處理得到的目標(biāo)信息通過反射內(nèi)存網(wǎng)傳送給數(shù)據(jù)融合與場景演示模塊,該模塊在RTX系統(tǒng)下進(jìn)行數(shù)據(jù)融合,然后將融合結(jié)果通過共享內(nèi)存?zhèn)魉徒oWindows進(jìn)行動畫展示,最終完成整個導(dǎo)引頭工作過程的實時仿真。

        圖2 數(shù)據(jù)流程圖

        2 關(guān)鍵技術(shù)實現(xiàn)

        2.1 RTX與Windows的結(jié)合使用

        (1) 在Windows下進(jìn)行RTX開發(fā)。

        RTX是在Windows環(huán)境下安裝和運行的。IntervalZero公司將RTX封裝為一個實時子系統(tǒng)RTSS,以驅(qū)動的形式加載在Windows上。開發(fā)人員可以使用Visual Studio(簡稱vs)工具來加載RTSS并進(jìn)行RTX開發(fā),具體步驟如下:

        ① 安裝WDK(Windows Driver Kit)。

        ② 依次安裝:RTX SDK、RTX runtime、RTX MM。

        ③ 在vs中新建RTX Application工程。

        ④ 在新建工程下調(diào)用RTSS的API函數(shù)RtAPI進(jìn)行相關(guān)應(yīng)用程序開發(fā)。

        (2) RTX與Windows間的通信機制。

        為了克服與Win32進(jìn)程間數(shù)據(jù)交互的困難,RTX提供了IPC通信機制:共享內(nèi)存、事件體、互斥體、信號量。其中共享內(nèi)存實現(xiàn)進(jìn)程間的數(shù)據(jù)交互[7-8],事件體、互斥體、信號量保證進(jìn)程間的同步。本文基于該機制使系統(tǒng)具有實時性的同時能夠?qū)崿F(xiàn)友好的人機交互。

        以數(shù)據(jù)融合與場景演示模塊為例,在RTX下創(chuàng)建共享內(nèi)存,然后將接收到的目標(biāo)位置、速度等信息寫入;在Windows下打開共享內(nèi)存后便可將信息讀出進(jìn)行動畫展示,其中對共享內(nèi)存緩沖區(qū)訪問的同步通過互斥體實現(xiàn),任何一方對共享內(nèi)存進(jìn)行操作時,都需要對互斥體加鎖,互斥體被釋放后共享內(nèi)存才可被另一方使用。該過程中用到的RtAPI函數(shù)如表1所示。

        表1 RtAPI中IPC通信實現(xiàn)函數(shù)

        2.2 RTX下反射內(nèi)存卡驅(qū)動設(shè)計

        本文導(dǎo)引頭實時系統(tǒng)仿真中多機間的數(shù)據(jù)傳輸是通過反射內(nèi)存網(wǎng)實現(xiàn)的,因此對RTX下反射內(nèi)存卡驅(qū)動的開發(fā)十分關(guān)鍵。首先需要在RTX系統(tǒng)的Control Pannel工具中將設(shè)備從Windows移到RTX下。根據(jù)系統(tǒng)需要,本文的反射內(nèi)存卡RTX驅(qū)動主要實現(xiàn)以下三個功能:開關(guān)設(shè)備、中斷控制以及讀寫數(shù)據(jù)。驅(qū)動程序的流程如圖3所示。下面對三個功能的實現(xiàn)分別進(jìn)行闡述:

        (1) 開關(guān)設(shè)備 打開反射內(nèi)存卡的步驟如下:首先將驅(qū)動程序附加到硬件設(shè)備上;然后將總線地址轉(zhuǎn)換為相應(yīng)的系統(tǒng)邏輯地址,再映射到用戶的虛擬地址空間;其次在I/O總線上設(shè)置設(shè)備的總線配置數(shù)據(jù);最后使用得到的地址空間句柄對設(shè)備中斷狀態(tài),DMA等進(jìn)行初始化配置。

        關(guān)閉反射內(nèi)存卡只需關(guān)掉對設(shè)備進(jìn)行操作的句柄,RTX會自己回收內(nèi)存資源。

        (2) 中斷控制 中斷控制包括中斷使能、設(shè)置中斷類型、發(fā)中斷、響應(yīng)中斷與等中斷五個部分。① 中斷使能,首先創(chuàng)建事件對象,然后檢查設(shè)備是否支持MSI或MSI-X,掛載中斷,最后將中斷線程/例程關(guān)聯(lián)到line-based/message-based的硬件中斷。② 設(shè)置中斷類型,通過配置反射內(nèi)存卡本地配置寄存器的中斷狀態(tài)位來實現(xiàn)。③ 發(fā)中斷,即將中斷節(jié)點、附加信息、控制位信息(NIC、NTN、NTD)寫入到本地配置寄存器,其中寫NIC將啟動網(wǎng)絡(luò)中斷。④ 響應(yīng)中斷,啟動網(wǎng)絡(luò)中斷后,中斷響應(yīng)函數(shù)將判斷中斷類型,然后設(shè)置相應(yīng)的事件對象。⑤ 等中斷,等待中斷觸發(fā),獲取事件對象句柄,然后取出中斷附加信息(ISD)、中斷節(jié)點(SID),最后重新設(shè)置中斷類型。

        (3) 讀寫數(shù)據(jù) 本文使用DMA和memcpy兩種方式分別實現(xiàn)大數(shù)據(jù)塊和小數(shù)據(jù)塊的讀寫。

        寫數(shù)據(jù)時首先判斷數(shù)據(jù)長度,若其小于DMA傳輸?shù)淖钚≈?,則直接使用memcpy將用戶數(shù)據(jù)復(fù)制到反射內(nèi)存卡的內(nèi)存中,否則,使用DMA進(jìn)行傳輸。讀數(shù)據(jù)時依舊首先判斷數(shù)據(jù)長度,若其小于DMA傳輸?shù)淖钚≈?,則直接使用memcpy將反射內(nèi)存卡中的數(shù)據(jù)復(fù)制到用戶申請的內(nèi)存中,否則,使用DMA進(jìn)行傳輸。其中DMA傳輸數(shù)據(jù)的步驟如下:判斷傳輸方向;得到傳輸數(shù)據(jù)物理地址;利用中斷的方式控制DMA對物理地址上的數(shù)據(jù)進(jìn)行分塊傳輸。

        圖3 驅(qū)動程序設(shè)計流程圖

        2.3 RTX下實現(xiàn)多線程

        相比于Windows下多線程使用的諸多局限性,RTX留給用戶的操作空間大,可支持多達(dá)997個獨立進(jìn)程,每個進(jìn)程的線程數(shù)不設(shè)限,由用戶自由設(shè)置。RTX的線程具有128個優(yōu)先級且均高于Windows的所有線程和中斷[9],線程間切換時間小于10 μs,因此使用RTX的多線程可以極大提高程序的實時性。本文對多線程的應(yīng)用體現(xiàn)在兩個方面,一是實現(xiàn)數(shù)據(jù)的傳輸與處理并發(fā)進(jìn)行,本文的數(shù)據(jù)傳輸是通過DMA控制加反射內(nèi)存網(wǎng)的方式實現(xiàn),不需要占用主機CPU資源,因此在數(shù)據(jù)傳輸過程中閑置的CPU可以用來進(jìn)行數(shù)據(jù)處理,從而大大提升系統(tǒng)的工作效率。二是通過RTX多線程將計算機的多核充分利用起來實現(xiàn)信號處理速度的提升,提高系統(tǒng)的實時性。RTX系統(tǒng)下線程創(chuàng)建及管理方法如下:

        在RTX的Control Pannel工具中為系統(tǒng)分配內(nèi)核,其中Windows至少分配一個核,其余供RTX使用。RTX程序中主線程會占用第一個核,剩余的內(nèi)核可由開發(fā)人員按照需要自由分配給子線程,為了系統(tǒng)最優(yōu),一般建議一個核分配一個線程。此外,為線程分配的內(nèi)核必須屬于其父進(jìn)程。RTX下創(chuàng)建使用線程的C++代碼如下:

        SetProcessAffinityMask(GetCurrentProcess(), 0x3E);

        //為當(dāng)前進(jìn)程分配內(nèi)核

        ULONG RTFCNDCL childThread1(void*nContext)

        {

        //TODO:在此放入代碼

        }

        childThread1=RtCreateThread(NULL,0,thread01,NULL,CREATE_SUSPENDED,NULL);

        //創(chuàng)建子線程

        RtSetThreadPriority(childThread1, 120);

        //為子線程設(shè)置優(yōu)先級

        SetThreadAffinityMask(childThread1, 0x04);

        //為子線程分配內(nèi)核

        ResumeThread(childThread1);

        //啟動子線程

        SuspendThread(childThread1);

        //掛起子線程

        3 系統(tǒng)測試

        本文首先對所實現(xiàn)的導(dǎo)引頭實時仿真系統(tǒng)的準(zhǔn)確性、實時性、與真實作戰(zhàn)場景的相似性在高性能硬件下分別進(jìn)行了驗證。計算機CPU6核、主頻3.7 GHz、32 GB內(nèi)存,反射內(nèi)存卡采用PCI-5565PIORC,PCIE接口,容量128 MB字節(jié)。

        (1) 準(zhǔn)確性驗證 如圖4所示,在作戰(zhàn)想定人機接口模塊輸入裝訂信息,在數(shù)據(jù)融合與場景演示模塊將數(shù)據(jù)導(dǎo)引頭系統(tǒng)仿真結(jié)果通過Unity進(jìn)行動畫展示,可以得到目標(biāo)的飛行狀態(tài),結(jié)果準(zhǔn)確。

        圖4 裝訂信息輸入界面

        (2) 實時性驗證 本文從以下四個方面分別驗證實時性:

        ① 本文使用Latrey Time工具對仿真系統(tǒng)在采用RTX前后的延遲時間進(jìn)行了測量,結(jié)果如圖5所示,可以看到在Windows下系統(tǒng)延遲較大,且非常不穩(wěn)定,最高延遲達(dá)32 ms,而RTX下系統(tǒng)延遲時間均小于10 μs,且相對穩(wěn)定,符合實時系統(tǒng)要求。

        圖5 時延示意圖

        ② 在RTX下使用RtGetClockTime()函數(shù)獲取系統(tǒng)時間來計算中斷響應(yīng)時間,在Windows下使用QueryPerformanceFrequency()函數(shù)和QueryPerformanceConter()函數(shù)獲取系統(tǒng)計時器頻率和數(shù)值,計算得到Windows下的中斷響應(yīng)時間,進(jìn)行10次測試后統(tǒng)計結(jié)果如圖6所示??梢钥吹絎indows下系統(tǒng)中斷響應(yīng)時間較大,且極不穩(wěn)定,RTX下系統(tǒng)中斷響應(yīng)時間穩(wěn)定在12 μs左右,符合實時系統(tǒng)要求。

        圖6 RTX與Windows中斷響應(yīng)時間比較

        ③ 使用CPUUsage工具和Monitor Utility工具獲得CPU使用率和線程切換時間,在單線程和多線程下的CPU利用率如圖7所示??梢钥吹?,在多線程下CPU核的利用率大大提高。一次信號處理時間由2 s減少為0.5 s,提高了系統(tǒng)的實時性。通過查看Monitor的輸出日志我們獲得線程切換時間,最大為為7.5 μs,符合實時系統(tǒng)要求。

        圖7 CPU使用率打印信息

        ④ 使用RtGetClockTIme()函數(shù)獲得傳輸時間,根據(jù)傳輸數(shù)據(jù)大小計算得到反射內(nèi)存網(wǎng)數(shù)據(jù)傳輸率約為880 Mbit/s,滿足實時傳輸要求。

        (3) 與真實場景的相似性驗證 分別對本文實時仿真系統(tǒng)與傳統(tǒng)MATLAB軟件仿真系統(tǒng)的響應(yīng)延遲、信號處理時間與數(shù)據(jù)傳輸率進(jìn)行測試,取二十次測試的平均值,同真實作戰(zhàn)場景下的性能指標(biāo)進(jìn)行對比,得到表2。從表中可以看到,傳統(tǒng)軟件仿真系統(tǒng)響應(yīng)延遲為10.4 ms,信號處理時間為2.7 s,而本文所設(shè)計的實時仿真系統(tǒng)響應(yīng)延遲僅為8.7 μs,信號處理時間為540 ms,更加接近真實作戰(zhàn)場景下系統(tǒng)響應(yīng)延遲和信號處理時間。另一方面,本文設(shè)計的實時仿真系統(tǒng)采用模塊化的設(shè)計,各模塊之間的數(shù)據(jù)傳輸速為880 Mbit/s,相比于傳統(tǒng)MATLAB單機軟件仿真,更加接近于真實作戰(zhàn)場景。

        表2 仿真方案性能對比

        4 結(jié) 語

        本文使用RTX及反射內(nèi)存網(wǎng)技術(shù)設(shè)計了一種導(dǎo)引頭實時系統(tǒng)仿真架構(gòu),準(zhǔn)確性高,實時性好,與傳統(tǒng)的MATLAB軟件仿真方案相比,更接近于真實作戰(zhàn)環(huán)境。測試結(jié)果表明,系統(tǒng)仿真結(jié)果準(zhǔn)確,計算機資源利用率較高,整體時延小于10 μs,中斷響應(yīng)約為12 μs,跨主機傳輸速度約為880 Mbit/s,滿足實時系統(tǒng)要求。

        猜你喜歡
        系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        基于UG的發(fā)射箱自動化虛擬裝配系統(tǒng)開發(fā)
        半沸制皂系統(tǒng)(下)
        FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        一德系統(tǒng) 德行天下
        PLC在多段調(diào)速系統(tǒng)中的應(yīng)用
        男女裸体做爰视频高清| 亚洲AⅤ男人的天堂在线观看| 久久伊人精品只有这里有| 日本美女在线一区二区| 国内最真实的xxxx人伦| 六月丁香婷婷色狠狠久久| 乱人伦人妻中文字幕不卡| 日韩二三区| 日韩精品成人一区二区三区久久久| 麻神在线观看免费观看| 中文字幕人妻熟在线影院| 热の国产AV| 日本国主产一区二区三区在线观看| 九九久久精品国产免费av| 少妇被粗大的猛烈进出免费视频| 无码中文字幕加勒比一本二本 | 欧美巨大xxxx做受l| 男人阁久久| 99久久婷婷国产精品综合| 久久人妻无码一区二区| 国产精品白浆一区二小说| 蜜桃视频色版在线观看| 少妇被黑人嗷嗷大叫视频| 国产成人a人亚洲精品无码| 欧美在线a| 蜜桃成人精品一区二区三区| 国产精品无码一区二区三级| 国产成人亚洲日韩欧美| 午夜精品久视频在线观看| 亚洲1区第2区第3区在线播放| 日本阿v片在线播放免费| 亚洲欧美成人a∨| 亚洲一区二区三区乱码在线| 日韩av一区二区网址| 强行无套内谢大学生初次| 精品18在线观看免费视频| 国产一区二区三区成人av| 天天爽夜夜爽人人爽| 最好看2019高清中文字幕视频| 色中文字幕视频在线观看| 亚洲国产精品亚洲一区二区三区|