一種基于設(shè)備建模語言的嵌入式仿真串口及建模方法
【專利摘要】一種基于設(shè)備建模語言的嵌入式仿真串口及建模方法,功能邏輯將數(shù)據(jù)送至外部或者將外部數(shù)據(jù)送至用戶交互控制邏輯或者數(shù)據(jù)處理控制邏輯,用戶交互控制邏輯獲取外部數(shù)據(jù)送至數(shù)據(jù)處理控制邏輯、時序控制邏輯或者功能邏輯,接收功能邏輯或者數(shù)據(jù)處理控制邏輯發(fā)送的數(shù)據(jù)后顯示,綜合處理邏輯及接口適配邏輯實現(xiàn)各個邏輯數(shù)據(jù)交互,數(shù)據(jù)處理控制邏輯對數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換后送至?xí)r序控制邏輯、用戶交互控制邏輯或者功能邏輯,時序控制邏輯接收數(shù)據(jù)按照控制時序送至功能邏輯。本發(fā)明通過對嵌入式硬件串口進(jìn)行邏輯建模及功能分解,解決了現(xiàn)有技術(shù)中在邏輯層面缺少對嵌入式硬件串口仿真建模方法描述的問題。
【專利說明】
-種基于設(shè)備建模語言的嵌入式仿真串口及建模方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及一種嵌入式仿真技術(shù),特別是一種基于設(shè)備建模語言的嵌入式仿真串 口及建模方法。
【背景技術(shù)】
[0002] 嵌入式軟件是指運(yùn)行在特殊嵌入式硬件設(shè)備(如手機(jī)、各種航天器等)上的軟件。 運(yùn)些軟件的前期開發(fā)與測試通常借助于虛擬硬件平臺(或稱模擬器,二者在本文中意思相 同)。W全數(shù)字仿真測試環(huán)境為例,它是一種使用軟件來模擬真實硬件的虛擬硬件平臺,嵌 入式軟件開發(fā)與測試人員可W使用此平臺來運(yùn)行和測試嵌入式軟件,此種虛擬硬件平臺的 使用,使嵌入式軟件的開發(fā)與測試擺脫了對真實硬件的依賴。
[0003] 嵌入式仿真串口主要應(yīng)用于虛擬硬件平臺中,用于仿真真實的串口功能,具體包 括數(shù)據(jù)收發(fā)、時序控制、邏輯狀態(tài)管理等功能。此仿真串口主要應(yīng)用于嵌入式應(yīng)用程序開發(fā) 及測試驗證中,可W提供與真實硬件功能一致的仿真特性;且此種仿真串口簡單易用,操作 簡單,因此極大降低了應(yīng)用程序開發(fā)及測試人員對上層應(yīng)用程序進(jìn)行調(diào)試的難度。
[0004] 事務(wù)型仿真設(shè)備建模是虛擬硬件平臺中對外設(shè)部件進(jìn)行軟件模擬的一種方式。它 將設(shè)備間的每次交互(如讀寫設(shè)備的接口寄存器等)當(dāng)成是一個原子操作:設(shè)備接收到一個 請求,計算回復(fù)值并將其返回,此種同步方式高效且簡單,并可W滿足硬件模擬在精度、效 率及易用性=個方面的需求。
[0005] 在現(xiàn)有的虛擬硬件平臺仿真串口的實現(xiàn)中,大多集中在功能接口的描述,或者專 用于當(dāng)前平臺的串口仿真模型的實現(xiàn),缺少對串口部件統(tǒng)一建模方法的描述,且實現(xiàn)的仿 真串口通用性低,無法實現(xiàn)在多個不同虛擬硬件平臺間的移植,也沒有提供針對此種移植 的方法。另一方面,現(xiàn)有的虛擬硬件平臺中對仿真串口的實現(xiàn)功能不同,大多需要進(jìn)行二次 開發(fā)之后才能供上層用戶使用,即現(xiàn)有實現(xiàn)形式在功能實現(xiàn)方法無法全面適應(yīng)上層用戶人 員的需求。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明解決的技術(shù)問題是:克服現(xiàn)有技術(shù)的不足,提供了一種通過對嵌入式硬件 串口進(jìn)行邏輯建模及功能分解,解決了現(xiàn)有技術(shù)中在邏輯層面缺少對嵌入式硬件串口仿真 建模方法描述的問題的基于設(shè)備建模語言的嵌入式仿真串口及建模方法。
[0007] 本發(fā)明的技術(shù)解決方案是:一種基于設(shè)備建模語言的嵌入式仿真串口,包括功能 邏輯、用戶交互控制邏輯、綜合處理邏輯及接口適配邏輯、數(shù)據(jù)處理控制邏輯、時序控制邏 輯,其中
[000引功能邏輯,接收傳輸數(shù)據(jù)后送至外部;接收控制數(shù)據(jù)送至外部;接收外部發(fā)送的傳 輸數(shù)據(jù)送至用戶交互控制邏輯或者數(shù)據(jù)處理控制邏輯;
[0009]用戶交互控制邏輯,從外部獲取傳輸數(shù)據(jù)后送至數(shù)據(jù)處理控制邏輯,從外部獲取 控制數(shù)據(jù)后送至?xí)r序控制邏輯或者功能邏輯;接收功能邏輯或者數(shù)據(jù)處理控制邏輯發(fā)送的 傳輸數(shù)據(jù)后進(jìn)行顯示;所述的控制數(shù)據(jù)為嵌入式軟件中控制數(shù)據(jù)傳輸?shù)臄?shù)據(jù)指令;
[0010] 綜合處理邏輯及接口適配邏輯,連接功能邏輯、用戶交互控制邏輯、數(shù)據(jù)處理控制 邏輯、時序控制邏輯,實現(xiàn)功能邏輯、用戶交互控制邏輯、數(shù)據(jù)處理控制邏輯、時序控制邏輯 之間的數(shù)據(jù)交互;將功能邏輯、用戶交互控制邏輯、數(shù)據(jù)處理控制邏輯、時序控制邏輯及其 數(shù)據(jù)交互關(guān)系嵌入到多種嵌入式硬件仿真平臺或者生成單獨(dú)使用的仿真功能模塊;
[0011] 數(shù)據(jù)處理控制邏輯,對用戶交互控制邏輯發(fā)送的傳輸數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換后送至?xí)r 序控制邏輯或者功能邏輯;接收功能邏輯發(fā)送的傳輸數(shù)據(jù)后進(jìn)行格式轉(zhuǎn)換后送至用戶交互 控制邏輯;
[0012] 時序控制邏輯,接收控制數(shù)據(jù)生成控制時序,接收傳輸數(shù)據(jù)按照控制時序送至功 能邏輯;所述的功能邏輯、用戶交互控制邏輯、綜合處理邏輯及接口適配邏輯、數(shù)據(jù)處理控 制邏輯、時序控制邏輯中的數(shù)據(jù)、指令、時序均采用設(shè)備建模語言描述,其中,設(shè)備建模語言 為基于事務(wù)型仿真的、能夠被多種嵌入式硬件仿真平臺直接編譯或解釋的語言。
[0013] -種基于設(shè)備建模語言的嵌入式仿真串口建模方法,包括如下步驟:
[0014] (1)將嵌入式硬件串口建模抽象為嵌入式仿真串口,然后對嵌入式仿真串口進(jìn)行 分解得到功能邏輯、用戶交互控制邏輯、綜合處理邏輯及接口適配邏輯、數(shù)據(jù)處理控制邏 輯、時序控制邏輯;所述的功能邏輯為嵌入式硬件串口的控制功能單元、狀態(tài)功能單元、數(shù) 據(jù)功能單元;所述的時序控制邏輯通過接收外部的控制時序?qū)δ苓壿嬤M(jìn)行時序控制;所 述的用戶交互控制邏輯通過外部用戶指令控制嵌入式硬件串口;所述的數(shù)據(jù)處理控制邏輯 控制嵌入式硬件串口中的數(shù)據(jù)輸入、數(shù)據(jù)輸出進(jìn)行格式轉(zhuǎn)換;所述的綜合處理邏輯及接口 適配邏輯實現(xiàn)嵌入式硬件串口中功能邏輯、用戶交互控制邏輯、數(shù)據(jù)處理控制邏輯、時序控 制邏輯的信息交互;所述的功能邏輯、用戶交互控制邏輯、綜合處理邏輯及接口適配邏輯、 數(shù)據(jù)處理控制邏輯、時序控制邏輯中的數(shù)據(jù)、指令、時序均采用設(shè)備建模語言描述,其中,設(shè) 備建模語言為基于事務(wù)型仿真的、能夠被多種嵌入式硬件仿真平臺直接編譯或解釋的語 言;
[0015] (2)將功能邏輯劃分為數(shù)據(jù)單元、控制單元、狀態(tài)單元,其中,數(shù)據(jù)單元對用戶交互 控制邏輯、數(shù)據(jù)處理控制邏輯或者時序控制邏輯傳輸?shù)臄?shù)據(jù)進(jìn)行緩存或者發(fā)送至外部,接 收外部發(fā)送的數(shù)據(jù)送至用戶交互控制邏輯或者數(shù)據(jù)處理控制邏輯;控制單元控制數(shù)據(jù)單元 接收、發(fā)送或者緩存數(shù)據(jù);狀態(tài)單元表示嵌入式硬件串口內(nèi)部狀態(tài);所述的嵌入式硬件串口 內(nèi)部狀態(tài)包括嵌入式硬件串口中數(shù)據(jù)單元存儲、發(fā)送或者接收數(shù)據(jù);所述的數(shù)據(jù)為控制數(shù) 據(jù)或者傳輸數(shù)據(jù);
[0016] (3)將時序控制邏輯劃分為延遲時序控制單元、循環(huán)時序控制單元,其中,延遲時 序控制單元接收控制數(shù)據(jù)生成控制時序,接收傳輸數(shù)據(jù)按照控制時序延遲送至功能邏輯; 循環(huán)時序控制單元接收控制數(shù)據(jù)生成控制時序,接收傳輸數(shù)據(jù)按照控制時序循環(huán)送至功能 邏輯;
[0017] (4)將數(shù)據(jù)處理控制邏輯劃分為輸入數(shù)據(jù)處理單元、輸出數(shù)據(jù)處理單元,其中,輸 入數(shù)據(jù)處理單元接收傳輸數(shù)據(jù)后進(jìn)行格式轉(zhuǎn)換后送至用戶交互控制邏輯,輸出數(shù)據(jù)處理單 元對傳輸數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換后送至?xí)r序控制邏輯或者功能邏輯;
[0018] (5)使用戶交互控制邏輯從外部獲取傳輸數(shù)據(jù)后送至數(shù)據(jù)處理控制邏輯、從外部 獲取控制數(shù)據(jù)后送至?xí)r序控制邏輯或者功能邏輯;使用戶交互控制邏輯接收功能邏輯或者 數(shù)據(jù)處理控制邏輯發(fā)送的傳輸數(shù)據(jù)后進(jìn)行顯示;所述的控制數(shù)據(jù)為嵌入式軟件中控制數(shù)據(jù) 傳輸?shù)臄?shù)據(jù)指令;
[0019] (6)將綜合處理邏輯及接口適配邏輯劃分為接口適配單元、目標(biāo)生成單元,其中, 適配接口生成與功能邏輯、用戶交互控制邏輯、數(shù)據(jù)處理控制邏輯、時序控制邏輯進(jìn)行通信 的接口;目標(biāo)生成單元將功能邏輯、用戶交互控制邏輯、數(shù)據(jù)處理控制邏輯、時序控制邏輯 生成能夠嵌入到多種嵌入式硬件仿真平臺的特定功能模塊或者單獨(dú)使用的仿真功能模塊。
[0020] 所述的設(shè)備建模語言基于C++語言。
[0021] 所述的設(shè)備建模語言的運(yùn)算符包括算術(shù)運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符。
[0022] 所述的設(shè)備建模語言包括代表定義、數(shù)據(jù)類型、操作處理過程或者觸發(fā)條件的關(guān) 鍵字。
[0023] 本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點在于:
[0024] (1)本發(fā)明通過對嵌入式硬件串口進(jìn)行邏輯建模及功能分解,解決了現(xiàn)有技術(shù)中 在邏輯層面缺少對嵌入式硬件串口仿真建模方法描述的問題,且本發(fā)明中提出的方法直接 應(yīng)用于現(xiàn)有的虛擬硬件平臺中,具有通用性的效果;
[0025] (2)本發(fā)明中通過使用設(shè)備建模語言,實現(xiàn)了對嵌入式硬件仿真串口的統(tǒng)一搭建, 解決了現(xiàn)有的技術(shù)中無法針對仿真串口實現(xiàn)多平臺統(tǒng)一建模的問題,具有統(tǒng)一且可移植的 效果;
[0026] (3)本發(fā)明中通過針對串口進(jìn)行時序控制邏輯、用戶交互邏輯、數(shù)據(jù)處理邏輯及接 口適配邏輯四個模塊的功能劃分過程,擴(kuò)展了仿真串口的功能,解決了現(xiàn)有的仿真串口模 型中擴(kuò)展串口功能不足的問題,具有增強(qiáng)仿真串口功能的效果。
【附圖說明】
[0027] 圖1為本發(fā)明一種基于設(shè)備建模語言的嵌入式仿真串口建模方法流程圖;
[0028] 圖2為本發(fā)明一種基于設(shè)備建模語言的嵌入式仿真串口及建模方法中數(shù)據(jù)處理邏 輯圖;
[0029] 圖3為本發(fā)明一種基于設(shè)備建模語言的嵌入式仿真串口及建模方法中設(shè)備建模語 言編譯平臺框架;
[0030] 圖4為本發(fā)明一種基于設(shè)備建模語言的嵌入式仿真串口結(jié)構(gòu)原理圖,其中,實線箭 頭為發(fā)送數(shù)據(jù)流程,虛線箭頭為接收數(shù)據(jù)流程。
【具體實施方式】
[0031] 本發(fā)明針對現(xiàn)有技術(shù)的不足,基于嵌入式串口硬件仿真的需求,提出一種基于設(shè) 備建模語言的嵌入式仿真串口及建模方法,采用一種新型面向事務(wù)型仿真的設(shè)備建模語 言,對嵌入式硬件系統(tǒng)仿真中出現(xiàn)的各種不同類型的串口硬件進(jìn)行功能仿真,其主要解決 的問題可歸納為如下兩個方面:
[0032] (1)嵌入式串口硬件功能仿真
[0033] 對嵌入式串口硬件進(jìn)行功能仿真,是指采用軟件的方式來模擬真實的嵌入式串口 硬件。此仿真的串口主要應(yīng)用于一些完整的嵌入式硬件仿真平臺中,用作一些插件,提供配 合使用的串口功能仿真;或者單獨(dú)使用來實現(xiàn)串口功能仿真。在一個完整的嵌入式硬件仿 真平臺中使用此仿真串口,需要平臺提供串口硬件仿真接口。然而,由于各個嵌入式硬件仿 真平臺實現(xiàn)機(jī)制不同,運(yùn)行原理也存在差異,因此在串口功能仿真模塊開發(fā)中存在很大困 難。
[0034] 針對此問題,本發(fā)明提出基于設(shè)備建模語言來實現(xiàn)串口仿真建模,設(shè)備建模語言 基于事務(wù)型仿真的原理,采用關(guān)鍵字技術(shù),提供了對硬件串口功能仿真的統(tǒng)一描述。針對此 語言可W設(shè)計開發(fā)面向多外嵌入式硬件仿真平臺的編譯或解釋器,從而實現(xiàn)了將硬件串口 仿真模塊開發(fā)人員與平臺自身隔離,降低了模型開發(fā)的實現(xiàn)難度。
[0035] (2)嵌入式仿真系統(tǒng)實時控制
[0036] 在對串口硬件進(jìn)行功能仿真過程中,除了硬件自身功能之外,通常還需要對對硬 件的時序、數(shù)據(jù)需求、人機(jī)交互接口等進(jìn)行建模,此部分的建模通常也是嵌入式硬件仿真平 臺自身所不具備的,同樣需要設(shè)備開發(fā)人員后期開發(fā)。
[0037] 針對此問題,本發(fā)明針對串口仿真模塊設(shè)計了多種語法要素,通過運(yùn)些語言要素 可W實現(xiàn)對硬件仿真串口的時序、人機(jī)交互接口等實現(xiàn)完整的控制。在數(shù)據(jù)需求方面,本發(fā) 明采用關(guān)鍵字技術(shù),實現(xiàn)了對串口硬件中所需要的數(shù)據(jù)結(jié)構(gòu)的統(tǒng)一建模,從而減輕了后期 仿真模塊開發(fā)人員的工作量。
[0038] 本發(fā)明中使用的設(shè)備建模語言是基于形式化語言的形式,其語法規(guī)范與使用方式 與通用編程高級語言C++類似,且提供了類似C++語言的運(yùn)算符,具體如表1所示。在關(guān)鍵字 方面,除了通用編程高級語言C++中的關(guān)鍵字之外,設(shè)備建模語言還提供了其它關(guān)鍵字,用 于設(shè)備功能描述及其它輔助功能,具體如圖2所示。
[0039] 表1:設(shè)備建模語言運(yùn)算符 「nrunl
[0043] 本發(fā)明首先針對嵌入式仿真串口進(jìn)行統(tǒng)一建模抽象,得到對應(yīng)的嵌入式仿真串口 邏輯;而后針對得到的嵌入式仿真串口邏輯進(jìn)行功能分解,得出統(tǒng)一建模流程的各個功能 模塊。概括而言,嵌入式仿真串口建模方法主要按照如下流程來實現(xiàn):
[0044] (1)嵌入式硬件串口邏輯建模及功能分解;
[0045] (2)串口功能模塊建模;
[0046] (3)串口時序控制邏輯建模;
[0047] (4)串口用戶交互控制邏輯建模;
[004引(5)串口數(shù)據(jù)處理控制邏輯建模;
[0049] (6)串口綜合處理及接口適配功能建模。
[0050] 如圖1所示為本發(fā)明一種基于設(shè)備建模語言的嵌入式仿真串口及建模方法流程 圖,W下分六個部分介紹上述各個建模流程:
[0051 ] (1)嵌入式硬件串口邏輯建模及功能分解
[0052] 此部分為整個建模流程的第一部分,負(fù)責(zé)完成串口邏輯部分的建模及串口功能分 解,其中,串口邏輯包括其功能邏輯、數(shù)據(jù)處理邏輯、時序控制邏輯、用戶交互控制邏輯、綜 合處理及接口適配邏輯五個部分。首先根據(jù)待仿真串口的功能定義串口仿真的框架結(jié)構(gòu), 確定其邏輯功能單元組成部分;而后定義需要仿真的端口、引腳、寄存器等關(guān)鍵部件。此外, 本流程中還包括串口忍片的初始化操作。
[0053] 設(shè)備建模語言中使用化ip關(guān)鍵字來對整個仿真環(huán)境來進(jìn)行定義,多個串口忍片可 W組成一個化ip。對于單個化ip中的單個串口,設(shè)備建模語言使用關(guān)鍵字Device來進(jìn)行定 義。對串口中所采用的端口、引腳等的定義采用PIN、PORT、TPIN、VPORT關(guān)鍵字來表示,各關(guān) 鍵字作用如下:
[0054] PIN:引腳數(shù)據(jù)類型,它用于定義當(dāng)前串口模塊的引腳;
[005引 PORT:端口數(shù)據(jù)類型,它用于定義當(dāng)前串口模塊的端口,如IO端口等;
[0056] TPIN:時序端口類型,它用于定義當(dāng)前串口模塊的一個時序型端口;
[0057] VPIN:虛端口類型,它用于定義當(dāng)前串口模塊的一個虛端口,它可用于多個串口模 塊之間的互邊。
[0058] 定義完成上述部分后,可W進(jìn)行串口設(shè)備初始化操作的處理,本流程建模完成后 的框架如表3所示。
[0059] 表3:嵌入式串口仿真建??蚣?br>[0060]
[0061] (2)串口功能模塊建模
[0062] 對于一個串口部分,其功能模塊可W分為=部分:數(shù)據(jù)模塊、控制模塊、狀態(tài)模塊, 其中,數(shù)據(jù)模塊主要完成對收發(fā)數(shù)據(jù)的緩存處理;控制模塊主要完成對數(shù)據(jù)收發(fā)邏輯的控 審IJ;狀態(tài)模塊主要完成對數(shù)據(jù)收發(fā)過程中串口設(shè)備內(nèi)部狀態(tài)的表示。
[0063] 本發(fā)明中對串口的仿真采用面向事務(wù)型仿真的方式,對于串口功能單元的=個部 分,設(shè)備建模語言W對象變量的形式對其操作的基本單元進(jìn)行詳細(xì)定義;并W事務(wù)的形式 對各個基本單元進(jìn)行操作。在設(shè)備建模語言中,可W使用關(guān)鍵字Object來定義串口功能模 塊中各個可操作的基本單元,采用關(guān)鍵字Action及化KAction來定義其操作時機(jī)及操作對 象。單個Action(或化^Action)表示一個完整的操作,此操作W事務(wù)的形式存在,環(huán)境開發(fā) 人員在此Action(或化KAction)中完成對各個基本單元的所有操作。
[0064] (3)串口時序控制邏輯建模
[0065] 嵌入式軟件中經(jīng)常需要對串口設(shè)備執(zhí)行一些時序控制邏輯,如實現(xiàn)對某個中斷的 循環(huán)觸發(fā),或者對某個數(shù)據(jù)端口 W固定的周期輸入數(shù)據(jù)等。時序邏輯可W簡單化分為兩類: 延遲時鐘邏輯(或稱單次時鐘邏輯)、循環(huán)時鐘邏輯。延遲時鐘邏輯用于在實現(xiàn)對某個操作 的延遲處理;循環(huán)時鐘操作用于實現(xiàn)對某個操作的循環(huán)處理。設(shè)備建模語言提供了關(guān)鍵字 BeginTimer ,EndTimer、TimerAct ion,來實現(xiàn)上述兩類時序控制邏輯。
[0066] Timer Action關(guān)鍵字的功能同Action類似,它定義了一個事務(wù)型操作,此事務(wù)型操 作的內(nèi)容由串口模塊開發(fā)人員確定。BeginTimer關(guān)鍵字用于一個時鐘的觸發(fā),通過此關(guān)鍵 字可W定義時鐘的時鐘類型(單次或者循環(huán))、觸發(fā)延遲、觸發(fā)周期、觸發(fā)形式及時序型事務(wù) (TimerAction) sEndTimer關(guān)鍵字用于結(jié)束一個時序操作。時序控制邏輯經(jīng)常與測試自定義 命令組合使用,其實現(xiàn)框架如表4所示。
[0067] 表4:時序控制邏輯框架
[006引
[0069] (4)串口用戶交互控制邏輯建模
[0070] 嵌入式硬件仿真平臺通用用于對嵌入式軟件的開發(fā)及測試過程中。在對串口設(shè)備 進(jìn)行仿真建模的過程中,仿真串口模塊需要提供完整的用戶交互邏輯,W實現(xiàn)嵌入式軟件 開發(fā)或者測試人員對整個軟件的自主調(diào)試控制:如在特定的時間W特定的周期向某個特定 的端口輸入特定的數(shù)據(jù)、或觸發(fā)某個中斷等。
[0071 ]本發(fā)明采用自定義命令的形式來實現(xiàn)對串口用戶交互控制邏輯的建模。設(shè)備建模 語言提供了關(guān)鍵字Command來實現(xiàn)對自定義命令的定義與解析。其實現(xiàn)框架如表5所示:每 個Command項可W定義一個命令,串口仿真模塊開發(fā)人員可W定義此命令的語言格式,并在 Commnad項中對此解析進(jìn)行解析,解析方式完全由開發(fā)人員自行確定,此種方式大大增加了 測試命令實現(xiàn)的適應(yīng)性,仿真模塊開發(fā)人員可W根據(jù)測試人員的具體需求,靈活設(shè)計實現(xiàn) 各種不同測試命令,來實現(xiàn)對程序的嚴(yán)格控制。
[0072] 親5. A化方百巧n巧化
[0073]
[0074] (5)串口數(shù)據(jù)處理控制邏輯建模
[0075] 數(shù)據(jù)處理邏輯用于串口設(shè)備模塊輸入輸出數(shù)據(jù)的處理。在嵌入式系統(tǒng)中,數(shù)據(jù)是 各類數(shù)據(jù)傳輸忍片傳輸?shù)幕締卧?。不同類型的串口忍片,其傳輸?shù)臄?shù)據(jù)形式也不相同。運(yùn) 些差異主要體現(xiàn)在數(shù)據(jù)帖頭、帖尾、校驗和、轉(zhuǎn)義、填充形式等方面。為了實現(xiàn)對運(yùn)些不同類 型的數(shù)據(jù)的處理,本發(fā)明采用關(guān)鍵字化化Source、DataOutput來定義數(shù)據(jù)處理邏輯。
[0076] 化化Source用于定義一個串口設(shè)備的數(shù)據(jù)源,通過此關(guān)鍵字可W指定數(shù)據(jù)帖的格 式、數(shù)據(jù)傳輸單元大小等信息,并將用戶輸入的數(shù)據(jù)解析成串口設(shè)備可識別的數(shù)據(jù)格式形 式。DataOutput關(guān)鍵字用于對串口設(shè)備的輸出數(shù)據(jù)進(jìn)行保存,并可W按照指定的格式對輸 出數(shù)據(jù)進(jìn)行解析、封裝等操作,即它執(zhí)行與化化Source相反的操作。
[0077] 圖2為DataSource及化taOu化Ut關(guān)鍵字的處理流程:當(dāng)前假定串口設(shè)備中傳輸?shù)?數(shù)據(jù)都為16位數(shù)據(jù)格式,但用戶期望輸入不同的數(shù)據(jù)格式,此時使用化taSource關(guān)鍵字便 可W將測試人員輸入的數(shù)據(jù)轉(zhuǎn)換成仿真串口可識別的數(shù)據(jù);而對于從仿真串口上接收到的 數(shù)據(jù),使用化化Ou化Ut關(guān)鍵字可W將其轉(zhuǎn)換成用戶便于觀察的數(shù)據(jù)形式。
[0078] 此外,為便于擴(kuò)展,本發(fā)明中的設(shè)備建模語言還提供了如下關(guān)鍵字配合使用:
[00巧]Add:用于向一個數(shù)據(jù)源DataSource或者數(shù)據(jù)輸出單元DataOu化Ut中添加一個數(shù) 據(jù)處理項,它可W指定單個數(shù)據(jù)操作中所需要的數(shù)據(jù)文件、處理方面、校驗碼、錯誤信息等; [0080] FlushOut:對一個數(shù)據(jù)輸出單元化化Ou化Ut執(zhí)行一次刷新操作;
[0081 ] GetData:從一個數(shù)據(jù)源Da1:aSou;rce中獲得一組數(shù)據(jù);
[0082] Set化ror:設(shè)置一個數(shù)據(jù)源化化Source中的單個數(shù)據(jù)項錯誤信息。
[0083] (6)串口綜合處理及接口適配功能建模
[0084] 串口綜合功能主要完成仿真串口模塊向特定嵌入式虛擬系統(tǒng)環(huán)境的定向轉(zhuǎn)換。此 綜合處理建模過程需要兩個關(guān)鍵要素:
[0085] 適配接口:包括待轉(zhuǎn)換虛擬系統(tǒng)環(huán)境所定義的與當(dāng)前串口的通信接口,接口范圍 可覆蓋了上述(2)~(5)建模流程中中的所有模塊或者其子集。
[0086] 設(shè)備建模語言編譯平臺:此編譯平臺負(fù)責(zé)根據(jù)上述適配接口,將基于設(shè)備建模語 言的仿真串口模型編譯生成最終的可嵌入到特定虛擬仿真環(huán)境中的特定功能模塊,或者單 獨(dú)使用的仿真功能模塊。本發(fā)明中采用前-后端方式設(shè)計實現(xiàn)此編譯平臺,編譯平臺框架如 圖3所示。
[0087] 除了上述關(guān)鍵字之外,設(shè)備建模語言還提供了如下功能的關(guān)鍵字,此部分的關(guān)鍵 字可W靈活運(yùn)用到了上述串口部分仿真建模過程中,用于完善其仿真功能,此部分關(guān)鍵字 可W應(yīng)用在上述各個邏輯功能模塊中。
[0088] Trigger:中斷觸發(fā)操作,用于模擬一個外部中斷;
[0089] TriggerV:模塊連接操作,用于多個仿真串口之間的數(shù)據(jù)通信;
[0090] SetWatch:地址監(jiān)測操作,用于執(zhí)行對一個串口仿真地址單元的訪問監(jiān)視;
[0091] UnSetWatch:取消地址監(jiān)測操作;
[0092] VARI:無固定值的變量,常常用于變量值不確定的情況;
[0093] SetMem:內(nèi)存單元寫入操作,向仿真串口中的某個地址寫入固定值;
[0094] GetMem:內(nèi)存單元讀取操作,讀取仿真串口中的某個地址單元外的值。
[00%]經(jīng)過上述建模流程之后,各個模塊之間的數(shù)據(jù)流向及邏輯系統(tǒng)如圖4所示。在發(fā)送 數(shù)據(jù)的過程中,用戶交互控制邏輯負(fù)責(zé)接收用戶指定發(fā)送的數(shù)據(jù),并將數(shù)據(jù)發(fā)送到功能邏 輯模塊(直接數(shù)據(jù)發(fā)送,無需額外的數(shù)據(jù)處理)或者數(shù)據(jù)處理邏輯模塊(需要進(jìn)行數(shù)據(jù)格式 轉(zhuǎn)換)。數(shù)據(jù)處理邏輯模塊在接收到傳輸數(shù)據(jù)后,將數(shù)據(jù)發(fā)送至?xí)r序控制邏輯模塊(需要時 序控制)或者功能邏輯模塊(直接數(shù)據(jù)發(fā)送,無需時序控制);時序控制邏輯模塊從上層用戶 控制邏輯模塊接收控制數(shù)據(jù)生成控制時序,并將從數(shù)據(jù)處理模塊中接收到的傳輸數(shù)據(jù)按照 控制時序送至功能邏輯模塊;功能邏輯模塊負(fù)責(zé)仿真嵌入式硬件串口的功能。在接收數(shù)據(jù) 的過程中,功能邏輯模塊負(fù)責(zé)將待接收外部數(shù)據(jù)并發(fā)送至數(shù)據(jù)處理邏輯(需要數(shù)據(jù)格式轉(zhuǎn) 換)或者用戶交互控制邏輯(無需數(shù)據(jù)格式轉(zhuǎn)換);數(shù)據(jù)處理邏輯對接收到的數(shù)據(jù)按照用戶 指定邏輯進(jìn)行格式轉(zhuǎn)換,并發(fā)送至用戶交互控制邏輯模塊;用戶交互控制邏輯模塊負(fù)責(zé)將 接收到的數(shù)據(jù)顯示給最終用戶。在上述整個流程中,綜合處理及接口適配邏輯負(fù)責(zé)完成所 有模塊之間的數(shù)據(jù)傳輸。
[0096] W下W-個具體的例子,詳細(xì)說明如何基于設(shè)備建模語言各個語言要素,來實現(xiàn) 對Intersil 80C52串口忍片進(jìn)行建模。
[0097] 在此部分設(shè)備建模語言代碼中,粗體部件為設(shè)備建模語言關(guān)鍵字,斜體部分為注 釋代碼。 [009引
[0100]
[0101] 在上表中,首先聲明了一個忍片模型(Chip),此忍片(Chip)中包括一個仿真串口 設(shè)備(當(dāng)前命名為MD82巧2_CS1),此串口對傳輸?shù)臄?shù)據(jù)有固定的格式要求(32位固定格式數(shù) 據(jù)),為此,當(dāng)前模型中建立了單個數(shù)據(jù)輸入源input和數(shù)據(jù)輸出處理單元OU化Ut來對此忍 片傳輸?shù)臄?shù)據(jù)進(jìn)行必要的格式處理及轉(zhuǎn)換操作。此外,為了便于最終用戶(嵌入式軟件開發(fā) 及測試人員)使用,當(dāng)前串口模型還提供了多個忍片處理命令:comIRQWithTimerCmd、 endComIRQ,用于觸發(fā)當(dāng)前忍片中的一些時序處理操作,運(yùn)些時序處理操作是通過 TimerAction關(guān)鍵字來實現(xiàn)的。
[0102] 對于上中的設(shè)備建模語言建模之后,用戶可W采用設(shè)備建模語言編譯平臺將其編 譯生成特定虛擬仿真環(huán)境中的模塊,或者單獨(dú)使用的功能模塊,W供后續(xù)用戶使用。
[0103] 本發(fā)明說明書中未作詳細(xì)描述的內(nèi)容屬本領(lǐng)域技術(shù)人員的公知技術(shù)。
【主權(quán)項】
1. 一種基于設(shè)備建模語言的嵌入式仿真串口,其特征在于包括功能邏輯、用戶交互控 制邏輯、綜合處理邏輯及接口適配邏輯、數(shù)據(jù)處理控制邏輯、時序控制邏輯,其中 功能邏輯,接收傳輸數(shù)據(jù)后送至外部;接收控制數(shù)據(jù)送至外部;接收外部發(fā)送的傳輸數(shù) 據(jù)送至用戶交互控制邏輯或者數(shù)據(jù)處理控制邏輯; 用戶交互控制邏輯,從外部獲取傳輸數(shù)據(jù)后送至數(shù)據(jù)處理控制邏輯,從外部獲取控制 數(shù)據(jù)后送至?xí)r序控制邏輯或者功能邏輯;接收功能邏輯或者數(shù)據(jù)處理控制邏輯發(fā)送的傳輸 數(shù)據(jù)后進(jìn)行顯示;所述的控制數(shù)據(jù)為嵌入式軟件中控制數(shù)據(jù)傳輸?shù)臄?shù)據(jù)指令; 綜合處理邏輯及接口適配邏輯,連接功能邏輯、用戶交互控制邏輯、數(shù)據(jù)處理控制邏 輯、時序控制邏輯,實現(xiàn)功能邏輯、用戶交互控制邏輯、數(shù)據(jù)處理控制邏輯、時序控制邏輯之 間的數(shù)據(jù)交互;將功能邏輯、用戶交互控制邏輯、數(shù)據(jù)處理控制邏輯、時序控制邏輯及其數(shù) 據(jù)交互關(guān)系嵌入到多種嵌入式硬件仿真平臺或者生成單獨(dú)使用的仿真功能模塊; 數(shù)據(jù)處理控制邏輯,對用戶交互控制邏輯發(fā)送的傳輸數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換后送至?xí)r序控 制邏輯或者功能邏輯;接收功能邏輯發(fā)送的傳輸數(shù)據(jù)后進(jìn)行格式轉(zhuǎn)換后送至用戶交互控制 邏輯; 時序控制邏輯,接收控制數(shù)據(jù)生成控制時序,接收傳輸數(shù)據(jù)按照控制時序送至功能邏 輯;所述的功能邏輯、用戶交互控制邏輯、綜合處理邏輯及接口適配邏輯、數(shù)據(jù)處理控制邏 輯、時序控制邏輯中的數(shù)據(jù)、指令、時序均采用設(shè)備建模語言描述,其中,設(shè)備建模語言為基 于事務(wù)型仿真的、能夠被多種嵌入式硬件仿真平臺直接編譯或解釋的語言。2. -種基于設(shè)備建模語言的嵌入式仿真串口建模方法,其特征在于包括如下步驟: (1) 將嵌入式硬件串口建模抽象為嵌入式仿真串口,然后對嵌入式仿真串口進(jìn)行分解 得到功能邏輯、用戶交互控制邏輯、綜合處理邏輯及接口適配邏輯、數(shù)據(jù)處理控制邏輯、時 序控制邏輯;所述的功能邏輯為嵌入式硬件串口的控制功能單元、狀態(tài)功能單元、數(shù)據(jù)功能 單元;所述的時序控制邏輯通過接收外部的控制時序?qū)δ苓壿嬤M(jìn)行時序控制;所述的用 戶交互控制邏輯通過外部用戶指令控制嵌入式硬件串口;所述的數(shù)據(jù)處理控制邏輯控制嵌 入式硬件串口中的數(shù)據(jù)輸入、數(shù)據(jù)輸出進(jìn)行格式轉(zhuǎn)換;所述的綜合處理邏輯及接口適配邏 輯實現(xiàn)嵌入式硬件串口中功能邏輯、用戶交互控制邏輯、數(shù)據(jù)處理控制邏輯、時序控制邏輯 的信息交互;所述的功能邏輯、用戶交互控制邏輯、綜合處理邏輯及接口適配邏輯、數(shù)據(jù)處 理控制邏輯、時序控制邏輯中的數(shù)據(jù)、指令、時序均采用設(shè)備建模語言描述,其中,設(shè)備建模 語言為基于事務(wù)型仿真的、能夠被多種嵌入式硬件仿真平臺直接編譯或解釋的語言; (2) 將功能邏輯劃分為數(shù)據(jù)單元、控制單元、狀態(tài)單元,其中,數(shù)據(jù)單元對用戶交互控制 邏輯、數(shù)據(jù)處理控制邏輯或者時序控制邏輯傳輸?shù)臄?shù)據(jù)進(jìn)行緩存或者發(fā)送至外部,接收外 部發(fā)送的數(shù)據(jù)送至用戶交互控制邏輯或者數(shù)據(jù)處理控制邏輯;控制單元控制數(shù)據(jù)單元接 收、發(fā)送或者緩存數(shù)據(jù);狀態(tài)單元表示嵌入式硬件串口內(nèi)部狀態(tài);所述的嵌入式硬件串口內(nèi) 部狀態(tài)包括嵌入式硬件串口中數(shù)據(jù)單元存儲、發(fā)送或者接收數(shù)據(jù);所述的數(shù)據(jù)為控制數(shù)據(jù) 或者傳輸數(shù)據(jù); (3) 將時序控制邏輯劃分為延遲時序控制單元、循環(huán)時序控制單元,其中,延遲時序控 制單元接收控制數(shù)據(jù)生成控制時序,接收傳輸數(shù)據(jù)按照控制時序延遲送至功能邏輯;循環(huán) 時序控制單元接收控制數(shù)據(jù)生成控制時序,接收傳輸數(shù)據(jù)按照控制時序循環(huán)送至功能邏 輯; (4) 將數(shù)據(jù)處理控制邏輯劃分為輸入數(shù)據(jù)處理單元、輸出數(shù)據(jù)處理單元,其中,輸入數(shù) 據(jù)處理單元接收傳輸數(shù)據(jù)后進(jìn)行格式轉(zhuǎn)換后送至用戶交互控制邏輯,輸出數(shù)據(jù)處理單元對 傳輸數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換后送至?xí)r序控制邏輯或者功能邏輯; (5) 使用戶交互控制邏輯從外部獲取傳輸數(shù)據(jù)后送至數(shù)據(jù)處理控制邏輯、從外部獲取 控制數(shù)據(jù)后送至?xí)r序控制邏輯或者功能邏輯;使用戶交互控制邏輯接收功能邏輯或者數(shù)據(jù) 處理控制邏輯發(fā)送的傳輸數(shù)據(jù)后進(jìn)行顯示;所述的控制數(shù)據(jù)為嵌入式軟件中控制數(shù)據(jù)傳輸 的數(shù)據(jù)指令; (6) 將綜合處理邏輯及接口適配邏輯劃分為接口適配單元、目標(biāo)生成單元,其中,適配 接口生成與功能邏輯、用戶交互控制邏輯、數(shù)據(jù)處理控制邏輯、時序控制邏輯進(jìn)行通信的接 口;目標(biāo)生成單元將功能邏輯、用戶交互控制邏輯、數(shù)據(jù)處理控制邏輯、時序控制邏輯生成 能夠嵌入到多種嵌入式硬件仿真平臺的特定功能模塊或者單獨(dú)使用的仿真功能模塊。3. 根據(jù)權(quán)利要求1所述的一種基于設(shè)備建模語言的嵌入式仿真串口,其特征在于:所述 的設(shè)備建模語言基于C++語言。4. 根據(jù)權(quán)利要求1或3所述的一種基于設(shè)備建模語言的嵌入式仿真串口,其特征在于: 所述的設(shè)備建模語言的運(yùn)算符包括算術(shù)運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符。5. 根據(jù)權(quán)利要求1或3所述的一種基于設(shè)備建模語言的嵌入式仿真串口,其特征在于: 所述的設(shè)備建模語言包括代表定義、數(shù)據(jù)類型、操作處理過程或者觸發(fā)條件的關(guān)鍵字。
【文檔編號】G06F17/50GK105956267SQ201610282654
【公開日】2016年9月21日
【申請日】2016年4月29日
【發(fā)明人】李功明, 謝鵬, 王洋, 高凱, 劉春龍
【申請人】北京航天自動控制研究所, 中國運(yùn)載火箭技術(shù)研究院