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

        ?

        嵌入式系統(tǒng)底層驅(qū)動可視化配置映射規(guī)則挖掘*

        2013-06-08 10:06:52李銀國蔣建春
        計算機工程與科學(xué) 2013年2期
        關(guān)鍵詞:子結(jié)構(gòu)結(jié)點界面

        舒 適,李銀國,蔣建春

        (1.重慶郵電大學(xué)計算機科學(xué)與技術(shù)學(xué)院,重慶 400065;2.重慶高校汽車電子與嵌入式系統(tǒng)工程研究中心,重慶 400065)

        1 引言

        隨著汽車電子行業(yè)的飛速發(fā)展,各種電子控制單元ECU(Electronic Control Unit)硬件層出不窮,過去針對ECU 的軟件開發(fā)過于依賴系統(tǒng)硬件,嚴重影響了開發(fā)效率。為了提高軟件的復(fù)用率,全球汽車制造商、零部件供應(yīng)商及其他電子、半導(dǎo)體和軟件系統(tǒng)公司共同制定了AUTOSAR(AUTomotive Open System ARchitecture)[1]規(guī)范,它定義了一套支持分布式、功能驅(qū)動的汽車電子軟件開發(fā)方法以及ECU 上的軟件架構(gòu)標準化配置方案?;贏UTOSAR 規(guī)范的配置分為應(yīng)用組件配置、系統(tǒng)配置和ECU 配置[2]。應(yīng)用組件配置需要定義好組件間的通信接口并提供組件的描述文件[3],系統(tǒng)配置主要是在整個系統(tǒng)層面上對運行時環(huán)境RTE(Real-Time Enviroment)層進行設(shè)計[4];ECU 配置關(guān)注當前ECU 軟件架構(gòu)中各個模塊的配置及代碼生成[5]。目前還沒有針對ECU配置中驅(qū)動各模塊結(jié)構(gòu)體初始化的圖形配置工具,其難點在于各種結(jié)構(gòu)體嵌套使映射出的軟件界面元素規(guī)則復(fù)雜化,且擴展芯片各模塊結(jié)構(gòu)體的未知性,使得配置工具不易兼容。本文基于AUTOSAR 規(guī)范,采用模型驅(qū)動體系結(jié)構(gòu)MDA(Model Driven Architecture)[6]的開發(fā)方式,提出了一種驅(qū)動配置界面潛在規(guī)則的挖掘方法,該方法對模型的潛在規(guī)則進行挖掘、回溯驗證,把驅(qū)動模塊配置及初始化細節(jié)映射到界面上,方便用戶對驅(qū)動進行配置。最后,基于上述理論,開發(fā)了相應(yīng)的驅(qū)動可視化配置軟件。

        2 驅(qū)動配置MDA方法

        MDA 方法的思想是使業(yè)務(wù)邏輯和具體實現(xiàn)分離,更好地達到軟件復(fù)用的目的。MDA 主要流程[7]如圖1所示,其中,PIM(Platform Independent Model)為平臺無關(guān)模型,PSM(Platform Specific Model)為平臺相關(guān)模型。驅(qū)動配置中的PIM模板是用XML 語言描述的ECU 配置項信息,由PIM 規(guī)則組成,PIM 規(guī)則為XML語言中結(jié)點的包含和并列關(guān)系以及這兩種關(guān)系的各種組合。

        Figure 1 MDA-based embedded software development process圖1 基于MDA 的嵌入式軟件開發(fā)過程

        驅(qū)動配置軟件是將含有驅(qū)動各模塊配置項信息的PIM 模板作為輸入,映射成圖形界面元素;圖形界面元素為軟件界面中的一條記錄,它代表XML中的一個結(jié)點;在圖形界面中對每條記錄的信息進行配置,然后保存回PIM,再將PIM與PSM 結(jié)合生成配置文件。整個過程的難點在于如何使PIM 規(guī)則能適用于不同ECU 芯片。這是一個分析問題域、設(shè)計和預(yù)測問題域規(guī)則以滿足各種情況的過程。PIM 規(guī)則需要從以下幾個方面考慮:

        (1)簡便性:用戶易于使用;

        (2)完備性:覆蓋問題域中的所有現(xiàn)有行為;

        (3)預(yù)測性:基于當前行為挖掘未來可能的行為;

        (4)正確性:驗證規(guī)則是否符合問題域邏輯。

        3 底層驅(qū)動可視化配置的PIM 映射規(guī)則

        3.1 算法描述

        PIM 規(guī)則的挖掘流程可分為四個步驟:分析問題域行為、轉(zhuǎn)換自然語言、建立森林、潛在規(guī)則挖掘。如圖2所示。

        Figure 2 PIM modeling process圖2 PIM 建模流程

        步驟1 在問題領(lǐng)域中通過分析了解用戶需求,用自然語言列舉出問題域中的行為。

        步驟2 把步驟1中的自然語言抽象出來,根據(jù)下面的定義1和定義2進行轉(zhuǎn)換:

        定義1 a 包含b=(a(b));

        定義2 a 并列b=(a,b)。

        步驟3 將步驟2中的表達式根據(jù)下面的定義3和定義4轉(zhuǎn)換成森林:

        定義3 (a(b))={a,b|a,b分別為樹的父、子結(jié)點};

        定義4 (a,b)={a,b|a,b為樹的兄弟結(jié)點}。

        步驟4 對步驟3中的森林橫向挖掘和縱向挖掘,再回溯到步驟1中驗證是否符合邏輯,若符合就保留,不符合或者重復(fù),則去掉。

        3.2 分析問題域行為

        在基于AUTOSAR 的嵌入式系統(tǒng)底層驅(qū)動配置中,問題域的行為主要是與驅(qū)動資源庫各模塊的內(nèi)部實現(xiàn)相關(guān),包括頭文件和初始化結(jié)構(gòu)體。下面以實際開發(fā)的項目為例,列舉出驅(qū)動配置問題域中的所有現(xiàn)有行為,每條自然語言描述一種實際的行為:

        (1)頭文件中宏定義和結(jié)構(gòu)體部分屬性初始化,用戶可以輸入值對其賦值。

        (2)頭文件中開關(guān)函數(shù)和結(jié)構(gòu)體部分屬性的枚舉,用戶可以從多個備選中任選其一對其賦值。

        (3)頭文件中的通道選擇,用戶可以從多個備選中任選一個或多個。

        (4)結(jié)構(gòu)體初始化中,結(jié)構(gòu)體嵌套子結(jié)構(gòu)體,內(nèi)層子結(jié)構(gòu)體為一個整體組合,組合中包含不同的屬性,用戶在外層輸入數(shù)字代表內(nèi)層組合的重復(fù)次數(shù)。

        (5)結(jié)構(gòu)體初始化中,結(jié)構(gòu)體嵌套子結(jié)構(gòu)體,內(nèi)層結(jié)構(gòu)體屬性和外層相同,根據(jù)外層的選擇,內(nèi)層出現(xiàn)相應(yīng)的某個屬性,每次有且僅有一個被選中。

        (6)結(jié)構(gòu)體初始化中,結(jié)構(gòu)體嵌套子結(jié)構(gòu)體,內(nèi)層結(jié)構(gòu)體屬性和外層相同,內(nèi)層中列出子結(jié)構(gòu)體的屬性,可以任選一個或多個。

        3.3 轉(zhuǎn)換自然語言

        從各種芯片的驅(qū)動資源庫分析可知,其基本界面元素只有編輯框(Edit1,Edit2)、下拉框(Combo)和列表框(List),其它各種復(fù)雜的界面行為都是這幾種基本界面元素的組合,因此用這幾種基本界面元素可以表示各種界面行為。將3.2節(jié)問題域中的六條自然語言用界面元素符號分別表示如下:

        (1)Edit1。

        (2)Combo。

        (3)List。

        (4)Edit2,包含Edit1、Combo、List、Edit2,內(nèi)層并列。

        (5)Combo包含Combo。

        (6)List包含List。

        分別令Edit1、Combo、List、Edit2 為樹結(jié)點a、b、c、e,那么,自然語言抽象如下:

        (1)(a)。

        (2)(b)。

        (3)(c)。

        (4)(e(a,b,c,e))。

        (5)(b(b))。

        (6)(c(c))。

        3.4 建立森林

        根據(jù)3.3節(jié)抽象出的表達式,建立如圖3所示的森林。

        3.5 潛在規(guī)則挖掘

        問題域中用自然語言列舉了全部現(xiàn)有行為,再將自然語言轉(zhuǎn)換為相應(yīng)表達式,因此在其基礎(chǔ)上建立的森林覆蓋了現(xiàn)有問題域中的所有行為,再針對森林進行潛在規(guī)則的挖掘。

        Figure 3 Interface actions of forests圖3 界面行為森林

        4 基于樹拼接的潛在規(guī)則挖掘算法

        樹拼接是對森林中任何兩棵樹的根結(jié)點進行試探性拼接,符合邏輯的保留,不符合的則去掉。樹拼接的潛在規(guī)則挖掘包括橫向挖掘和縱向挖掘。

        (1)橫向挖掘。

        例如,選擇的樹為a 和b,把b 作為a 的子結(jié)點,返回問題域,由于a 在問題域中代表的是Edit1,只接收輸入值,不可能在其下出現(xiàn)包含子結(jié)點的情況,所以去掉這種分支。若把a作為b 的子結(jié)點,返回問題域,b代表的是Combo,可以包含它本身。若包含其他類型的界面元素,如Edit1、List、Edit2,在一個結(jié)構(gòu)體下嵌套另一子結(jié)構(gòu)體,子結(jié)構(gòu)體有多個不同類型的屬性,只能選其中之一,是符合問題域邏輯的,所以保留這個分支。圖3經(jīng)過橫向挖掘后,得到的森林T 如圖4所示。

        Figure 4 Horizontal mining forest圖4 橫向挖掘后的森林

        (2)縱向挖掘。

        在森林T 中,如果一棵樹t1的根結(jié)點與森林T 中任何(包括t1)一棵樹t2的子結(jié)點同類型,那么用樹t1取代t2的子結(jié)點,且這個過程可遞歸。對于取代拼接的每一種情況,回溯到問題域中驗證是否符合邏輯,符合則保留,不符合則去掉。

        例如,在圖4d 中,根結(jié)點e與子結(jié)點e 同類型,所以可用e樹取代結(jié)點e,虛線表示多層遞歸,返回到問題域中驗證,e代表Edit2,可包含Edit1、Combo、List、Edit2,且中間過程可以一直遞歸下去,所以符合問題域邏輯,保留該分支,如圖5 所示。

        Figure 5 Vertical expansion figure 4d圖5 縱向擴展圖4d

        按此方法,圖4經(jīng)縱向挖掘后最終得到的森林如圖6所示。

        Figure 6 Vertical excavation forest圖6 縱向挖掘后的森林

        最終的森林包含了問題域的現(xiàn)有行為和擴展行為,依此為PIM 的規(guī)則建立PIM 模型,可解析映射出盡可能多的界面行為。

        5 底層驅(qū)動可視化配置應(yīng)用實例

        以實際項目為例,加入STM8 芯片和XC167芯片到驅(qū)動配置軟件中,只需要編寫描述各自相關(guān)配置項信息的PIM 模板,其中有下面四種類型的界面行為。為方便閱讀,以下的XML 省略掉了結(jié)點的某些屬性。編寫完P(guān)IM 模板,將其導(dǎo)入到配置軟件中,通過解析即可映射出相應(yīng)的界面元素,XML結(jié)點映射界面記錄,XML 中結(jié)點間的包含、并列及各種組合關(guān)系也在界面的各條記錄中體現(xiàn)。

        (1)Edit1,接收用戶輸入值。

        如圖7a所示,屬性名縱列的Name1 為XML模板的EditItem 中name值的映射,屬性值縱列的1為EditItem 中value值的映射。

        (2)Combo,可包含用戶輸入型Edit1、枚舉型Combo、列表型List和綜合型Edit2。ComboItem的value值只能是其子結(jié)點中的某一個。

        如圖7b所示,屬性名縱列中LIN_CHNEL映射XML模板第一級ComboItem 的name值,屬性值縱列中STD_ON[]映射第一級ComboItem 的value值。而LIN_CHNEL 的子結(jié)點STD_ON[]映射第二級ListItem 的name值。子結(jié)點LIN_UART 遞歸映射第三級EditItem 的name值,LIN_UART 映射value值。

        (3)List,可包含用戶輸入型Edit1、枚舉型Combo、列表型List和綜合型Edit2。ListItem 的子結(jié)點有selected屬性,表示是否選中該結(jié)點。

        Figure 7 Configuration software graphical interface screenshots圖7 配置軟件圖形界面截圖

        如圖7b所示,屬性名縱列中ADC_ATDx[]映射XML模板第一級ListItem 的name值,而它下面包含子結(jié)點ADC_CT、ADC_HT、ADC_ATD0[]和ADC_ATD1[]為XML 模板第二級結(jié)點,前兩項為第二級EditItem 的name值映射,后兩項為第二級ListItem 的name值映射,而ADC_ATD0[]和ADC_ATD1[]下的子結(jié)點又分別遞歸映射第三級EditItem 的name和value值。

        (4)Edit2,EditArray 下包含Base結(jié)點,Base只起邊界限定作用,不代表具體行為。Base下的所有子結(jié)點是需要重復(fù)地組合,組合中有用戶輸入型Edit1、枚舉型Combo、列表型List和綜合型Edit2。重復(fù)的次數(shù)由用戶輸入值控制。

        如圖7a所示,屬性名縱列中Name2映射第一級EditArray的name值,屬性值縱列中四映射其value值。值4表示其下有4組并列,分別用base0~base3 標識邊界,這里只用base0 一組為例,base0為第二級Base結(jié)點的name值映射,起邊界作用。SpiBufferNumber[0]、SpiChannelTyp[0]、whatever[0]和SpiJobAssignment[0]為base0 下的三級結(jié)點,前兩項為第三級EditItem 各項值的映射,第三項為第三級ListItem 各項值映射,第四項為第三級EditArray遞歸映射。Whatever[0]下的子結(jié)點Name3、Name4和Name5為第四級EditItem 遞歸映射的name 屬性值。SpiJobAssignment[0]的值為3,說明其下子結(jié)點有三組,分別用base00~base02標識,這里以base00為例,base00為SpiJobAssignment[0]下的第五級Base遞歸映射,而ChannelAssignment[0]為base00下的第六級EditItem 遞歸映射。

        圖7a 和圖7b 為不同芯片驅(qū)動相關(guān)模塊的XML模板映射界面截圖,從圖中可知,該方法能完整地將含有配置信息的XML 模板映射到圖形界面,且保持XML 模板中結(jié)點間的父子和兄弟關(guān)系。

        6 結(jié)束語

        通過對嵌入式系統(tǒng)底層驅(qū)動的PIM 潛在規(guī)則進行挖掘,使驅(qū)動配置軟件在設(shè)計時以更全面的PIM 模型為基礎(chǔ)。實際應(yīng)用證明了在面對不同芯片時,該軟件能很好地兼容,大大降低了二次開發(fā)的成本。

        [1]Autosar_Specification 4.0 SW_Architecture[EB/OL].[2009-01-01].http://www.autosar.org/.

        [2]Xu Xin-peng,Wang Xiang,Lu Jian-hua,et al.Based on the AUTOSAR methodology of application component configuration[J].Computer Engineering,2010,36(18):240-242.(in Chinese)

        [3]Jo H C,Piao S,Jin S H,et al.Software development tool design for automotive applications[C]∥Proc of 2009ICROSSICE International Joint Conference,2009:5645-5648.

        [4]Jo H C,Piao S,Cho S R,et al.RTE template structure for AUTOSAR based embedded software platform[C]∥Proc of 2008IEEE/ASME International Conference on Mechtronic and Embedded Systems and Applications,2008:233-237.

        [5]AUTOSAR GbR.AUTOSAR specification of ECU configuration R3.0[EB/OL].[2008-01-01].http://www.autosar.org/.

        [6]Miller J,Mukerji J.MDA guide version 1.0.1[EB/OL].[2003-01-01].http://www.omg.com/mda/.

        [7]Yuan Feng.MDA dreams and reality-rescue sisyphus[J].Software World,2007(14):4.(in Chinese)

        附中文參考文獻:

        [2]徐鑫朋,王翔,陸建華,等.基于AUTOSAR 方法論的應(yīng)用組件配置[J].計算機工程,2010,36(18):240-242.

        [7]袁峰.MDA 的夢想與現(xiàn)實——解救西西弗斯[J].軟件世界,2007(14):4.

        猜你喜歡
        子結(jié)構(gòu)結(jié)點界面
        完全對換網(wǎng)絡(luò)的結(jié)構(gòu)連通度和子結(jié)構(gòu)連通度
        國企黨委前置研究的“四個界面”
        當代陜西(2020年13期)2020-08-24 08:22:02
        Ladyzhenskaya流體力學(xué)方程組的確定模與確定結(jié)點個數(shù)估計
        基于FANUC PICTURE的虛擬軸坐標顯示界面開發(fā)方法研究
        人機交互界面發(fā)展趨勢研究
        鋼框架腹板雙角鋼連接梁柱子結(jié)構(gòu)抗倒塌性能分析
        基于子結(jié)構(gòu)的柴油機曲軸有限元建模方法研究
        手機界面中圖形符號的發(fā)展趨向
        新聞傳播(2015年11期)2015-07-18 11:15:04
        基于Raspberry PI為結(jié)點的天氣云測量網(wǎng)絡(luò)實現(xiàn)
        基于多重多級動力子結(jié)構(gòu)的Lanczos算法
        振動與沖擊(2012年6期)2012-02-13 11:55:42
        亚洲视频在线观看青青草| 色视频www在线播放国产人成| 亚洲 都市 校园 激情 另类| 精品日韩欧美| 免费人妻精品一区二区三区| 亚洲国产精彩中文乱码av| 免费xxx在线观看| 亚洲电影久久久久久久9999| 亚洲长腿丝袜中文字幕| 欧美大胆性生话| 日日躁夜夜躁狠狠久久av| 国产精品福利久久香蕉中文| 中文字幕有码在线亚洲| 日韩av无码久久一区二区| 在线永久看片免费的视频| 免费人人av看| 午夜精品免费视频一区二区三区| 成人免费a级毛片| 亚洲成人中文| 人妻风韵犹存av中文字幕| 亚洲精品1区2区在线观看| 免费女女同黄毛片av网站| 蜜臀久久99精品久久久久久| 久久无码人妻精品一区二区三区| 亚洲一区二区久久青草| 精品一区二区三区a桃蜜| 国产超碰人人做人人爽av大片| 国产思思99re99在线观看| 国内自拍视频在线观看| 国产亚洲成人av一区| 国产激情精品一区二区三区| 免费无码又爽又刺激又高潮的视频 | 亚洲成a∨人片在无码2023| 永久免费看免费无码视频| 不卡av一区二区在线| 国自产拍偷拍精品啪啪一区二区 | 亚洲久热无码av中文字幕| 国产在线观看网址不卡一区| 亚洲一区二区三区少妇| 精品水蜜桃久久久久久久 | 亚洲精品久久无码av片软件|