999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Windows平臺(tái)的實(shí)時(shí)信息處理方法

2020-06-29 12:14:06段紅亮劉天博邵春收朱元元
關(guān)鍵詞:指令設(shè)備

段紅亮,2,劉天博,邵春收,王 鵬,朱元元

(1.北京航天長征飛行器研究所,北京 100076;2.西北工業(yè)大學(xué) 機(jī)電學(xué)院,西安 710072)

0 引言

大部分武器系統(tǒng)設(shè)備都是強(qiáng)實(shí)時(shí)性的,設(shè)備之間信息交互都有嚴(yán)格的時(shí)間限制,要求毫秒級(jí)或微秒級(jí),甚至是納秒級(jí),所以主流的彈上設(shè)備均基于DSP、FPGA、單片機(jī)等架構(gòu)或者是組合架構(gòu)實(shí)現(xiàn),也有少部分采用實(shí)時(shí)操作系統(tǒng)平臺(tái)。地面測(cè)試設(shè)備用于武器設(shè)備的開發(fā)測(cè)試、出廠測(cè)試、上彈總裝前后或者年度定檢等等一系列測(cè)試工作,是所有武器必配設(shè)備,地面測(cè)試設(shè)備是武器設(shè)備的“診斷醫(yī)生”,只有經(jīng)過地面測(cè)試設(shè)備認(rèn)證為“健康”的彈上設(shè)備才允許使用,地面測(cè)試設(shè)備的研制開發(fā)甚至要早于彈上設(shè)備。

地面測(cè)試設(shè)備與彈上設(shè)備進(jìn)行通信和指令交互,完成功能測(cè)試等。微軟的Windows操作系統(tǒng)由于具備良好通用性、圖形用戶界面以及眾多的技術(shù)支持基礎(chǔ)而成為武器地面測(cè)試設(shè)備的首選解決方案。目前絕大部分型號(hào)的地面測(cè)試設(shè)備為了兼顧成本和開發(fā)難度等因素,采用Windows+x86架構(gòu)實(shí)現(xiàn)。但基于搶占式多任務(wù)調(diào)度策略就決定了Windows系統(tǒng)的非實(shí)時(shí)性屬性,作為通用高性能操作系統(tǒng)而設(shè)計(jì)的操作系統(tǒng),不能保證中斷響應(yīng)時(shí)間的確定性,也沒有提供讓線程獲得確定執(zhí)行時(shí)間的機(jī)制。在測(cè)試時(shí)地面測(cè)試軟件上偶爾會(huì)出現(xiàn)某條指令超時(shí)的現(xiàn)象,這時(shí)就很難判斷是彈上設(shè)備指令確實(shí)超時(shí),還是由于地面測(cè)試設(shè)備非實(shí)時(shí)性而造成的時(shí)間誤判。

針對(duì)Windows平臺(tái)的非實(shí)時(shí)性問題,工業(yè)控制上一般采用RTX硬實(shí)時(shí)解決方案[1-2],RTX(Real-Time eXtension)是由美國IntervalZero公司開發(fā)的基于Windows平臺(tái)擴(kuò)展的實(shí)時(shí)控制解決方案,但需要單獨(dú)購買RTX軟件擴(kuò)展包,且RTX信息處理軟件獨(dú)立于Windows平臺(tái)需求單獨(dú)開發(fā),而武器地面測(cè)試設(shè)備由于生產(chǎn)量少、需求變化快等特點(diǎn),成本與周期上不適于采用RTX[3]。文獻(xiàn)[4]中提出了一種循環(huán)緩存處理方法來提高Windows系統(tǒng)的實(shí)時(shí)性,這種用空間換時(shí)間的方法在操作系統(tǒng)負(fù)載較小時(shí)一定程度上提高了實(shí)時(shí)性,但由于對(duì)緩存讀寫線程仍為操作系統(tǒng)的一個(gè)普通線程,在操作系統(tǒng)負(fù)載較大時(shí),循環(huán)緩存處理方法的實(shí)時(shí)性不能得到保證。

文獻(xiàn)[5]提出了一種Windows操作系統(tǒng)中的排他性線程獨(dú)占技術(shù),使用該線程可以獨(dú)占一個(gè)CPU邏輯核,而不再受Windows任務(wù)管理器的調(diào)度,物理上將該邏輯核等效DSP使用,保證了信息處理的實(shí)時(shí)性。基于文獻(xiàn)[5-7]的研究成果,面向武器地面測(cè)試設(shè)備,本文提出了一種實(shí)用的實(shí)時(shí)信息處理方法,可以實(shí)時(shí)處理以太網(wǎng)、串口等有線或無線I/O信息,該方法開發(fā)難度低、周期短且不增加設(shè)備成本。

論文結(jié)構(gòu)如下:第1部分簡要分析了Windows非實(shí)時(shí)性機(jī)理,第2部分詳細(xì)闡述高精度軟時(shí)鐘技術(shù)及實(shí)現(xiàn)方法,第3部分地面測(cè)試軟件的實(shí)時(shí)測(cè)試方法,第4部分介紹對(duì)本方法的有效性試驗(yàn)分析,最后一部分對(duì)全文進(jìn)行了總結(jié)。

1 Windows非實(shí)時(shí)性機(jī)理

1.1 x86的指令集

x86的GPP架構(gòu)本身不能實(shí)現(xiàn)納秒級(jí)強(qiáng)實(shí)時(shí)性要求,這是通用CPU的CISC指令集決定的,有兩個(gè)層次原因,首先是CISC指令集長短不一,所以占用CPU時(shí)鐘周期不一;二是Intel在指令集中有很多優(yōu)化算法,同一條匯編指令在同一個(gè)CPU的不同負(fù)載下可能會(huì)被編譯成不同的匯編指令,目前Intel的CPU的時(shí)鐘周期都是亞納秒級(jí),所以x86 CPU難以實(shí)現(xiàn)納秒級(jí)的高精度定時(shí),用于十納秒級(jí)定時(shí)精度是普遍可以接受的。從目前的彈上設(shè)備所要求的毫秒級(jí)或微秒級(jí)實(shí)時(shí)性要求來看,x86 CPU架構(gòu)本身的定時(shí)精度是可以忽略不計(jì)。

1.2 調(diào)度原理

Windows操作系統(tǒng)調(diào)度及響應(yīng)時(shí)延的不確定性。以串口通信為例(并口、以太網(wǎng)口類似),地面測(cè)試設(shè)備與彈上設(shè)備的信息交互流程如圖1所示,忽略彈上設(shè)備處理時(shí)延(或者假定為一個(gè)確定值)。

圖1 信息流示意圖

例如,有條指令要求彈上設(shè)備在100 ms內(nèi)回復(fù)指令,那么處理過程如下:

1)測(cè)試軟件打開某個(gè)串口,或在軟件初始化時(shí)即打開這個(gè)串口,并配置串口參數(shù);

2)當(dāng)有個(gè)指令發(fā)送時(shí),測(cè)試軟件調(diào)用WinAPI串口函數(shù),發(fā)送該指令,同時(shí)啟動(dòng)計(jì)時(shí)器,設(shè)置100 ms的超時(shí)值;

3)數(shù)據(jù)由用戶態(tài)進(jìn)入內(nèi)核態(tài),操作系統(tǒng)調(diào)度器需要將串口發(fā)送API指令調(diào)入到CPU任務(wù)隊(duì)列中,當(dāng)占用CPU當(dāng)前時(shí)間片時(shí),CPU執(zhí)行該指令;

4)CPU將發(fā)送數(shù)據(jù)寫入到串口Tx寄存器中,同時(shí)通知串口有數(shù)據(jù)到達(dá),請(qǐng)發(fā)送;

5)串口通過物理層鏈路發(fā)送給DS設(shè)備,DS設(shè)備響應(yīng)該指令后發(fā)送回令給串口;

6)串口接收回令數(shù)據(jù),放入到Rx寄存器中,同時(shí)通知操作系統(tǒng)有數(shù)據(jù)到達(dá),通知消息本身是放入到操作系統(tǒng)的消息隊(duì)列中;

7)操作系統(tǒng)調(diào)度器在消息隊(duì)列中讀到串口的通知后,需要將串口接收API指令調(diào)入到CPU任務(wù)隊(duì)列中,當(dāng)占用CPU當(dāng)前時(shí)間片時(shí),CPU執(zhí)行該指令;

8)CPU從串口Rx寄存器讀取數(shù)據(jù),交給測(cè)試軟件,由內(nèi)核態(tài)進(jìn)入用戶態(tài);

9)測(cè)試軟件根據(jù)數(shù)據(jù)協(xié)議解析該數(shù)據(jù),確認(rèn)為當(dāng)前指令的有效回令后,停止計(jì)時(shí)器,同時(shí)判斷計(jì)時(shí)器是否超100 ms。至此一個(gè)完整的信息交互結(jié)束。

Windows是基于消息響應(yīng)機(jī)制的多線程的非實(shí)時(shí)性操作系統(tǒng),盡管微軟沒有公開Windows操作系統(tǒng)內(nèi)核,當(dāng)通過一些公開資料和微軟的技術(shù)文檔可知,一個(gè)線程一旦調(diào)入到CPU中,那么最少占有一個(gè)時(shí)間片的時(shí)間長度才會(huì)有可能被調(diào)出,而一個(gè)時(shí)間片長為1/16 s。

在Windows的任務(wù)管理器的進(jìn)程欄可以看到,假如用戶未打開任何一個(gè)應(yīng)用程序,操作系統(tǒng)都會(huì)有約100個(gè)進(jìn)程在運(yùn)行,地面測(cè)試軟件運(yùn)行時(shí),也只是其中之一個(gè)進(jìn)程。這些進(jìn)程都有不同的優(yōu)先級(jí),所以當(dāng)一個(gè)進(jìn)程從進(jìn)入CPU調(diào)度隊(duì)列到占用CPU時(shí)間片,這個(gè)時(shí)間是不可預(yù)知的,這是Windows非實(shí)時(shí)性的最主要根源所在。具體到我們的串口收發(fā)數(shù)據(jù)流程中,第3)步和第7)步是時(shí)延不確定的最主要環(huán)節(jié)。

1.3 試驗(yàn)驗(yàn)證

本文進(jìn)行了一項(xiàng)測(cè)試,當(dāng)?shù)孛鏈y(cè)試設(shè)備只運(yùn)行測(cè)試軟件,其他所有應(yīng)用軟件都停止(包括殺毒軟件),程序循環(huán)發(fā)送指令,等待100 ms,若超時(shí)未收到回令則停止循環(huán)并報(bào)錯(cuò),若正常則繼續(xù)循環(huán)。測(cè)試6個(gè)小時(shí)左右,發(fā)生2次超時(shí)。

作為對(duì)比測(cè)試,在運(yùn)行測(cè)試軟件循環(huán)測(cè)試的同時(shí),打開殺毒軟件,進(jìn)行全盤查殺病毒,測(cè)試1個(gè)小時(shí)左右,發(fā)生了12次超時(shí)。主要原因是殺毒時(shí)頻繁的磁盤IO操作占用CPU資源,殺毒軟件進(jìn)程也需要大量占用CPU時(shí)間片,從而提高了與地面測(cè)試軟件的碰撞沖突概率,造成了大量的超時(shí)現(xiàn)象。

2 高精度軟時(shí)鐘

高精度時(shí)鐘源是實(shí)現(xiàn)信息實(shí)時(shí)處理的前提和基準(zhǔn)。例如通信設(shè)備上多采用外部時(shí)鐘源或衛(wèi)星授時(shí)方法,而在地面測(cè)試設(shè)備上外掛時(shí)鐘源或增加衛(wèi)星授時(shí)模塊的方法會(huì)顯著增加復(fù)雜度和成本,不易實(shí)現(xiàn)。

為了使各種實(shí)時(shí)處理任務(wù)能在Windows平臺(tái)上正確地執(zhí)行,利用操作系統(tǒng)API函數(shù)實(shí)現(xiàn)軟時(shí)鐘是可行的。然而Windows目前提供的延時(shí)函數(shù)最小時(shí)間粒度都是ms級(jí),且理想情況下精度僅能達(dá)到百ms級(jí),所以直接調(diào)用API函數(shù)也不能保證時(shí)間精度。

對(duì)于單核CPU,Intel匯編指令RDTSC可以獲得納秒級(jí)的精度[8]。然而,這項(xiàng)技術(shù)不再適用于多核環(huán)境[9]。為了構(gòu)造高精度的軟件時(shí)鐘,本文采用了文獻(xiàn)[5]所提出的排他性線程獨(dú)占技術(shù),它為輸出實(shí)時(shí)行為的特定任務(wù)分配一個(gè)獨(dú)占的處理器內(nèi)核。一個(gè)線程被創(chuàng)建并專用于在一個(gè)獨(dú)占的CPU邏輯核上執(zhí)行。該線程所做的一切就是調(diào)用RDTSC來計(jì)算當(dāng)前系統(tǒng)時(shí)間。由于線程是不可中斷的,這種方法為內(nèi)核模式的實(shí)時(shí)過程獲得了一個(gè)高精度的時(shí)鐘實(shí)用程序。圖2為構(gòu)造這種時(shí)鐘的偽代碼。

圖2 高精度時(shí)鐘源偽代碼

通過設(shè)置軟件時(shí)鐘,可以在每一個(gè)閾值時(shí)間段中執(zhí)行一次TIME_OUT事件。例如,將閾值定義為1 ms或1 μs,在主頻為2.8 GHz頻率的CPU上,觀察到實(shí)際的超時(shí)時(shí)間周期比閾值大幾納秒,這是合理的,因?yàn)樵贑PU中執(zhí)行單個(gè)匯編指令所需的時(shí)間為納秒級(jí)。所以本方法所生成的軟時(shí)鐘可以達(dá)到十納秒級(jí)精度。

3 測(cè)試軟件實(shí)時(shí)信息處理方法

3.1 測(cè)試軟件實(shí)時(shí)性設(shè)計(jì)

為保證地面測(cè)試軟件實(shí)時(shí)性,信息交互線程也采用排他性線程獨(dú)占技術(shù),獨(dú)占一個(gè)CPU邏輯核,由于Intel的i5系列之后都是至少包含了4個(gè)物理核(單核雙線程技術(shù),等效為8個(gè)邏輯核),所以地面測(cè)試設(shè)備中被獨(dú)占2~3個(gè)邏輯核后并不會(huì)顯著操作系統(tǒng)的其他功能,如圖3所示。

由圖3可以看到,邏輯核3、5、7分別被3個(gè)線程獨(dú)占,在運(yùn)行中被獨(dú)占的邏輯核的CPU使用率始終為100%,不會(huì)被操作系統(tǒng)任務(wù)管理器中斷,從而保證了實(shí)時(shí)性。

信息交互線程在與彈上設(shè)備發(fā)生信息交互時(shí),使用本文第2章所設(shè)計(jì)的高精度時(shí)鐘源來作為時(shí)鐘基準(zhǔn),可以精確計(jì)算出彈上設(shè)備回令是否超時(shí)。

3.2 測(cè)試軟件高速計(jì)算設(shè)計(jì)

地面測(cè)試軟件與彈上設(shè)備接口分為有線和無線接口兩類,其中有線接口多為串口、并口、1553B接口和以太網(wǎng)口等,無線接口多為各類專用無線通信接口,如遙測(cè)系統(tǒng)無線接口等。

一般來說,有線接口的計(jì)算量不大,若地面測(cè)試軟件與彈上設(shè)備接口為無線接口,無線通信協(xié)議的計(jì)算量是非常巨大的,尤其是物理層,包含了信道編碼與解調(diào)、FFT等。一般來說,GPP的運(yùn)算能力是不能勝任基帶數(shù)字信號(hào)處理計(jì)算的,這也是為什么到目前為止商用無線通信都是用專用基帶芯片的原因。為了突破這個(gè)計(jì)算瓶頸,可充分借鑒FPGA的原理,地面測(cè)試軟件可將所有輸入與輸出結(jié)果映射為一個(gè)查找表(LUT),然后將LUT裝載到CPU的二級(jí)緩存中。一方面節(jié)省了計(jì)算的時(shí)間開銷,另一方面減少了查找的時(shí)間[10-14]。在通用CPU中,不同存儲(chǔ)器的典型容量和訪問時(shí)間如圖4所示。

圖4 通用存儲(chǔ)器容量及訪問時(shí)間

3.3 測(cè)試軟件低時(shí)延傳輸設(shè)計(jì)

由圖1可以看到串口在Windows平臺(tái)下的信息流,是包含了多個(gè)環(huán)節(jié)。

在信息流中,每一個(gè)環(huán)節(jié)意味著數(shù)據(jù)的轉(zhuǎn)移和傳遞,為了避免程度中內(nèi)存拷貝所引入的處理時(shí)延,要在地面測(cè)試軟件設(shè)計(jì)開發(fā)時(shí)盡可能多地采用數(shù)據(jù)“零”拷貝,即利用MDL(memory descriptor list)來進(jìn)行內(nèi)存操作,這樣可顯著減小信息傳輸時(shí)延,避免造成地面測(cè)試設(shè)備向彈上設(shè)備回令時(shí)超時(shí)。

4 實(shí)驗(yàn)結(jié)果與分析

用兩臺(tái)地面測(cè)試設(shè)備搭建試驗(yàn)場(chǎng)景。為不失一般性,測(cè)試設(shè)備之間采用串口(RS422)通信,兩臺(tái)測(cè)試設(shè)備均是Windows平臺(tái),安裝了采用了本文所述實(shí)時(shí)信息處理方法的軟件。試驗(yàn)方法如下:

1)測(cè)試設(shè)備1通過串口向測(cè)試設(shè)備2發(fā)送一個(gè)串口數(shù)據(jù)幀1,同時(shí)記錄時(shí)間戳T1;

2)測(cè)試設(shè)備2收到數(shù)據(jù)幀1后,立即向測(cè)試設(shè)備1返回一個(gè)數(shù)據(jù)幀2;

3)測(cè)試設(shè)備1收到數(shù)據(jù)幀2后,記錄時(shí)間戳T2,計(jì)算出時(shí)間差ΔT=T2-T1;

4)重復(fù)上述步驟1)~ 3),記錄1 000次時(shí)間差數(shù)據(jù);

5)打開測(cè)試設(shè)備1上殺毒軟件,執(zhí)行全盤掃描,重復(fù)上述步驟1)~4),記錄1 000次時(shí)間差數(shù)據(jù);

6)關(guān)閉測(cè)試設(shè)備1上殺毒軟件,打開測(cè)試設(shè)備2上殺毒軟件,執(zhí)行全盤掃描,重復(fù)上述步驟1)~4),記錄1 000次時(shí)間差數(shù)據(jù);

7)同時(shí)打開測(cè)試設(shè)備1和測(cè)試設(shè)備2上殺毒軟件,執(zhí)行全盤掃描,重復(fù)上述步驟1)~4),記錄1 000次時(shí)間差數(shù)據(jù)。

4次測(cè)試結(jié)果分別如圖5所示。

圖5 測(cè)試結(jié)果及對(duì)比

由測(cè)試結(jié)果分析,4次測(cè)試均值依次為12.2 μs,12.5 μs,12.1 μs,12.0 μs,相差不大。由圖5可見,4次結(jié)果均方差也分布在2~4之間,數(shù)據(jù)一致性較好,從而證明了本方法的有效性。

5 結(jié)束語

面向Windows平臺(tái)下的地面測(cè)試設(shè)備,本文提出了一種基于排他性線程獨(dú)占技術(shù)和高精度軟時(shí)鐘技術(shù)的實(shí)時(shí)信息處理方法,可以實(shí)時(shí)處理以太網(wǎng)、串口等有線或無線I/O信息,該方法開發(fā)難度低、周期短且不增加設(shè)備成本。首先簡要分析了Windows非實(shí)時(shí)性機(jī)理,進(jìn)而詳細(xì)闡述高精度軟時(shí)鐘技術(shù)和地面測(cè)試軟件的實(shí)時(shí)信息處理方法,最后對(duì)本方法的有效性試驗(yàn)驗(yàn)證分析,測(cè)試數(shù)據(jù)一致性較好。

猜你喜歡
指令設(shè)備
聽我指令:大催眠術(shù)
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
基于VB6.0+Access2010開發(fā)的設(shè)備管理信息系統(tǒng)
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
基于MPU6050簡單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
殺毒軟件中指令虛擬機(jī)的脆弱性分析
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
如何在設(shè)備采購中節(jié)省成本
原來他們都是可穿戴設(shè)備
主站蜘蛛池模板: 91久久精品日日躁夜夜躁欧美| 国产乱子伦视频三区| 亚洲一区波多野结衣二区三区| 色综合久久88色综合天天提莫| 欧美亚洲日韩中文| 国产欧美日韩va| 香蕉网久久| 黄色一及毛片| 国产第八页| 国产精品所毛片视频| 人与鲁专区| 日韩成人免费网站| 亚洲首页在线观看| 久久人人爽人人爽人人片aV东京热 | 欧美日韩中文国产| 男女性色大片免费网站| 毛片在线播放a| 亚洲欧洲天堂色AV| 人妻免费无码不卡视频| 久久国产av麻豆| 国产精品永久免费嫩草研究院| 日韩在线视频网站| 亚洲成a人片| 久久精品这里只有国产中文精品| 国产精鲁鲁网在线视频| 婷婷六月综合网| 91青草视频| 国产精品漂亮美女在线观看| 欧美成人第一页| 国产欧美精品午夜在线播放| 萌白酱国产一区二区| 亚洲无线国产观看| 国产白丝av| 亚洲V日韩V无码一区二区| 欧美专区在线观看| 久久国产精品国产自线拍| 欧美一级高清视频在线播放| 九九久久99精品| 91成人在线观看视频| 日韩亚洲高清一区二区| 精品福利视频网| 国产精品夜夜嗨视频免费视频| 精品国产免费观看一区| 欧美日本在线播放| 91在线无码精品秘九色APP| 亚国产欧美在线人成| 国产视频一区二区在线观看| 毛片一区二区在线看| 日本亚洲欧美在线| 四虎成人在线视频| 久久中文无码精品| 日本欧美午夜| 国产H片无码不卡在线视频| 香蕉久久国产精品免| 亚洲一区二区三区中文字幕5566| 亚洲中文字幕23页在线| 美女一区二区在线观看| 99人妻碰碰碰久久久久禁片| 日韩毛片基地| 91视频精品| 不卡无码h在线观看| 久久综合一个色综合网| 四虎国产精品永久一区| 在线视频亚洲色图| 欧洲欧美人成免费全部视频| 免费国产一级 片内射老| 欧美午夜一区| 欧美成人午夜影院| 久久久噜噜噜久久中文字幕色伊伊| 亚洲热线99精品视频| 久草美女视频| 亚洲午夜福利在线| 久久人人97超碰人人澡爱香蕉| 园内精品自拍视频在线播放| 99久视频| 国产欧美日韩视频怡春院| 日本午夜三级| 亚洲高清无码精品| 国产chinese男男gay视频网| 国产裸舞福利在线视频合集| 国产欧美自拍视频| 日韩亚洲高清一区二区|