專利名稱:一種AUTOSAR模型同步到Simulink模型的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)同步技術(shù),具體涉及一種AUTOSAR模型同步到Simulink模型的方法。
背景技術(shù):
AUTOSAR(AUTomotive Open System ARchitecture)是汽車電子開放系統(tǒng)架構(gòu),使用AUTOSAR開發(fā)包括軟件組件建模、系統(tǒng)配置、E⑶抽取、E⑶配置、代碼生成等過程。軟件組件建模的作用是提供系統(tǒng)架構(gòu)的功能,讓用戶快速搭建一個(gè)汽車電子系統(tǒng)的軟件原型,包括對(duì)軟件組件、端口、接口、數(shù)據(jù)類型、內(nèi)部行為、實(shí)現(xiàn)的建模,這些元素組成了一個(gè)完整 汽車電子軟件系統(tǒng)的抽象。MATLAB是一種應(yīng)用廣泛的系統(tǒng)設(shè)計(jì)工具,在汽車電子領(lǐng)域中MATLAB/Simulink工具可以用來設(shè)計(jì)單個(gè)原子軟件組件的內(nèi)部邏輯算法,并生成實(shí)現(xiàn)代碼, 汽車電子領(lǐng)域很多遺留的系統(tǒng)都采取MATLAB/Simulink進(jìn)行設(shè)計(jì)的。組件建模包括軟件架構(gòu)設(shè)計(jì)和內(nèi)部算法、代碼實(shí)現(xiàn)兩個(gè)主要環(huán)節(jié)。由于Matlab/Simulink在建模、代碼生成以及對(duì)AUTOSAR版本的良好兼容,設(shè)計(jì)好軟件架構(gòu)后,如果采用SimuI ink對(duì)內(nèi)部行為建模,就會(huì)出現(xiàn)AUTOSAR模型和SimuI ink模型同步的問題。而且,軟件組件(Software Component, SffC)在大多數(shù)情況下,很難保證一次就設(shè)計(jì)好所有的軟件組件信息,汽車電子開發(fā)是一個(gè)不斷迭代反復(fù)的過程,在這種情況下,后續(xù)AUTOSAR工具與Simulink交互時(shí),不能重新創(chuàng)建mdl模型,而是需要將應(yīng)用工程師所作的模型修改操作同步到Simulink模型文件中,因此,急需一種將AUTOSAR模型快速,高效的比較以及同步到到Simulink模型的方法。
發(fā)明內(nèi)容
針對(duì)上述技術(shù)問題,本發(fā)明提出AUTOSAR模型同步到Simulink模型的方法。為了解決上述技術(shù)問題,本發(fā)明的技術(shù)方案如下一種AUTOSAR模型同步到Simulink模型的方法,包括如下步驟I)將ARXML源文件轉(zhuǎn)換成AUTOSAR對(duì)象,生成AUTOSAR模型;2)解析所述AUTOSAR對(duì)象的端口、接口、數(shù)據(jù)元素、操作類型、參數(shù)類型和數(shù)據(jù)類型得到AUTOSAR模型的數(shù)據(jù)類型、S-R接口、數(shù)據(jù)元素、C-S接口、操作、參數(shù),將所述得到AUTOSAR軟件組件的數(shù)據(jù)類型、S-R接口、數(shù)據(jù)元素、C-S接口、操作、參數(shù)映射到Simuink模型中從而得到對(duì)應(yīng)的Simulink模型端口標(biāo)簽集,后用HashMap裝載;3)根據(jù)所述AUTOSAR模型的名字,進(jìn)入已經(jīng)生成的Simulink模型的文件夾中尋找上一次生成的日志文件,解析日志文件得到MATLAB/Simuink模型對(duì)應(yīng)的Simulink模型端口標(biāo)簽集;4)將步驟2)得到的Simulink端口標(biāo)簽集命名為NEW標(biāo)簽集,將步驟3)得到的Simulink端口標(biāo)簽集命名的命名為OLD標(biāo)簽集;5)比較NEW和OLD標(biāo)簽集,得到結(jié)果池,所述結(jié)果池由待刪除隊(duì)列、待更新隊(duì)列、待增加隊(duì)列組成,利用Matlab命令同步到MATLAB/Simulink模型。進(jìn)一步的,步驟2)中所述得到Simuink模型對(duì)應(yīng)的Simulink模型端口標(biāo)簽集,其具體步驟包括21)解析AUTOSAR對(duì)象的端口、接口、數(shù)據(jù)元素、操作類型、參數(shù)類型、數(shù)據(jù)類型得到AUTOSAR模型的數(shù)據(jù)類型、S-R接口、數(shù)據(jù)元素、C-S接口、操作、參數(shù);22)解析Simulink模型中的輸入,輸出,數(shù)據(jù)類型,服務(wù)端操作類型,客戶端操作類型;23)將步驟21) AUTOSAR模型的數(shù)據(jù)類型、S-R接口、數(shù)據(jù)元素、C-S接口、操作、參數(shù)映射到步驟22)所述Simuink模型中;24)解析Simuink模型,得到四個(gè)標(biāo)簽集合,所述四個(gè)標(biāo)簽集合為Simulink輸入集合、Simulink輸出端口集合、Simulink客戶端端口集合和Simulink服務(wù)端端口集合,解析 AUTOSAR軟件組件模型,將其變換為Simulink模型端口標(biāo)簽集;25)將所述四個(gè)標(biāo)簽集合用HashMap裝載,所述HashMap中,Key是轉(zhuǎn)換后的標(biāo)簽文本串,Value是轉(zhuǎn)換前的AUTOSAR模型中和Key匹配的數(shù)據(jù)對(duì)象。進(jìn)一步的,所述步驟5)中比較NEW和OLD標(biāo)簽集包括如下步驟31)以O(shè)LD標(biāo)簽集為比較過程的源端,以NEW標(biāo)簽集為比較過程的目的端做第一次比較;32)對(duì)于源端的每個(gè)標(biāo)簽,判斷是否包含在目的端中,若被包含,再比較這兩個(gè)標(biāo)簽所對(duì)應(yīng)的AUTOSAR模型中所述Key匹配的數(shù)據(jù)對(duì)象是否有不同;若不被包含,則將源端的標(biāo)簽鍵和值放入結(jié)果池中的待刪除隊(duì)列中,返回步驟31);33)若兩個(gè)數(shù)據(jù)對(duì)象相同,不做任何操作,直接返回步驟31);若不同,則將目的端的對(duì)應(yīng)標(biāo)簽鍵和值放結(jié)果池中的待更新隊(duì)列中,返回步驟31);34)以NEW標(biāo)簽集為比較過程的源端,以O(shè)LD標(biāo)簽集為比較過程的目的端,做第二次比較;35)對(duì)于源端的每個(gè)標(biāo)簽,判斷是否包含在目的端中;36)若被包含,不做任何操作,返回步驟34);若不被包含,則將源端的該標(biāo)簽鍵和值放入結(jié)果池中的待增加隊(duì)列中,返回步驟31)執(zhí)行;37)比較兩個(gè)標(biāo)簽集得到結(jié)果池,所述結(jié)果池由待刪除隊(duì)列、待更新隊(duì)列、待增加隊(duì)列組成,利用Matlab命令完成結(jié)果池中三個(gè)隊(duì)列內(nèi)容更新,完成到Simulink模型的同
止/J/ O本發(fā)明具有如下有益效果I、本發(fā)明實(shí)現(xiàn)了 AUTOSAR模型同步到MATLAB/Simulink模型,具有轉(zhuǎn)換簡(jiǎn)單方便、時(shí)間消耗少、開發(fā)成本低的優(yōu)點(diǎn)。2、本發(fā)明定義了一系列規(guī)則裝載AUTOSAR模型同步到MATLAB/Simulink模型,約束條件豐富,不容易出錯(cuò)。3、本發(fā)明將同步過程分成對(duì)象轉(zhuǎn)換,比較,同步三個(gè)大步驟,簡(jiǎn)化了模型比較和同步的復(fù)雜性。
圖I為本發(fā)明實(shí)施例的流程示意圖;圖2為本發(fā)明實(shí)施例的詳細(xì)流程示意圖;圖3為本發(fā)明實(shí)施例的第一次比較示意圖;圖4為本發(fā)明實(shí)施例的第二次比較示意圖。
具體實(shí)施例方式下面將結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步的說明。如圖I和圖2所示,本發(fā)明實(shí)施例的AUTOSAR模型同步到Simulink模型實(shí)施步驟如下I、導(dǎo)入源ARXML文件,將ARXML源文件轉(zhuǎn)換成AUTOSAR對(duì)象,生成AUTOSAR模型。
2、解析 AUTOSAR 對(duì)象的 Port (端口)、Interface (接口)、DataElement (數(shù)據(jù)兀素)、Operation (操作類型)、Argument (參數(shù)類型)、DataType (數(shù)據(jù)類型)得到AUTOSAR軟件組件模型的數(shù)據(jù)類型、S-R接口、數(shù)據(jù)元素、C-S接口、操作、參數(shù)。3、對(duì)AUTOSAR對(duì)象進(jìn)行處理后,得到四個(gè)標(biāo)簽集合Simulink Inport、SimulinkOutport> Simulink ClientPort、Simulink DataType0 四個(gè)標(biāo)簽集合均用 HashMap 裝載,Key是轉(zhuǎn)換后的標(biāo)簽文本串,Value是轉(zhuǎn)換前的AUTOSAR模型中和Key匹配的數(shù)據(jù)對(duì)象。對(duì)AUTOSAR對(duì)象進(jìn)行處理得到四個(gè)標(biāo)簽集合的過程有以下三個(gè)步驟3. I解析AUTOSAR模型中的信息數(shù)據(jù)類型、S-R接口、數(shù)據(jù)元素、C-S接口、操作、參數(shù);3. 2 解析 Simulink 模型中的信息inport (輸入),outport (輸出),datatype (數(shù)據(jù)類型),ServerOperation (服務(wù)端操作類型),ClientOperation (客戶端操作類型);3. 3根據(jù)AUTOSAR端口與Simulink端口的映射關(guān)系表,解析AUTOSAR軟件組件模型,變換為Simulink模型端口標(biāo)簽集。
權(quán)利要求
1.ー種AUTOSAR模型同步到Simulink模型的方法,其特征在于,包括如下步驟 1)將ARXML源文件轉(zhuǎn)換成AUTOSAR對(duì)象,生成AUTOSAR模型; 2)解析所述AUTOSAR對(duì)象的端ロ、接ロ、數(shù)據(jù)元素、操作類型、參數(shù)類型和數(shù)據(jù)類型得到AUTOSAR模型的數(shù)據(jù)類型、S-R接ロ、數(shù)據(jù)元素 、C-S接ロ、操作、參數(shù),將所述得到AUTOSAR軟件組件的數(shù)據(jù)類型、S-R接ロ、數(shù)據(jù)元素、C-S接ロ、操作、參數(shù)映射到Simuink模型中從而得到對(duì)應(yīng)的Simuink模型端ロ標(biāo)簽集,后用HashMap裝載; 3)根據(jù)所述AUTOSAR模型的名字,進(jìn)入已經(jīng)生成的Simulink模型的文件夾中尋找上一次生成的日志文件,解析日志文件得到MATLAB/Simuink模型對(duì)應(yīng)的Simulink模型端ロ標(biāo)簽集; 4)將步驟2)得到的Simulink模型端ロ標(biāo)簽集命名為NEW標(biāo)簽集,將步驟3)得到的Simulink模型端ロ標(biāo)簽集命名的命名為OLD標(biāo)簽集; 5)比較NEW和OLD標(biāo)簽集,得到結(jié)果池,所述結(jié)果池由待刪除隊(duì)列、待更新隊(duì)列、待増加隊(duì)列組成,利用Matlab命令同步到MATLAB/Simulink模型。
2.根據(jù)權(quán)利要求I所述的ー種AUTOSAR模型同步到Simulink模型的方法,其特征在于,所述步驟2)中得到Simuink模型對(duì)應(yīng)的Simulink模型端ロ標(biāo)簽集,其具體步驟包括 21)解析AUTOSAR對(duì)象的端ロ、接ロ、數(shù)據(jù)元素、操作類型、參數(shù)類型、數(shù)據(jù)類型得到AUTOSAR模型的數(shù)據(jù)類型、S-R接ロ、數(shù)據(jù)元素、C-S接ロ、操作、參數(shù); 22)解析Simulink模型中的輸入,輸出,數(shù)據(jù)類型,服務(wù)端操作類型,客戶端操作類型; 23)將步驟21)AUTOSAR模型的數(shù)據(jù)類型、S-R接ロ、數(shù)據(jù)元素、C-S接ロ、操作、參數(shù)映射到步驟22)所述Simuink模型中; 24)解析Simuink模型,得到四個(gè)標(biāo)簽集合,所述四個(gè)標(biāo)簽集合為Simulink輸入集合、Simulink輸出端ロ集合、Simulink客戶端端ロ集合和Simulink服務(wù)端端ロ集合,解析AUTOSAR軟件組件模型,將其變換為Simulink模型端ロ標(biāo)簽集; 25)將所述四個(gè)標(biāo)簽集合用HashMap裝載,所述HashMap中,Key是轉(zhuǎn)換后的標(biāo)簽文本串,Value是轉(zhuǎn)換前的AUTOSAR模型中和Key匹配的數(shù)據(jù)對(duì)象。
3.根據(jù)權(quán)利要求2所述的ー種AUTOSAR模型同步到Simulink模型的方法,其特征在于,所述步驟5)中比較NEW和OLD標(biāo)簽集包括如下步驟 31)以O(shè)LD標(biāo)簽集為比較過程的源端,以NEW標(biāo)簽集為比較過程的目的端做第一次比較; 32)對(duì)于源端的每個(gè)標(biāo)簽,判斷是否包含在目的端中,若被包含,再比較這兩個(gè)標(biāo)簽所對(duì)應(yīng)的AUTOSAR模型中所述Key匹配的數(shù)據(jù)對(duì)象是否有不同;若不被包含,則將源端的標(biāo)簽鍵和值放入結(jié)果池中的待刪除隊(duì)列中,返回步驟31); 33)若兩個(gè)數(shù)據(jù)對(duì)象相同,不做任何操作,直接返回步驟31);若不同,則將目的端的對(duì)應(yīng)標(biāo)簽鍵和值放結(jié)果池中的待更新隊(duì)列中,返回步驟31); 34)以NEW標(biāo)簽集為比較過程的源端,以O(shè)LD標(biāo)簽集為比較過程的目的端,做第二次比較; 35)對(duì)于源端的每個(gè)標(biāo)簽,判斷是否包含在目的端中; 36)若被包含,不做任何操作,返回步驟34);若不被包含,則將源端的該標(biāo)簽鍵和值放入結(jié)果池中的待增加隊(duì)列中,返回步驟31)執(zhí)行;37)比較兩個(gè)標(biāo)簽集得到結(jié)果池,所述結(jié)果池由待刪除隊(duì)列、待更新隊(duì)列、待增加隊(duì)列組成, 利用Matlab命令完成結(jié)果池中三個(gè)隊(duì)列內(nèi)容更新,完成到Simulink模型的同步。
全文摘要
本發(fā)明公開了一種AUTOSAR模型同步到Simulink模型的方法,將ARXML源文件生成AUTOSAR模型后解析AUTOSAR對(duì)象元素得到模型的元素,將得到AUTOSAR軟件組件的元素映射到Simuink模型中得到對(duì)應(yīng)的模型端口標(biāo)簽集后用HashMap裝載;進(jìn)入已經(jīng)生成的Simulink模型的文件夾中尋找上一次生成的日志文件,解析日志文件得到MATLAB/Simuink模型對(duì)應(yīng)的Simulink模型端口標(biāo)簽集;將得到NEW標(biāo)簽集和為OLD標(biāo)簽集進(jìn)行比較得到結(jié)果池,利用Matlab命令實(shí)現(xiàn)了模型同步,具有轉(zhuǎn)換簡(jiǎn)單方便、時(shí)間消耗少、開發(fā)成本低的優(yōu)點(diǎn)。
文檔編號(hào)G06F9/44GK102819426SQ20121004927
公開日2012年12月12日 申請(qǐng)日期2012年2月29日 優(yōu)先權(quán)日2012年2月29日
發(fā)明者李紅, 姜旭鋒, 張龍, 汪金波, 沈哲, 吳朝暉, 趙民德 申請(qǐng)人:浙江大學(xué)