騫恒源,宋 丫,李慶楠
(中國航空工業(yè)集團公司 西安航空計算技術(shù)研究所,陜西 西安 710065)
嵌入式一般指嵌入式系統(tǒng),嵌入式開發(fā)其實就是對嵌入式系統(tǒng)的開發(fā)[1-2],而本文所提到的嵌入式功能是指通過對加載到嵌入式系統(tǒng)中的功能模塊和模版函數(shù)庫進行不同的組合調(diào)用,從而使得流入系統(tǒng)的數(shù)據(jù)能夠根據(jù)相關(guān)系統(tǒng)要求完成一系列簡單的運算,得到一個結(jié)果進而可以被其他系統(tǒng)直接使用,其目的在于能夠?qū)崿F(xiàn)平臺功能模塊化積木模型并實現(xiàn)邏輯、信息、數(shù)據(jù)處理等功能處理模塊的重構(gòu)和復(fù)用[3-5]。
某復(fù)雜系統(tǒng)能夠提供遠程通道功能,即將一個或多個輸入連接到多個輸出從而執(zhí)行系統(tǒng)所要求的有用的工作。遠程通道功能由以下幾點組成:輸入功能、嵌入式功能以及輸出功能,如圖1所示。
圖1 某復(fù)雜系統(tǒng)遠程通道功能結(jié)構(gòu)圖
輸入功能提供了將數(shù)據(jù)參數(shù)傳送到系統(tǒng)內(nèi)部的機制,輸入數(shù)據(jù)參數(shù)的類型是靈活的,數(shù)據(jù)可能來自外部傳感器或數(shù)據(jù)總線;嵌入式功能可以對通過遠程通道功能傳遞的數(shù)據(jù)參數(shù)執(zhí)行數(shù)據(jù)轉(zhuǎn)換或邏輯/數(shù)學(xué)運算。與通常托管在中央處理資源內(nèi)的大型、高度復(fù)雜的系統(tǒng)范圍功能相反,嵌入式功能旨在執(zhí)行相對簡單的數(shù)據(jù)轉(zhuǎn)換/計算操作,一個完整的嵌入式功能是由一個或多個“轉(zhuǎn)換功能”組成的,嵌入式功能內(nèi)的轉(zhuǎn)換功能之間是通過基于參數(shù)的數(shù)據(jù)流來定義的;輸出功能則是將數(shù)據(jù)參數(shù)傳輸出系統(tǒng)的機制。
轉(zhuǎn)換功能是模板的一個實例,它定義了從一種數(shù)據(jù)類型到另一種的翻譯規(guī)則或者是對輸入數(shù)據(jù)的邏輯或數(shù)字的計算。如圖2所示為某復(fù)雜系統(tǒng)中某個轉(zhuǎn)換功能的模塊框圖。從圖中可以看到,一個轉(zhuǎn)換功能模板由3個主要部分組成,分別為輸入部分、函數(shù)部分以及輸出部分,其中輸入的變量可以是一個或者多個,但每個輸入變量的內(nèi)容都必須包括其輸入?yún)?shù)以及參數(shù)的有效值,對于輸入的數(shù)據(jù),通過一系列邏輯或者計算操作最終得到一個或多個輸出,而一個轉(zhuǎn)換功能的輸出數(shù)據(jù)也必須包括其參數(shù)及參數(shù)有效值。
圖2 某轉(zhuǎn)換功能模塊框圖
通過上文知悉,一個完整的嵌入式功能是由一個或多個轉(zhuǎn)換功能模版組合來實現(xiàn),其計算流程如圖3所示。
圖3 嵌入式功能計算流程圖
從圖3可以看出,該嵌入式功能由兩個轉(zhuǎn)換功能模板組合來實現(xiàn),包括模板10001以及10005。該嵌入式功能的輸入有2個,一個輸入作為模板10001的輸入?yún)?shù),經(jīng)過模版計算后最終會得到一個輸出即模板10001的輸出。對于模塊10005來說,其輸入?yún)?shù)有2個,一個為模版10001的輸出,一個為該嵌入式功能的另外一個輸入,經(jīng)過模版計算后得到模板10005的輸出結(jié)果,該輸出結(jié)果也作為整個嵌入式功能的輸出。圖3所示為一個簡單嵌入式功能的計算流程圖,對于復(fù)雜的嵌入式功能來說,其計算流程與圖3同理,不同之處在于輸入、輸出數(shù)據(jù)的數(shù)量、類型等不一致;模板使用的數(shù)量、類型不一致。同樣地,對于相同的輸入來說,使其流經(jīng)不同的模版,對不同的模板進行組合也能在保持輸入不變的情況下得到不一樣的結(jié)果以供使用,這就使得功能模塊能夠重構(gòu)以及復(fù)用。
某復(fù)雜系統(tǒng)嵌入式功能實現(xiàn)的主要路徑如下:
1) 參數(shù)類型識別:參與到一個完整嵌入式功能的數(shù)據(jù)參數(shù)可以分為三類,一為直接輸入即系統(tǒng)輸入功能采集到的數(shù)據(jù);二為中間變量即嵌入式功能執(zhí)行過程中某個或某些個模板的輸出并需要參與接下來計算的數(shù)據(jù);三為直接輸出即嵌入式功能的最終輸出數(shù)據(jù)也是系統(tǒng)輸出功能的輸入?yún)?shù)。
2) 存儲空間開辟:識別出各參數(shù)的類型后既要對其分配相應(yīng)的存儲空間,對于輸入和輸出參數(shù)來說,根據(jù)系統(tǒng)ICD的定義為其分配相應(yīng)的存儲空間來保存輸入、輸出功能的參數(shù)同時供嵌入式功能調(diào)用使用,對于中間變量,需要先判斷其為哪個模板的輸出,再根據(jù)模板的定義為其分配相應(yīng)大小的存儲空間來保存嵌入式功能中間數(shù)據(jù)。
3) 模板實現(xiàn):根據(jù)各模板的輸入輸出參數(shù)要求以及其具體的執(zhí)行邏輯,采用C程序的方式實現(xiàn)來實現(xiàn)各轉(zhuǎn)換模板,對于所有的轉(zhuǎn)換模板,在具體實現(xiàn)過程中輸入、輸出參數(shù)的類型與數(shù)量必須與模板要求一致,同時對每個模板在命名時采用相同的命名規(guī)則方便模版的調(diào)用。
4) 嵌入式功能實現(xiàn):根據(jù)用戶的具體需求將一個完整的嵌入式功能拆分成不同的模板組合形式,將模板的組合形式以及模板計算流程抽象成配置的形式加載至系統(tǒng)中,程序?qū)崿F(xiàn)時根據(jù)配置中定義的順序依次從模板庫中調(diào)用相應(yīng)的模板來完成嵌入式功能的計算,最終得到嵌入式功能的輸出。
經(jīng)過實際應(yīng)用驗證,本文所設(shè)計的嵌入式功能具有層次清晰、可維護性強的特點,既能夠為不同系統(tǒng)提供相應(yīng)的平臺去實現(xiàn)各自復(fù)雜的計算功能,又保證了系統(tǒng)內(nèi)部軟件的可復(fù)用性,降低重復(fù)開發(fā)成本。