• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      嵌入式系統(tǒng)面向?qū)ο蟮亩鄬哟螐?fù)用架構(gòu)*

      2016-11-10 06:54:32陳宏君熊蕙文繼鋒
      關(guān)鍵詞:圖形化插件鏡像

      陳宏君,熊蕙,文繼鋒

      嵌入式系統(tǒng)面向?qū)ο蟮亩鄬哟螐?fù)用架構(gòu)*

      陳宏君,熊蕙,文繼鋒

      (南京南瑞繼保電氣有限公司,南京211102)

      在電力系統(tǒng)保護、工業(yè)控制等領(lǐng)域,通常存在冗余配置,需要減少開發(fā)工作量。本文以面向?qū)ο蟮膹?fù)用思想,將程序進行模塊化、元件化、圖形化封裝,支持元件多次實例和重用,并且支持頁面封裝和重用。通過以插件為對象進行鏡像配置,實現(xiàn)插件之間功能、連線的鏡像處理。不同層次的復(fù)用架構(gòu),減少了重復(fù)開發(fā)配置的工作量,提高了開發(fā)效率。

      嵌入式系統(tǒng);面向?qū)ο髲?fù)用;圖形化元件;鏡像配置

      引 言

      嵌入式系統(tǒng)是嵌入對象系統(tǒng)中用于執(zhí)行獨立功能的專用計算機[1],早期由于資源和性能約束,多以人工編寫匯編語言或C代碼的方式進行應(yīng)用程序的開發(fā)。隨著硬件性能的提升和平臺化的開發(fā)[2-4],圖形化編程、模塊化配置、可視化調(diào)試成為一種可行趨勢[5-8]。隨著應(yīng)用的深入,基于圖形化開發(fā)的復(fù)用功能成為一個迫切需求,例如在電力系統(tǒng)和工業(yè)控制領(lǐng)域,存在著冗余配置的應(yīng)用。本文基于面向?qū)ο蟮脑O(shè)計思想,介紹了嵌入式平臺的分層設(shè)計架構(gòu),設(shè)計了基于元件、頁面、插件等不同層次結(jié)構(gòu)的復(fù)用方案,對嵌入式圖形化開發(fā)有借鑒作用。

      1 嵌入式平臺分層設(shè)計

      嵌入式系統(tǒng)面向應(yīng)用人員,可提供硬件、軟件開發(fā)平臺[2]。平臺由硬件、系統(tǒng)軟件、公共模塊、可視化編程配置軟件共同組成。通過平臺提高研發(fā)效率,主要思路就是采用面向?qū)ο蟮脑O(shè)計思想,在系統(tǒng)軟件屏蔽硬件差異并提供統(tǒng)一功能接口的基礎(chǔ)上,基于成熟、可重用的公共模塊,利用不同層級的復(fù)用架構(gòu),通過可視化工具實現(xiàn)裝置快速集成研發(fā)。平臺化分層結(jié)構(gòu)如圖1所示。

      圖1 平臺化的分層架構(gòu)

      硬件層:裝置或系統(tǒng)的硬件構(gòu)成,提供最底層的服務(wù)支撐,為平臺需求開發(fā)硬件,而不直接為應(yīng)用需求開發(fā)硬件,不同應(yīng)用的硬件功能相同(可裁減),性能可以存在差異,更好地支撐統(tǒng)一平臺。

      驅(qū)動層:封裝硬件的訪問接口,是硬件對上層軟件服務(wù)的緩沖層,方便軟件在不同硬件上的移植,提供基本的硬件訪問服務(wù),復(fù)雜服務(wù)可由上層軟件封裝,不允許上層軟件服務(wù)直接訪問硬件接口。

      系統(tǒng)管理層:完成系統(tǒng)管理、任務(wù)調(diào)度、數(shù)據(jù)交換、動態(tài)注冊等基本服務(wù),類似計算機的操作系統(tǒng)內(nèi)核,其穩(wěn)定可靠,不依賴于硬件的具體形式,獨立于后續(xù)的應(yīng)用服務(wù),一旦定型,基本無需修改。

      公共服務(wù)層:在系統(tǒng)管理層、驅(qū)動層的基礎(chǔ)上完成多種裝置公共的軟件服務(wù),與系統(tǒng)管理層、驅(qū)動層一起合并后等效為計算機操作系統(tǒng)。通過模塊化、可擴展的方式,采用平臺沉淀為軟件資產(chǎn)庫。

      可視化開發(fā)配置層:提供通用和專用符號庫的編輯方式,支持以模塊化元件為粒度的圖形化頁面配置,完成裝置功能開發(fā)。

      專業(yè)公共服務(wù)層:實現(xiàn)不同專業(yè)方向?qū)?shù)據(jù)的專用處理,其具有模塊化、可重用、專業(yè)內(nèi)統(tǒng)一、小范圍維護的特點。

      應(yīng)用層:在驅(qū)動層、系統(tǒng)管理層、公共服務(wù)層、專業(yè)公共服務(wù)層的支持基礎(chǔ)上,用可視化編程配置軟件完成應(yīng)用功能的軟件服務(wù)。

      2 面向?qū)ο蟮膹?fù)用架構(gòu)

      對象是系統(tǒng)中描述客觀事物的實體,由對象標(biāo)識、屬性、服務(wù)3個要素組成,封裝為一個整體,以接口的形式對外提供服務(wù)[9]。本文將面向?qū)ο蟮脑O(shè)計思想引入到嵌入式應(yīng)用開發(fā)中,支持如下層次結(jié)構(gòu)的復(fù)用:

      ①元件:是完成某個具體功能的一組數(shù)據(jù)和對數(shù)據(jù)進行處理的過程,處理完后輸出的數(shù)據(jù)供其他元件進一步使用,元件包含輸入、輸出、參數(shù)、圖形等內(nèi)容。

      ②頁面:圖形化頁面由若干元件實例、頁面輸入符號、頁面輸出符號、連接線組成,是元件(類)的組合。

      ③插件:插件反映了嵌入式硬件的物理結(jié)構(gòu),可代表單核或多核處理器,為運行程序提供支持系統(tǒng),為輸入輸出通道提供界面和接口,插件程序由若干圖形化頁面和系統(tǒng)庫組成。

      2.1元件復(fù)用

      元件完成一個特定的功能,有比較明確的輸入輸出定義和參數(shù)定義。以過流保護功能為例,輸入是計算元件的三相電流幅值,輸出是過流標(biāo)志及跳閘標(biāo)志,參數(shù)包括過流門檻值、延時時間、投退壓板,任務(wù)函數(shù)就是根據(jù)輸入和參數(shù)完成過流保護判定。

      元件包括源代碼定義.h/.c文件、編譯后的目標(biāo)文件、圖形接口文件。在元件文件中定義數(shù)據(jù)結(jié)構(gòu)體,包括輸入變量、輸出變量、參數(shù)、內(nèi)部變量等。

      例如過流元件:

      在元件的C文件中定義元件構(gòu)造函數(shù)、初始化函數(shù)、任務(wù)函數(shù)。在構(gòu)造函數(shù)中調(diào)用calloc函數(shù)分配數(shù)據(jù)結(jié)構(gòu)體,并調(diào)用系統(tǒng)接口注冊結(jié)構(gòu)體首地址信息;在初始化函數(shù)中完成變量初始化,并將任務(wù)函數(shù)添加到任務(wù)隊列中。在系統(tǒng)的中斷函數(shù)或定時執(zhí)行函數(shù)中執(zhí)行對應(yīng)等級的任務(wù)。

      高質(zhì)量的元件源代碼是可視化編程配置復(fù)用的基礎(chǔ),其設(shè)計的原則如下:

      ①高內(nèi)聚、松耦合。對各種嵌入式裝置的保護測控功能進行粒度適中的劃分,形成模塊名稱定義和功能定義。

      ②統(tǒng)一的成員變量命名和模塊接口,對元件中使用的各種變量命名進行規(guī)范,保證各個元件的編程風(fēng)格統(tǒng)一;在輸入、輸出、參數(shù)、邏輯處理方面,綜合考慮各專業(yè)的應(yīng)用需求,對各個模塊的屬性設(shè)置標(biāo)準(zhǔn)化,防止使用的隨意性。

      ③統(tǒng)一的標(biāo)準(zhǔn)子程序庫。對常用的公用函數(shù),例如傅氏計算、復(fù)數(shù)、比較、求和等進行標(biāo)準(zhǔn)化函數(shù)庫設(shè)計。

      通過對劃分的應(yīng)用元件進行統(tǒng)一的需求分析、方案設(shè)計、接口定義、編碼測試等步驟,可形成高可靠、可重用的圖形化元件庫,即可支持以元件為單位的功能共享和圖形化組態(tài)。研發(fā)人員可以從元件庫中選擇功能元件,進行可視化連線,實現(xiàn)裝置程序的快速集成??梢暬幊膛渲密浖槍Σ寮?nèi)的元件輸入輸出連接,在main函數(shù)中形成指針賦值代碼,針對插件間的元件輸入輸出則基于層次變量名形成配置文本,由系統(tǒng)軟件完成地址映射,通過數(shù)據(jù)總線交換數(shù)據(jù)[2,6,7]。圖2顯示了從模塊化元件庫中挑選各功能模塊集成裝置的過程。過流元件的2個實例通過傳入不同的實例形參名進行實例創(chuàng)建:

      OC1=new OVer Current(“OC1”);

      OC2=new OVer Current(“OC2”);

      圖2 基于模塊化元件集成裝置示例

      2.2頁面復(fù)用

      圖形化編程頁面是由元件實例搭建形成,在使用過程中,存在將一頁或多頁的圖形化程序進行封裝重用的需求,即將若干頁面程序封裝為可重用的符號庫,通過實例化、圖形化庫頁面,功能可多次重用。通過重用功能穩(wěn)定的頁面,可以加快開發(fā)效率,提高軟件質(zhì)量。另外圖形化程序由于直觀易于理解,在面向用戶瀏覽時需要進行相關(guān)細節(jié)的信息隱藏,只給用戶提供頂層封裝模塊,不用開放源圖形頁面程序,從而有效保護核心技術(shù)。將頁面視為組合元件類,由若干子元件實例組成,頁面復(fù)用的實現(xiàn)步驟如下:

      ①基于元件庫搭建頁面功能,通過連接線進行元件間的數(shù)據(jù)連線,根據(jù)頁面輸入輸出塊定義對外的引腳和在頁面符號上顯示的順序和名稱提供工具,可分析頁面程序和拓撲連線,自動形成封裝后的頁面封裝圖形符號。

      ②將頁面符號按照從上到下、從左到右的順序初步排序,再按照數(shù)據(jù)流依賴關(guān)系進行二次排序,依次將編程符號對應(yīng)的變量聲明為結(jié)構(gòu)體,并輸出到頁面數(shù)據(jù)定義的.h文件中。

      ③頁面功能調(diào)用的對外調(diào)用接口形成到.c文件中,包括頁面的構(gòu)造函數(shù)、初始化函數(shù),其中在相關(guān)函數(shù)中依次調(diào)用子元件的接口,然后調(diào)用相關(guān)編譯器,形成對應(yīng)的二進制OBJ文件。

      ④將封裝后頁面的圖形文件、頭文件、二進制OBJ文件放入到符號庫目錄。從符號庫中選擇相應(yīng)的頁面封裝符號,設(shè)置符號的數(shù)據(jù)結(jié)構(gòu)體實例名,形成不同的數(shù)據(jù)實例,傳入不同的形參,調(diào)用相同的構(gòu)造、初始化、運行接口,實現(xiàn)功能重用。

      ⑤圖形化頁面程序可以是基本元件、封裝庫頁面的組合,可對包含封裝頁面實例的頁面進行二次封裝,記錄子頁面的結(jié)構(gòu)體名字信息,對二次封裝的庫頁面進行重用時,可自動分析其依賴的子頁面函數(shù)和文件。支持對封裝后的庫函數(shù)進行組合重用的頁面進行二次封裝重用,實現(xiàn)圖形程序分層設(shè)計,易于自上而下理解程序架構(gòu)和集成,進而開發(fā)模塊。

      如圖3所示,定義了TRIP TA、TRIP TB兩個實例,通過調(diào)用run TRIP(TA)、run TRIP(TB),傳入不同形參,執(zhí)行相同函數(shù)體代碼。

      2.3插件復(fù)用

      在電力系統(tǒng)保護測控、工業(yè)控制等應(yīng)用領(lǐng)域,為了提高嵌入式系統(tǒng)的可靠性,往往進行功能冗余配置,以圖4為例,高壓主變保護裝置采用保護+啟動的雙重架構(gòu),用兩塊插件進行相同的數(shù)據(jù)計算和處理,并進行數(shù)據(jù)和邏輯的相互校驗,避免因某塊插件出現(xiàn)故障時裝置誤動。在冗余配置模式下,由于程序的內(nèi)部功能和外部輸入源相同,僅出口不同,研發(fā)人員、用戶在源插件進行圖形化程序配置時,迫切希望能減少配置的工作量,只進行源插件的功能配置,在設(shè)置鏡像插件的ID后,其配置能自動同步,這樣可減少一半的開發(fā)工作,并避免了在修改一個插件的數(shù)據(jù)時,未修改其他插件的數(shù)據(jù),導(dǎo)致功能配置和數(shù)據(jù)設(shè)置不完全匹配,故還需支持插件級復(fù)用功能。

      圖3 頁面封裝重用實例

      圖4 保護+啟動的硬件結(jié)構(gòu)圖

      當(dāng)以插件為單位進行鏡像配置時,其實現(xiàn)流程如下:

      ①點擊裝置的硬件配置界面,設(shè)置源插件的鏡像插件ID,例如設(shè)置圖5中源對象為第2號槽的插件ID為B02,鏡像對象為第3號槽的插件ID為B03,并設(shè)置B03的圖形化配置節(jié)點隱藏不顯示。

      ②以圖形化的方式進行源插件的功能配置,工具支持同步刷新變量庫的源插件、鏡像插件顯示。編輯操作包括新建刪除頁面、新建刪除功能元件符號、進行本插件內(nèi)符號之間的數(shù)據(jù)拉線。在新建頁面、符號時,圖形編輯模塊以事件的方式通知變量庫模塊,變量庫模塊接收到事件后,根據(jù)事件類型更新層次顯示節(jié)點,源插件節(jié)點展示新建的頁面和符號的數(shù)據(jù),并且鏡像插件變量庫節(jié)點也同步復(fù)制并展示相同內(nèi)容,兩者的區(qū)別是,源插件和鏡像插件的變量前綴不同,例如源插件的變量前綴為“B02.”,鏡像插件的變量前綴為“B03.”。當(dāng)刪除頁面、功能元件符號時,變量庫在B02、B03的節(jié)點下同步刪除相關(guān)內(nèi)容。當(dāng)修改頁面名、功能元件實例名時,變量庫同步刷新新的名字。

      ③進行插件間信號拉線。從變量庫拖拽輸入輸出變量,釋放到圖形化頁面,在鼠標(biāo)釋放點自動形成輸入輸出端子符號,該符號記錄層次變量名。如果是源插件和鏡像插件的拉線,從變量庫中鏡像插件B03節(jié)點下,拖拽輸入變量,釋放到B02的圖形化頁面,在鼠標(biāo)釋放點自動形成輸入端子符號,并將B02元件的輸出變量拉線給B03輸入端子符號;支持從變量庫中鏡像插件B03節(jié)點下拖拽輸出變量,釋放到B02的圖形化頁面,在鼠標(biāo)釋放點自動形成輸出端子符號,并將B03輸出端子拉線給B02元件的輸入變量。

      ④形成源插件配置文本。保存裝置的硬件配置、圖形化配置等內(nèi)容,調(diào)用數(shù)據(jù)處理模塊,導(dǎo)入并分析源對象頁面數(shù)據(jù),按照嵌入式裝置定義的文件格式,形成源對象的配置文本:匯總各個頁面內(nèi)實例功能元件列表,按照元件結(jié)構(gòu)名、元件實例名、元件命令形參的順序輸出如“OverCurrent OC1 args”的元件文本段。分析元件之間的變量拉線,包括外部插件輸出給本插件的輸入拉線、本插件內(nèi)元件之間的拉線、本插件輸出給其他插件的拉線、解析元件內(nèi)腳本函數(shù),輸出如“B02.OC1.out1->B02.”。And2.in1的拉線文本段

      ⑤形成鏡像插件的配置文本。從源對象中復(fù)制功能元件符號的數(shù)據(jù)列表、對象內(nèi)部的數(shù)據(jù)連線信息。外部對象的輸出作為源對象的輸入,也同步輸出給鏡像對象的輸入、實現(xiàn)兩者之間功能、連線的鏡像復(fù)制。對于外部插件B12給B02的拉線:例如“B12.BI_Din1->B02.OV1.in1”則在鏡像插件的配置文本中,處理為,“B12.BI_Din1->B03.OV1.in1”。對于源插件內(nèi)部拉線,例如“B02.And2. out1->B02.Not.in1”則在鏡像插件的配置文本中,處理為“B03.And2.out1->B03.Not.in1”。

      ⑥處理裝置定值文件。對于未分組的鏡像插件的定值變量,通過層次變量名進行匹配,查找源插件對應(yīng)變量的定值設(shè)置項,合并到源對象的定值分組項,作為1個等價變量合并設(shè)置。例如“B03.OC1.I1n”未分組設(shè)置,源插件“B02.OC1.I1n”分組到裝置參數(shù)組中,則將兩個變量合并為1個定值,合并后的定值文本片段為“B02.OC1.I1n B03.OC1.I1n=1000”,表示2個定值默認設(shè)置為1000,如果通過LCD液晶、后臺等進行整定時,只需設(shè)置1次,對2個變量同時生效。

      結(jié) 語

      本文以面向?qū)ο蟮膹?fù)用思想,將嵌入式程序進行模塊化、元件化、圖形化封裝,支持元件和頁面多次實例和重用,實現(xiàn)以插件為對象進行鏡像配置,通過對源插件進行圖形化頁面編程后,在數(shù)據(jù)處理階段,形成鏡像插件的配置文本時,從源插件中復(fù)制功能元件列表、插件內(nèi)部的數(shù)據(jù)連線信息,實現(xiàn)兩者之間功能、連線的鏡像處理。通過不同層次的復(fù)用架構(gòu),實現(xiàn)了元件、頁面、插件的重用性、繼承性、安全性,減少了開發(fā)配置的工作量,提高了開發(fā)效率,在交直流保護控制、工業(yè)控制等多種領(lǐng)域的裝置程序開發(fā)中取得了顯著的經(jīng)濟效益。

      圖5 圖形化插件復(fù)用原理圖

      [1]Elecia White.嵌入式系統(tǒng)設(shè)計與實踐[M].北京:機械工業(yè)出版社,2013.

      [2]李響,劉國偉,馮亞東,等.新一代控制保護系統(tǒng)通用硬件平臺設(shè)計與應(yīng)用[J].電力系統(tǒng)自動化,2012,36(14):5255.

      [3]王培進,李曉路.嵌入式系統(tǒng)集成開發(fā)平臺的設(shè)計與實現(xiàn)[J].計算機應(yīng)用與軟件,2012,29(5):10113.

      [4]陳海生,鄧銳,王峰,等.可復(fù)用的基于ARM的W5100底層驅(qū)動設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2013(3):3942.

      [5]陳宏君,劉克金,馮亞東,等.新一代保護測控裝置配套工具軟件設(shè)計與應(yīng)用[J].電力系統(tǒng)自動化,2013,37(20):9296.

      [6]劉克金,陳宏君,馮亞東,等.新一代控制保護系統(tǒng)可視化編程軟件設(shè)計與實現(xiàn)[J].工業(yè)控制計算機,2014,27(10):8287.

      [7]陳宏君,馮亞東,文繼鋒,等.嵌入式程序動態(tài)分配內(nèi)存的調(diào)試方案設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2015(9):18-21.

      [8]謝揚,潘子豪.易安卓開發(fā)平臺可視化界面在智能家居領(lǐng)域的應(yīng)用[J].單片機與嵌入式系統(tǒng)應(yīng)用,2015(9):1417.

      [9]希賽教育軟考學(xué)院.系統(tǒng)架構(gòu)設(shè)計師教程[M].北京:電子工業(yè)出版社,2014.

      陳宏君(高級工程師),主要研究方向為嵌入式軟件平臺開發(fā)。

      Object-oriented and Multi-hierarchy Reusing Architecture of Embedded System

      Chen Hongjun,Xiong Hui,Wen Jifeng
      (NR Electric Co.,Ltd.,Nanjing 211102,China)

      In the power system protection and industrial control and other fields,there is usually redundant configuration,so it is necessary to reduce the development work.Based on the object-oriented reuse design,the program is modular,component,graphical package.The method supports to reuse graphical components for many times,and supports page graph package and reuse,and also supports to reuse the board's function and data linking by image set.Through the different levels of reuse architecture,the method reduces the workload of iterative development configuration,and improves the development efficiency.

      embedded system;object-oriented reuse;graphical component;mirror configuration

      TP393

      A

      ??薛士然

      2016-04-14)

      國家高技術(shù)研究發(fā)展計劃(863計劃)資助項目(2015AA050101)。

      猜你喜歡
      圖形化插件鏡像
      鏡像
      自編插件完善App Inventor與樂高機器人通信
      電子制作(2019年22期)2020-01-14 03:16:34
      鏡像
      小康(2018年23期)2018-08-23 06:18:52
      LKJ自動化測試系統(tǒng)圖形化技術(shù)研究
      運用圖形化聽寫式復(fù)習(xí),構(gòu)建高效地理課堂
      MapWindowGIS插件機制及應(yīng)用
      鏡像
      小康(2015年4期)2015-03-31 14:57:40
      鏡像
      小康(2015年6期)2015-03-26 14:44:27
      基于Revit MEP的插件制作探討
      圖形化地區(qū)電網(wǎng)無功優(yōu)化軟件開發(fā)與應(yīng)用
      米泉市| 南平市| 康平县| 康乐县| 河北区| 包头市| 江孜县| 田阳县| 阳高县| 黄冈市| 策勒县| 泰宁县| 吉隆县| 永安市| 夹江县| 喀喇| 马边| 东城区| 瓦房店市| 邹城市| 习水县| 玉屏| 万山特区| 克山县| 如东县| 沭阳县| 东丽区| 开平市| 溧阳市| 荔浦县| 介休市| 霸州市| 彭阳县| 砀山县| 安仁县| 灵山县| 兴文县| 邢台县| 花莲市| 临洮县| 安国市|