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

        ?

        基于數(shù)字孿生的虛擬仿真系統(tǒng)研究與應用

        2023-10-28 10:25:00袁三男沃煜敏
        計算機測量與控制 2023年10期
        關鍵詞:指令總線處理器

        彭 博,袁三男,沃煜敏

        (上海電力大學 電子與信息工程學院,上海 200120)

        0 引言

        隨著軍用領域系統(tǒng)的功能日漸強大,結構愈發(fā)復雜,軟件已逐漸成為武器級系統(tǒng)中關鍵的組成部分,許多重要、復雜的功能都是由軟件來實現(xiàn)的[1]。軍用系統(tǒng)嵌入式軟件能否安全可靠的運行直接關系到機載設備(如衛(wèi)星、飛機、飛行器等)系統(tǒng)裝備演練任務的成敗,使得嵌入式技術在苛刻性環(huán)境中需要滿足更高的條件。而傳統(tǒng)的開發(fā)工具很難有效應對這些苛刻性系統(tǒng)的設計、調(diào)試、集成、測試及維護,導致嵌入式系統(tǒng)在開發(fā)及驗證過程中存在如下瓶頸:

        周期性:嵌入式軟件開發(fā)過程中,需等待相匹配的硬件設備,才可以開展后續(xù)的開發(fā)與調(diào)試工作,導致整個項目的周期拖長;

        困難性:在軟件開發(fā)調(diào)試階段,受影響于硬件設備的時間與成本問題,導致軟件無法在正常節(jié)點內(nèi)完成開發(fā)與調(diào)試;遇到系統(tǒng)及設計異常問題時,很難正常開展測試和驗證工作[2];

        安全性:有些系統(tǒng)(如武器裝備)在沒有通過充分的軟件驗證,就直接進行軟硬件集成會具有一定的危險性,導致設備損壞甚至人員傷亡;

        低效性:在測試系統(tǒng)性能和解決Bug時,硬件設備只能在1∶1的實時環(huán)境中進行,一定程度上增大測試難度,導致項目周期長、可靠性低,甚至面臨失敗的危險;

        基于上述問題所導致的不良現(xiàn)象,在衛(wèi)星等系統(tǒng)的各部分實物生產(chǎn)之前,需要為控制系統(tǒng)的方案設計和技術設計提供一個盡可能真實的虛擬仿真系統(tǒng);這個虛擬的目標系統(tǒng)是以數(shù)字孿生為基礎設計的仿真模型,模擬出與真實硬件相同的功能,而后根據(jù)此模型設計出本文介紹的虛擬仿真系統(tǒng),以及在該系統(tǒng)中實現(xiàn)的控制軟件開發(fā)、調(diào)試、測試、閉環(huán)仿真驗證和故障注入測試等功能,使控制系統(tǒng)設計結果的正確性與合理性能夠在該平臺上得到驗證。

        數(shù)字孿生的概念最早出現(xiàn)于美國國防部提出的Digital Twin技術,用于航空航天飛行器的健康維護與保障[3]。2012年NASA 給出了數(shù)字孿生的概念描述:數(shù)字孿生是指充分利用物理模型、傳感器等數(shù)據(jù),對物理實體的組成、特征、功能和性能進行數(shù)字化定義和建模的過程;它作為虛擬空間中對實體產(chǎn)品的鏡像,反映了相對應物理實體產(chǎn)品的全生命周期過程[4]。 Gartner在2018年和2019年的十大戰(zhàn)略科技發(fā)展趨勢中把數(shù)字孿生定位為重要技術之一。

        2012年,電子科技大學的羅天成以QEMU為模擬器工具,設計實現(xiàn)了一個基于虛擬機技術的飛控計算機虛擬仿真系統(tǒng)[5];該虛擬平臺為該型號機載飛控軟件的測試開發(fā)提供了便利的支持環(huán)境。2018年,電子科技大學的歐陽潤宇基于真實飛控計算機,搭建了能在設計初期對飛控計算機架構設計方案進行驗證分析的虛擬化驗證平臺,為系統(tǒng)的可靠性分析提供了一種嶄新的方法[6]。

        近年來,數(shù)字孿生成為推動創(chuàng)新和成果的強大技術,它的發(fā)展得到我國的政策支持,不僅是5G賦能產(chǎn)業(yè)鏈上的重要一環(huán),與5 G三大場景之一的萬物互聯(lián)需求強耦合,還可以應用到電網(wǎng)中,使得電網(wǎng)智能化轉(zhuǎn)型的速度得到迅速提升。目前,數(shù)字孿生技術的重要程度已經(jīng)和云計算、AI、5 G等一樣,上升到國家高度。

        本文基于數(shù)字孿生技術,建立對星載設備的實物進行結構和功能模擬的數(shù)字孿生模型,設計出可以嵌入CPU模擬器、片上外設、通信板卡、電源等設備的全數(shù)字虛擬仿真系統(tǒng)。其中,基于數(shù)字孿生技術對主設備上掛載的從設備進行功能性模擬的動力學模型如圖1所示;該模型仿真有虛擬仿真系統(tǒng)中加載的各種單機設備寄存器以及數(shù)據(jù)的輸入輸出接口等,是對真實單機設備的數(shù)字仿真,其中輸出端out是處理器模塊輸出到數(shù)據(jù)庫的數(shù)據(jù),輸入端in是處理器模塊接收來自數(shù)據(jù)庫的數(shù)據(jù);各個仿真的單機數(shù)據(jù)再經(jīng)過虛擬仿真系統(tǒng)解析后,將轉(zhuǎn)換成16位整型數(shù)據(jù),并顯示到系統(tǒng)界面之中;對動力學模型的輸入輸出端解析出的結構和數(shù)據(jù)如圖2所示。

        圖1 基于數(shù)字孿生驅(qū)動的動力學模型

        圖2 虛擬仿真系統(tǒng)解析出的動力學模型IO接口圖

        該系統(tǒng)不僅完成了對各種型號中涉及的CPU、內(nèi)存、看門狗、中斷控制器等硬件設備的功能模擬,還添加了超實時仿真系統(tǒng),能夠?qū)χ骺赜嬎銠C軟件進行快速全面的系統(tǒng)測試,實現(xiàn)全數(shù)字高速閉環(huán)仿真運行,適用于軍事武器裝備以及高校實驗項目等各個領域的系統(tǒng)級仿真。

        1 虛擬仿真系統(tǒng)設計方法

        本文所設計的虛擬仿真系統(tǒng)運用數(shù)字孿生驅(qū)動真實目標機的方法,實現(xiàn)與真實目標機相同的功能;該系統(tǒng)包含虛擬目標機和超實時仿真軟件等部分;其中,虛擬目標機是用于對不同處理器、外圍設備和動力學模型中單機設備的數(shù)字仿真,實現(xiàn)故障模擬與注入功能;超實時仿真軟件用于協(xié)同控制以及超實時環(huán)境下的系統(tǒng)仿真[7]。其內(nèi)部子系統(tǒng)協(xié)同工作的結構如圖3所示。

        圖3 虛擬仿真系統(tǒng)模塊化結構圖

        本文設計的虛擬仿真系統(tǒng)較傳統(tǒng)仿真系統(tǒng)而言,獨創(chuàng)性地添加了可以達到實時仿真速率20倍以上的超實時運行模式,并可以進行在線調(diào)試、在線故障注入、以及封裝多種通信協(xié)議的通用性數(shù)字軟總線等特色功能。下面將對本文所設計的仿真系統(tǒng)核心部分做詳細介紹。

        1.1 虛擬目標機軟件設計

        虛擬目標機是在保持高速交叉仿真完整嵌入式系統(tǒng)的基礎上設計的虛擬開發(fā)與驗證平臺,獨創(chuàng)性地將圖形化建模的思想引入虛擬系統(tǒng)的搭建過程中,可以用作系統(tǒng)級的開發(fā)、調(diào)試、測試和驗證。

        虛擬目標機的界面通過MFC多文檔模式框架進行編寫,主要由CPU模擬器、虛擬芯片、虛擬內(nèi)存等核心部件構成;其中,CPU模擬器模擬目標CPU的內(nèi)核及其行為,如模擬PowerPC處理器的指令集仿真,將目標機的指令轉(zhuǎn)換到宿主機上執(zhí)行,從而實現(xiàn)直接通過宿主機執(zhí)行目標機上的代碼[8];虛擬芯片是對硬件板卡中設備進行數(shù)字化處理,封裝成可以直接調(diào)用的函數(shù)庫,包括串口、并口、中斷控制器、各種通信總線控制器等;虛擬內(nèi)存是對用于存儲的RAM區(qū)、Flash以及系統(tǒng)寄存器的數(shù)字仿真。

        虛擬目標機結合被控仿真對象以及其他仿真子系統(tǒng)一起構成虛擬目標系統(tǒng);各個功能組件通過已經(jīng)封裝的內(nèi)部總線進行通信,確定好主框架后,通過C++為編程語言對虛擬目標機的各個組件進行功能實現(xiàn)。例如操作、編輯模式的切換,可執(zhí)行固件程序的加載,對目標碼文件的解釋執(zhí)行,解釋函數(shù)、全局變量的地址分配情況等;解析目標碼與源碼的對應關系,并在此基礎上對調(diào)試功能的開發(fā)、運行以及加載模型代碼等功能。

        基本功能實現(xiàn)后,再編寫通用設備模型。設備模型是虛擬目標機的組成和搭建的基本單元,通過調(diào)用VC++運行庫集合包(Runtime Library/Pack)以及代碼編寫來實現(xiàn),是對CPU外圍電路、單機寄存器、通信電路板等設備進行的模塊化處理;然后生成虛擬目標機可兼容的DLL文件;最后通過圖形化、積木式拖拽功能的開發(fā),實現(xiàn)對內(nèi)部各個模型進行快速關聯(lián)與連線,使其相互間通過虛擬總線進行通信,從而完成對物理設備的純數(shù)字仿真。虛擬目標機對物理設備的數(shù)字化處理以及進行模塊化編程如圖4所示。

        圖4 虛擬目標機環(huán)境示意圖

        1.2 通用處理器模塊設計

        通用處理器模塊主要提供計算資源、程序/數(shù)據(jù)存儲器、硬件看門狗功能、1553B總線、內(nèi)總線管理等功能。處理器模塊仿真的硬件行為包括CPU芯片、存儲器芯片、內(nèi)總線隔離驅(qū)動線路、FPGA芯片、1553B總線接口芯片和其他邏輯電路等。在虛擬目標機中數(shù)字化仿真通用處理器模塊時,需要設計匹配的指令集,通過指令集去控制處理器實現(xiàn)相應功能,指令仿真方法采用模擬處理器的執(zhí)行,從仿真內(nèi)存中取指令。

        以PowerPC處理器為例,指令集以字段的形式分析內(nèi)部指令,通過主機處理器模擬執(zhí)行過程中的行為,然后將運行結果回寫到相應的虛擬仿真寄存器中;最后運用緩存技術,得到較高的執(zhí)行性能[9];整個計算流程采用C語言完成,并由VC++編譯器編譯。

        PowerPC處理器的仿真設計包含整數(shù)單元、浮點單元、指令集、動態(tài)編譯和解釋執(zhí)行五部分;其中,指令集是處理器單元中用來計算和控制計算機系統(tǒng)的一套指令的集合;整點運算性能和浮點運算性能是用來反映CPU處理數(shù)據(jù)的能力;解釋執(zhí)行即傳統(tǒng)系統(tǒng)中使用的實時運行模式,其執(zhí)行速度較慢[10];動態(tài)編譯采用LLVM提供的接口進行指令的操作處理,即超實時仿真系統(tǒng)中設計的超實時運行模式。

        整數(shù)單元是專為可靠性要求高的空間和軍事應用設計,且支持錯誤檢測;其采用了精簡指令集RISC結構,可以使得指令執(zhí)行速度更為精準。為保證指令執(zhí)行速度,整數(shù)單元設計采用四級流水線技術,允許并行執(zhí)行多條指令,整體過程分為4個部分:取指、解碼、執(zhí)行和寫回,所有階段實行并行工作方式,即一次性可以處理多達四條不同的指令。浮點單元也使用四階段的指令流水線工作,可以同時滿足單精度和雙精度浮點指令。

        在整個處理器模塊開發(fā)過程中,時常存在有錯誤指令的情況;針對此現(xiàn)象,不僅可以通過定位具體函數(shù)模塊找出對應的出錯指令解決問題,還可以通過動態(tài)編譯技術對整個處理器架構和指令集進行優(yōu)化。

        1.3 故障模擬與注入功能

        故障注入是一種可靠性驗證技術,通過受控實驗向系統(tǒng)中刻意引入故障,并觀察系統(tǒng)中存在故障時的行為[11]。

        故障注入技術分為多種,此次虛擬仿真系統(tǒng)采用的是基于軟件的故障注入以及對嵌入式系統(tǒng)與處理器相關的故障注入;基于軟件的故障注入,是在軟件級生成錯誤,從而模擬硬件級的故障行為;其注入方式有很多種,如修改內(nèi)存或寄存器數(shù)據(jù),通過應用軟件生成故障或者通過底層軟件如操作系統(tǒng)運行故障[12];具體實現(xiàn)主要是通過操作各下位單機的被測仿真模型接口實現(xiàn)對接口功能性及各分系統(tǒng)間的數(shù)據(jù)鏈路的故障模擬,如寄存器故障、存儲器故障、CPU總線故障等。具體實現(xiàn)流程如圖5所示。

        圖5 故障注入邏輯流程圖

        故障模擬是在日常開發(fā)時,為了保證硬軟件的準確性以及代碼的健壯性,需要模擬各種故障測試[13];通過修改虛擬目標機的內(nèi)存、寄存器和圖形化接口仿真軟件中模擬的數(shù)據(jù)內(nèi)容完成對軟件的故障注入測試,以確保在這些故障出現(xiàn)時軟件仍能正確工作。在系統(tǒng)全速運行時虛擬仿真系統(tǒng)實時監(jiān)控外圍設備各單機發(fā)生故障的狀態(tài)顯示如圖6所示,它不僅可以監(jiān)控仿真單機發(fā)生故障的狀態(tài),還可以監(jiān)控發(fā)生故障后接收的異常數(shù)據(jù),從而可以作為系統(tǒng)調(diào)試與維護時的有效輔助,使得虛擬仿真系統(tǒng)中主控計算機軟件可以進行快速全面的系統(tǒng)測試,突出了其在各個領域中的實用性。

        圖6 虛擬仿真系統(tǒng)監(jiān)控的故障狀態(tài)

        本文提供對處理器全部引腳的模擬及故障注入,通過硬件方式實現(xiàn)對被測系統(tǒng)進行最低程度的干涉,以加速測評系統(tǒng)容錯機制;通過觀測和分析系統(tǒng)對所注入故障的反應,從而提供可靠的數(shù)據(jù),保證系統(tǒng)容錯機制。

        1.4 超實時仿真系統(tǒng)設計

        超實時仿真系統(tǒng)軟件的功能基于C++語言開發(fā),界面通過MFC添加控件實現(xiàn),各個控件之間以及虛擬目標機和其他開發(fā)工具之間的通信通過封裝好的虛擬總線完成。超實時仿真系統(tǒng)內(nèi)部邏輯采用固定增量推進法推進仿真時間,由系統(tǒng)定時器控制仿真時間推進;仿真時間的推進可以加快系統(tǒng)運行速度,從而達到超實時仿真的目的[14],

        經(jīng)過實測,超實時仿真系統(tǒng)的仿真速率可以達到20倍以上的超實時仿真測試要求。例如,以PowerPC處理器為例,設處理器運行性能為MMIPS(百萬條指令/秒),PowerPC處理器主頻是NMHz,則處于該處理器中的仿真倍數(shù)N的計算公式為P=M/N,可以使整個仿真目標系統(tǒng)在執(zhí)行過程中,達到20倍以上的超實時仿真測試要求。在虛擬仿真系統(tǒng)中,可以對相關處理器進行性能監(jiān)控,不僅可以監(jiān)視出優(yōu)化后的性能指標,還可以實時顯示出特定性能下的超實時倍數(shù);PowerPC處理器實際運行性能監(jiān)控如圖7所示,在主頻設置為10 MHz的情況下,其性能指數(shù)可達到400 MIPS,根據(jù)超實時仿真倍數(shù)計算方法可知,此時超實時速率可達到基于硬件時鐘的40倍。

        圖7 PowerPC處理器性能監(jiān)控

        在具體工作任務中,多個仿真實體之間需要進行協(xié)同仿真,即對多個仿真對象之間進行時序同步。在其過程中,為了加快仿真速度,多個實體之間采用并行運行的方式實現(xiàn)相互間通過封裝好的數(shù)字軟總線進行指令收發(fā)與數(shù)據(jù)傳輸。與此同時,為了驗證開發(fā)工具輸出數(shù)據(jù)及超實時運行速率的準確性,超實時仿真工具還可以通過JTAG連接硬件設備嵌入式目標機和仿真測試設備,從而與硬件板卡直接通信,得出真實的實驗數(shù)據(jù)。不僅如此虛擬仿真系統(tǒng)還可以直接通過虛擬總線連接到服務器與硬件設備,更好地增加了虛擬工具與物理設備的聯(lián)動性。其整體結構如圖8所示。

        圖8 超實時仿真子系統(tǒng)示意圖

        1.5 分布式數(shù)字軟總線標準化

        虛擬仿真系統(tǒng)中設計的通信中間件協(xié)議,是基于分布式數(shù)據(jù)通訊總線協(xié)議的實時分布式網(wǎng)絡中間件而設計的,以實時數(shù)據(jù)分布式服務作為聯(lián)合試驗的基礎通信設施,進行對象管理和時間管理等功能;能夠?qū)崿F(xiàn)大型異構仿真系統(tǒng)的靈活集成、配置、部署及運行;底層采用發(fā)布/訂閱方式通信總線,提供實時、可靠、穩(wěn)定、高效的數(shù)據(jù)通信[15]。

        由于不同項目所使用的處理器以及硬件設備不同,從而需要依據(jù)特定需求設計出虛擬仿真系統(tǒng)與外部設備模型之間的通信協(xié)議,即模擬SPI、RS422、1553b、AD等通信設備的硬件板卡,實現(xiàn)數(shù)字軟總線標準化。比如仿真AD/DA的通信機制時,首先實現(xiàn)AD和DA寄存器以及相關控制寄存器的邏輯功能;然后進行AD轉(zhuǎn)換,把接收到動力學模型中的模擬量數(shù)據(jù)轉(zhuǎn)換成數(shù)字量并存儲到對應的AD寄存器中;最后完成對DA轉(zhuǎn)換的操作,即把軟件要發(fā)送的數(shù)字量轉(zhuǎn)換成模擬量,通過數(shù)字軟總線定義的接口發(fā)送給動力學模型,最終完成對AD/DA通信過程的數(shù)字仿真;在具體實驗中對AD采集寄存器讀取的數(shù)據(jù)以及計算出的采樣結果如表1所示,其中計算公式為D=A/(10/4096)+ 0×800,D是輸出結果,即轉(zhuǎn)化后的數(shù)字量,A是采樣值,即模擬量。

        表1 具體寄存器模擬信號采集對照表

        在進行分布式虛擬總線標準化時,模擬的各個通信設備原理類似,下面以1553b通信板卡進行數(shù)字化處理為例。1553b系統(tǒng)采用模塊化設計,主要仿真模擬1553b通信板卡芯片功能,包括芯片上的寄存器,內(nèi)存空間,中斷等[16]。系統(tǒng)由一個BC終端、2個RT終端和一個BM終端構成,提供所需要的總線和終端模塊。首先模擬出芯片在BC模式和RT模式的寄存器和內(nèi)存空間,而后根據(jù)芯片手冊實現(xiàn)通信板卡芯片中所有寄存器的功能,最后在通過相關通信協(xié)議實現(xiàn)對所使用寄存器和內(nèi)存RAM區(qū)域的讀寫操作、各個節(jié)點之間的數(shù)據(jù)收發(fā),以及消息的解析和邏輯流程的模擬仿真,中斷模擬仿真等,對應的總體結構如圖9所示。當用戶使用本文提出的虛擬仿真系統(tǒng)時,必須遵循對應的通信協(xié)議,從而大大提升了用戶的使用效率。

        圖9 1553B物理總線拓撲關系邏輯圖

        1.6 內(nèi)置調(diào)試器及在線調(diào)試技術

        內(nèi)置調(diào)試器為嵌入式軟件在虛擬開發(fā)過程提供調(diào)試環(huán)境,支持多種調(diào)試手段對代碼問題進行快速定位,虛擬目標機調(diào)試器的設計過程如下:

        1)對ELF、COFF、HEX等格式的固件可執(zhí)行文件的調(diào)試信息(一般為Stabs,DWARF2/3的符號)進行解析,提取出變量分配地址、函數(shù)分配代碼段地址,函數(shù)對應的源碼的路徑及目標碼對應源碼的行數(shù)信息。

        2)解釋二進制目標碼。按照CPU指令的存儲格式解析二進制目標碼到匯編偽代碼。

        3)在調(diào)試界面添加畫布,把匯編指令和源碼打印到畫布中。用戶可根據(jù)自己需要和目標系統(tǒng)執(zhí)行情況查看各種調(diào)試信息。

        基于調(diào)試器的基本功能,實現(xiàn)對目標板控制功能的仿真,進一步完成在源碼和目標碼上設置斷點,通過在調(diào)試環(huán)境中添加時間判斷,根據(jù)不同的事件調(diào)用不同的接口函數(shù)的方式,實現(xiàn)各種控制功能,如:斷點、單步執(zhí)行、進函數(shù)、出函數(shù)、執(zhí)行過函數(shù)、復位、停止等基本調(diào)試控制,并支持在任何時刻暫停程序[17];相關功能以及在線調(diào)試過程中操作的寄存器對應的地址和數(shù)據(jù)如圖10所示。

        2 基于虛擬仿真系統(tǒng)的應用

        在搭建好虛擬仿真系統(tǒng)的開發(fā)環(huán)境后,編寫用于模擬硬件功能的外設模型,通過圖形化編程的方法對整個系統(tǒng)進行數(shù)字化仿真;而后由超實時仿真工具發(fā)出指令,協(xié)同控制虛擬目標機向動力學模型收發(fā)數(shù)據(jù),對仿真結果進行數(shù)據(jù)監(jiān)視、錯誤排查以及超實時加速仿真等功能。

        2.1 虛擬目標機的場景應用

        作為虛擬仿真系統(tǒng)的重要組成部分,以虛擬目標機為載體,首先編寫處理器與片上外設模型,模擬動力學模型中涉及的各種單機設備寄存器通道、通用處理器模塊、存儲器、AD/DA采集、二次電源燈等功能。各個設備模型之間通過節(jié)點連接建立聯(lián)系,其中虛擬內(nèi)核用于加載主處理器的DLL文件,并向外圍設備發(fā)送指令,而后外圍設備再通過虛擬總線控制ROM、RAM等內(nèi)存空間進行讀寫操作,以及串口輸出、模數(shù)轉(zhuǎn)換、LED等控件的功能實現(xiàn);還可以通過中斷觸發(fā)控制動力學模型包含的各個單機設備所處的狀態(tài),最終把實驗結果通過串口打印輸出,也可以通過堆棧區(qū)監(jiān)控數(shù)據(jù)。

        2.2 虛擬仿真系統(tǒng)的應用場景分析

        虛擬仿真系統(tǒng)的超實時仿真子系統(tǒng)采用了嵌入式系統(tǒng)調(diào)試技術、HIL(硬件在環(huán))半實物仿真技術、基于模型開發(fā)技術、系統(tǒng)測試與驗證技術及分布式數(shù)據(jù)總線技術,可廣泛應用于高安全性、高可靠性系統(tǒng)研制的各個階段及各種開發(fā)模式之中;不僅支持傳統(tǒng)的模式開發(fā),還支持迭代開發(fā)。該系統(tǒng)適用于各研制階段的開發(fā)、仿真與驗證;下面將對兩種應用場景展開介紹。

        在應用場景一中,將虛擬目標機與真實物理外設進行連接,外接如1553B、AD/DA、CAN等通信板卡實物,采用HIL硬件在環(huán)仿真技術對復雜設備控制器的開發(fā)與測試過程進行全數(shù)字化模擬,然后通過真實通信板卡和仿真工具輸出精準數(shù)據(jù)給HIL硬件在環(huán)仿真與測試系統(tǒng),最后把解析出的測試序列回傳給虛擬目標機之中,由此得出的數(shù)據(jù)和時序可以用于后續(xù)的全數(shù)字化虛擬仿真系統(tǒng)中測試驗證;采用這種模式可實現(xiàn)對虛擬目標系統(tǒng)的硬件在環(huán)仿真與驗證,適合于在系統(tǒng)研制初期對系統(tǒng)設計方案進行試驗與評估,以及系統(tǒng)研制中期的實驗數(shù)據(jù)驗證與調(diào)試。虛擬仿真系統(tǒng)的應用場景一的系統(tǒng)結構如圖11所示。

        圖11 場景一系統(tǒng)結構圖

        在應用場景二中,由虛擬仿真系統(tǒng)中模擬的虛擬外設下發(fā)指令給被控對象模型,待被控對象接收到命令后,再輸出數(shù)據(jù)給圖形化界面測試系統(tǒng),用于數(shù)據(jù)記錄與分析;而后,經(jīng)過實測的序列以激勵的形式回讀給虛擬目標機之中,完成虛擬仿真系統(tǒng)與外部系統(tǒng)的閉環(huán)聯(lián)合調(diào)試;其中所有的功能組件由封裝的數(shù)字軟總線進行交互與調(diào)度,最終實現(xiàn)基于虛擬仿真系統(tǒng)的全數(shù)字化仿真驗證,適合于在系統(tǒng)研制后期對系統(tǒng)得出的實驗結果進行分析與驗證,以及在系統(tǒng)交付后的維護與調(diào)優(yōu)。虛擬仿真系統(tǒng)的應用場景二的系統(tǒng)結構如圖12所示。

        圖12 場景二系統(tǒng)結構圖

        2.3 基于虛擬仿真系統(tǒng)的項目應用

        本文設計的虛擬仿真系統(tǒng)適用于很多領域,以在航天領域的建設為例,被用于面向衛(wèi)星任務地面操控系統(tǒng)的聯(lián)調(diào)聯(lián)試與任務仿真訓練,配合總體地面單位完成衛(wèi)星發(fā)射任務,以及在各分系統(tǒng)之間的集成與測試、陣地部署,與外部系統(tǒng)集成聯(lián)試等演練任務中起到了重要的作用。

        虛擬仿真系統(tǒng)對衛(wèi)星的具體應用方面,首先對星載計算機做數(shù)字化處理,搭建衛(wèi)星的虛擬化運行環(huán)境,然后模擬處理器模塊、內(nèi)存空間、定時器、中斷、IO接口等硬件設備以及掛載的單機設備[18],最后在搭建好星載設備運行所需要的數(shù)字化仿真環(huán)境后,加載超實時仿真系統(tǒng),使用固定增量推進法快速推動星上時間與動力學模型時間,使得軌道動力學的推進步長加快達到快速推進目的;待系統(tǒng)推進到設定的時間后,同時更新星上系統(tǒng)鐘、動力學模型系統(tǒng)鐘、軌道信息、姿態(tài)信息等到最新狀態(tài),從而實現(xiàn)虛擬衛(wèi)星的快速連續(xù)運行,達到幾十倍于物理測試環(huán)境下的快速測試。做到提前測試衛(wèi)星姿態(tài)與軌道的運行狀態(tài),以及對衛(wèi)星的發(fā)射、軌控等策略的運用、分析和預案進行有效性與合理性的保障,降低了任務的風險,有效保證了任務的圓滿成功。

        2.4 虛擬仿真系統(tǒng)在虛實結合中的驗證

        虛實結合技術是一種將實物設備與數(shù)字模型進行聯(lián)合試驗的系統(tǒng)及方法,以驗證數(shù)字模型的正確性;常應用于武器裝備的性能試驗、故障排查等方面[19]。

        本文通過虛實結合技術將虛擬仿真系統(tǒng)中模擬的處理器和周邊設備的性能指標、與動力學模型交互的數(shù)據(jù)、通過總線進行傳輸?shù)臄?shù)據(jù)以及在超實時仿真倍數(shù)下進行的快速仿真結果進行準確性驗證。進行數(shù)據(jù)驗證時,把超實時仿真軟件的仿真速率調(diào)整至一倍速,運行測試程序,再把測試程序運行在物理設備上,通過在某個進程中設置相同的斷點,監(jiān)控兩種開發(fā)環(huán)境中讀取到的寄存器和內(nèi)存的值,比較兩者數(shù)據(jù)可以得出虛擬仿真系統(tǒng)中的仿真結果與真實實物中得出實驗結果一致,監(jiān)控的結果如表2所示。

        表2 虛擬仿真系統(tǒng)與真實目標機實驗結果對比

        為了確保數(shù)據(jù)驗證的可靠性,首先要保證虛擬設備模擬器與真實設備協(xié)同時的實時性;在與真實時間基準相同的環(huán)境下進行單倍數(shù)指令采集,尤其是仿真外部激勵行為,通過虛擬CPU執(zhí)行cycle數(shù)的方式確保虛擬設備模擬器與真實設備協(xié)同時的實時性[20]。比如外部GPS秒脈沖信號仿真、周期定時、外部中斷觸發(fā)等,在結合宿主機本身資源的情況下,諸如bios時鐘進行輔助精確定時等。

        在通過虛擬總線進行數(shù)據(jù)傳輸時,考慮到設計的通用化,將主要體現(xiàn)在對于各種類型通信板卡的統(tǒng)型設計,其核心為虛擬目標機與板卡通過集成API接口調(diào)用的通用化設計,結合可配置計算機預留的多種擴展接口,根據(jù)實際資源情況進行靈活搭配,實現(xiàn)虛實結合完成系統(tǒng)驗證。

        其中模擬1553B總線的標準內(nèi)部處理邏輯時,通過Alta 1553硬件驅(qū)動板提供的二次開發(fā)API接口實現(xiàn)與真實1553B節(jié)點的數(shù)據(jù)傳輸,從而實現(xiàn)虛實結合的半實物仿真環(huán)境的部署,核心是通過調(diào)用1553板卡驅(qū)動程序,完成虛擬環(huán)境和真實設備之間的橋接。

        3 虛擬仿真系統(tǒng)優(yōu)勢與性能優(yōu)化

        虛擬仿真系統(tǒng)的運行環(huán)境在X86主機下,可以同時仿真出搭載不同處理器的設備;其每秒仿真的指令條數(shù)比真實物理環(huán)境下快很多倍,也可以使超實時倍數(shù)設置成等比模式,達到與實際硬件平臺相同節(jié)拍速度。根據(jù)第二章給出的論證,在保證數(shù)據(jù)真實性的前提下,本文所設計虛擬仿真系統(tǒng)的超實時倍數(shù)可以達到實時運行速率的20倍以上。

        3.1 平臺優(yōu)勢分析

        目前,大部分虛擬仿真系統(tǒng)在仿制處理器指令時會選擇解釋執(zhí)行模式,即實時運行;它的執(zhí)行速率較慢,執(zhí)行流程分為取址、譯碼、執(zhí)行三部分[21]。

        而本次虛擬仿真系統(tǒng)選擇的是動態(tài)編譯模式,即超實時運行,它在虛擬仿真系統(tǒng)中引入編譯器技術中的動態(tài)二進制編譯機制;其運行速率較快,可以大幅度提高仿真速度[22]。動態(tài)編譯執(zhí)行流程分為6步:1)根據(jù)PC地址從內(nèi)存中取出一組目標指令;2)將該組目標指令翻譯成中間語言IR指令;3)使用底層虛擬機(LLVM)編譯和優(yōu)化技術生成X86本地代碼;4)把編譯過的指令塊放入Cache中;5)執(zhí)行該指令塊代碼,調(diào)用處理器運行函數(shù);6)從Cache中查找下一個指令塊,若找到則繼續(xù)執(zhí)行,沒有則繼續(xù)從內(nèi)存中取出一組目標指令,重復上述操作[23]。執(zhí)行流程如圖13所示。

        圖13 動態(tài)編譯執(zhí)行流程

        3.2 平臺系統(tǒng)性能優(yōu)化

        該平臺可以對接入分布式總線的仿真實體引入同步命令及應答機制,實現(xiàn)仿真計算機與模型之間的運行時序與真實目標機中運行一致,使誤差小于一個節(jié)拍。在保證誤差范圍內(nèi),不僅可以通過改善硬件設備環(huán)境的性能,提升虛擬仿真系統(tǒng)的超實時倍數(shù),還可以通過增加代碼的魯棒性等方式,具體方法介紹如下:

        1)運用動態(tài)二進制翻譯技術:以目標平臺的二進制碼為輸入,通過調(diào)用LLVM的API接口,把目標平臺二進制碼翻譯成LLVM中間代碼。整個翻譯過程中將中間代碼拆分成Tag和Translate兩個部分并進行兩遍掃描。第一遍是預先分析代碼的性質(zhì),并把每一條目標代碼指令的信息保存到一個Tag表中;第二遍掃描的時候?qū)Υa進行翻譯[23]。這種掃描過程為真正的翻譯提供了必要的信息,簡化了系統(tǒng)的復雜度,從而把一個復雜的系統(tǒng)拆分為兩個相對簡單的系統(tǒng),一定程度上降低了開發(fā)難度和風險;

        2)快速內(nèi)存訪問:內(nèi)存訪問的快慢會影響整個系統(tǒng)的速度;對內(nèi)存的操作可以通過使用LLVM中間語言實現(xiàn),實現(xiàn)方法類似于對數(shù)組的操作;首先通過指針計算語句計算一段地址的數(shù)據(jù)在模擬內(nèi)存中的偏移量,然后計算讀寫地址在模擬內(nèi)存中的偏移量,通過load/store指令讀寫,從而在一定程度上簡化了內(nèi)存操作的過程。該模式下的運行時間比外調(diào)C函數(shù)庫的方式實現(xiàn)內(nèi)存訪問速度提高了數(shù)倍以上;

        3)在多個線程訪問同一個全局資源時使用原子操作,能夠確保所有線程不會在同一時間內(nèi)訪問相同的資源;也就確保了在同一時刻只有唯一的線程對這個資源進行訪問[24]。由于原子操作更加接近底層,因此相比于以互斥對象對共享資源的訪問的保護,具有更高的效率;

        4)在開發(fā)虛擬仿真系統(tǒng)和外設模型時,盡量使用位運算代替乘法和除法運算;對于存取函數(shù)以及其它函數(shù)體比較短或者性能關鍵的函數(shù),盡可能多的使用內(nèi)聯(lián)函數(shù),使目標代碼更加高效;

        通過上述設計方案及改進方法,不僅完善了虛擬仿真系統(tǒng)的實用性、標準性、真實性及高效率地提升仿真結果,還提升了虛擬仿真系統(tǒng)測試時的超實時倍數(shù),極大提高了對數(shù)字裝備的準確結果輸出及快速測試,這也是本文虛擬仿真系統(tǒng)的一個重要功能。

        4 結束語

        本文以虛擬仿真系統(tǒng)的開發(fā)過程為研究對象,基于數(shù)字孿生技術添加了數(shù)字軟總線、在線調(diào)試功能以及故障模擬與注入等功能,為嵌入式軟件開發(fā)提供一個全生命周期的純數(shù)字系統(tǒng)開發(fā)和驗證平臺,適用于PowerPC等通用處理器的系統(tǒng)之中,可以應用于航空航天領域等諸多領域之中。不同于目前常用的全物理環(huán)境和半物理仿真環(huán)境,基于該平臺可以很好地解決現(xiàn)有嵌入式軟件開發(fā)及驗證過程中存在的問題,如各種軍事裝備在投入使用前進行測試、演習與故障排除時,提前判別流程是否合理;出差錯時,如何去補救;如何尋找合適的解決方案以及備用方案等問題。不僅如此,本文還引入了超實時仿真系統(tǒng)的概念,以及提升超時倍數(shù)的方法,用于減少對目標計算機測試環(huán)節(jié)的依賴,增大測試效率,從而大大縮短開發(fā)測試的周期,可以應用到軟件研制的各個階段,實現(xiàn)軟硬件的平行開發(fā),具有硬件系統(tǒng)不具備的諸多優(yōu)勢,是硬件開發(fā)、測試環(huán)節(jié)的有效補充。

        猜你喜歡
        指令總線處理器
        聽我指令:大催眠術
        ARINC661顯控指令快速驗證方法
        測控技術(2018年5期)2018-12-09 09:04:26
        基于PCI Express總線的xHC與FPGA的直接通信
        測控技術(2018年6期)2018-11-25 09:50:12
        機載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設計
        測控技術(2018年8期)2018-11-25 07:42:08
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        Imagination的ClearCallTM VoIP應用現(xiàn)可支持Cavium的OCTEON? Ⅲ多核處理器
        多通道ARINC429總線檢查儀
        ADI推出新一代SigmaDSP處理器
        汽車零部件(2014年1期)2014-09-21 11:41:11
        呼嚕處理器
        小青蛙報(2014年1期)2014-03-21 21:29:39
        坐標系旋轉(zhuǎn)指令數(shù)控編程應用
        機電信息(2014年27期)2014-02-27 15:53:56
        91l视频免费在线观看| 国产成人精品999视频| 国产精品美女久久久久久 | 人妻制服丝袜中文字幕| 亚洲中国精品精华液| 精品久久久无码人妻中文字幕豆芽 | 国产精品成人午夜久久| 亚洲中文字幕高清乱码毛片| 毛片精品一区二区二区三区| 免费看美女被靠到爽的视频| 老子影院午夜精品无码| 中文字幕avdvd| 久久国产精品免费一区二区三区 | 久久精品国产9久久综合| 麻豆精品一区二区综合av| 特黄aaaaaaaaa毛片免费视频| 狠狠色噜噜狠狠狠狠米奇777| 岛国成人在线| 中日韩字幕中文字幕一区| 久久久精品人妻一区二区三区游戏| 国产美女做爰免费视频| 国产极品美女高潮无套在线观看| 男女上床视频免费网站| 男人天堂亚洲一区二区| 亚洲精品国产一二三区| 亚洲国产日韩欧美一区二区三区 | 色吊丝中文字幕| 中文天堂在线www| 麻豆变态另类视频在线观看| 成年女人18毛片毛片免费| 中文字幕一区乱码在线观看| 又大又粗欧美黑人aaaaa片| 黄又色又污又爽又高潮动态图| 波多野结衣一区二区三区视频| 国产中文字幕一区二区视频| 日本视频二区在线观看| 久久国产热这里只有精品| 日韩中文字幕久久久经典网| 激情在线视频一区二区三区| 亚洲a无码综合a国产av中文| 国产成人综合在线视频|