999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式系統面向對象的多層次復用架構*

2016-11-10 06:54:32陳宏君熊蕙文繼鋒
單片機與嵌入式系統應用 2016年9期
關鍵詞:頁面嵌入式功能

陳宏君,熊蕙,文繼鋒

嵌入式系統面向對象的多層次復用架構*

陳宏君,熊蕙,文繼鋒

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

在電力系統保護、工業控制等領域,通常存在冗余配置,需要減少開發工作量。本文以面向對象的復用思想,將程序進行模塊化、元件化、圖形化封裝,支持元件多次實例和重用,并且支持頁面封裝和重用。通過以插件為對象進行鏡像配置,實現插件之間功能、連線的鏡像處理。不同層次的復用架構,減少了重復開發配置的工作量,提高了開發效率。

嵌入式系統;面向對象復用;圖形化元件;鏡像配置

引 言

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

1 嵌入式平臺分層設計

嵌入式系統面向應用人員,可提供硬件、軟件開發平臺[2]。平臺由硬件、系統軟件、公共模塊、可視化編程配置軟件共同組成。通過平臺提高研發效率,主要思路就是采用面向對象的設計思想,在系統軟件屏蔽硬件差異并提供統一功能接口的基礎上,基于成熟、可重用的公共模塊,利用不同層級的復用架構,通過可視化工具實現裝置快速集成研發。平臺化分層結構如圖1所示。

圖1 平臺化的分層架構

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

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

系統管理層:完成系統管理、任務調度、數據交換、動態注冊等基本服務,類似計算機的操作系統內核,其穩定可靠,不依賴于硬件的具體形式,獨立于后續的應用服務,一旦定型,基本無需修改。

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

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

專業公共服務層:實現不同專業方向對數據的專用處理,其具有模塊化、可重用、專業內統一、小范圍維護的特點。

應用層:在驅動層、系統管理層、公共服務層、專業公共服務層的支持基礎上,用可視化編程配置軟件完成應用功能的軟件服務。

2 面向對象的復用架構

對象是系統中描述客觀事物的實體,由對象標識、屬性、服務3個要素組成,封裝為一個整體,以接口的形式對外提供服務[9]。本文將面向對象的設計思想引入到嵌入式應用開發中,支持如下層次結構的復用:

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

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

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

2.1元件復用

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

元件包括源代碼定義.h/.c文件、編譯后的目標文件、圖形接口文件。在元件文件中定義數據結構體,包括輸入變量、輸出變量、參數、內部變量等。

例如過流元件:

在元件的C文件中定義元件構造函數、初始化函數、任務函數。在構造函數中調用calloc函數分配數據結構體,并調用系統接口注冊結構體首地址信息;在初始化函數中完成變量初始化,并將任務函數添加到任務隊列中。在系統的中斷函數或定時執行函數中執行對應等級的任務。

高質量的元件源代碼是可視化編程配置復用的基礎,其設計的原則如下:

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

②統一的成員變量命名和模塊接口,對元件中使用的各種變量命名進行規范,保證各個元件的編程風格統一;在輸入、輸出、參數、邏輯處理方面,綜合考慮各專業的應用需求,對各個模塊的屬性設置標準化,防止使用的隨意性。

③統一的標準子程序庫。對常用的公用函數,例如傅氏計算、復數、比較、求和等進行標準化函數庫設計。

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

OC1=new OVer Current(“OC1”);

OC2=new OVer Current(“OC2”);

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

2.2頁面復用

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

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

②將頁面符號按照從上到下、從左到右的順序初步排序,再按照數據流依賴關系進行二次排序,依次將編程符號對應的變量聲明為結構體,并輸出到頁面數據定義的.h文件中。

③頁面功能調用的對外調用接口形成到.c文件中,包括頁面的構造函數、初始化函數,其中在相關函數中依次調用子元件的接口,然后調用相關編譯器,形成對應的二進制OBJ文件。

④將封裝后頁面的圖形文件、頭文件、二進制OBJ文件放入到符號庫目錄。從符號庫中選擇相應的頁面封裝符號,設置符號的數據結構體實例名,形成不同的數據實例,傳入不同的形參,調用相同的構造、初始化、運行接口,實現功能重用。

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

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

2.3插件復用

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

圖3 頁面封裝重用實例

圖4 保護+啟動的硬件結構圖

當以插件為單位進行鏡像配置時,其實現流程如下:

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

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

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

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

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

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

結 語

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

圖5 圖形化插件復用原理圖

[1]Elecia White.嵌入式系統設計與實踐[M].北京:機械工業出版社,2013.

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

[3]王培進,李曉路.嵌入式系統集成開發平臺的設計與實現[J].計算機應用與軟件,2012,29(5):10113.

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

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

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

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

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

[9]希賽教育軟考學院.系統架構設計師教程[M].北京:電子工業出版社,2014.

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

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)

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

猜你喜歡
頁面嵌入式功能
大狗熊在睡覺
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
搭建基于Qt的嵌入式開發平臺
關于非首都功能疏解的幾點思考
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
Altera加入嵌入式視覺聯盟
中西醫結合治療甲狀腺功能亢進癥31例
辨證施護在輕度認知功能損害中的應用
倍福 CX8091嵌入式控制器
自動化博覽(2014年4期)2014-02-28 22:31:15
主站蜘蛛池模板: 国内精品久久九九国产精品| 亚洲毛片一级带毛片基地| 99精品热视频这里只有精品7| 99久久精品国产精品亚洲| 欧美成a人片在线观看| 国产一级视频久久| 国产欧美视频综合二区 | 亚洲娇小与黑人巨大交| 久久这里只精品国产99热8| 特级毛片免费视频| 91视频首页| 动漫精品啪啪一区二区三区| 99免费在线观看视频| 日韩欧美中文在线| 91黄视频在线观看| 欧美日本中文| 亚洲精品国偷自产在线91正片| 久久精品电影| 国产办公室秘书无码精品| 亚洲精品午夜无码电影网| 国产午夜福利片在线观看| 色哟哟精品无码网站在线播放视频| 精品一区二区三区水蜜桃| 国产a v无码专区亚洲av| 久久伊人久久亚洲综合| 伊人成人在线视频| 色首页AV在线| 国产视频一二三区| 最新国产精品鲁鲁免费视频| 99视频精品全国免费品| 亚欧美国产综合| 国产精品hd在线播放| 91网址在线播放| 88av在线播放| 黄色国产在线| 青青久视频| 又黄又湿又爽的视频| 人妻丰满熟妇av五码区| 欧美成人影院亚洲综合图| 亚洲美女视频一区| 成人福利在线观看| 四虎永久免费地址在线网站| 看国产毛片| 国产成人亚洲精品无码电影| 91尤物国产尤物福利在线| 亚洲中文字幕在线观看| 97超级碰碰碰碰精品| 亚洲毛片一级带毛片基地| 欧美第一页在线| 2021国产精品自产拍在线| 日韩大乳视频中文字幕| 国产在线精品网址你懂的| 在线观看91香蕉国产免费| 久久午夜夜伦鲁鲁片无码免费| 九九久久精品国产av片囯产区| 26uuu国产精品视频| 国产一区二区三区免费观看| 99热这里只有免费国产精品| 久久先锋资源| 亚洲视频三级| 亚洲男人的天堂久久精品| 国产99视频在线| 国产一级一级毛片永久| 国产视频大全| 亚洲第一极品精品无码| 伦精品一区二区三区视频| 国产91高跟丝袜| 美女视频黄频a免费高清不卡| 国内精品久久久久鸭| 日韩第九页| 国产美女无遮挡免费视频| 精品国产黑色丝袜高跟鞋| 国产喷水视频| 伊人久久精品无码麻豆精品| 中国国产一级毛片| 国产二级毛片| 99这里只有精品免费视频| 无码国产偷倩在线播放老年人| 国产综合精品一区二区| 国产成人综合日韩精品无码首页| 国产午夜一级淫片| 国产av剧情无码精品色午夜|