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

        ?

        一種衛(wèi)星綜合電子應(yīng)用軟件遙控解耦設(shè)計方法

        2022-08-02 14:08:56李光旭萬麗景鐘睿明周中澤陳志華
        關(guān)鍵詞:指令機制功能

        李光旭, 萬麗景, 鐘睿明, 王 裙, 周中澤, 陳志華

        北京控制工程研究所, 北京 100094

        0 引 言

        隨著對衛(wèi)星集成度、成本、體積、功耗、研制周期的要求越來越高,衛(wèi)星計算機的集成度、計算能力都大幅提高,原來采用數(shù)管計算機完成星務(wù)管理功能,采用姿軌控計算機完成姿軌控功能的模式,逐步被一臺衛(wèi)星綜合電子計算機完成星務(wù)管理功能和姿軌控功能的模式所取代,從而滿足衛(wèi)星對成本、體積、功耗和研制成本的要求[1-4].

        衛(wèi)星綜合電子計算機要實現(xiàn)總線管理、熱控、能源、遙控、遙測、FDIR、GNC、軌道等功能,衛(wèi)星綜合電子計算機應(yīng)用軟件的規(guī)模和復雜度較以往大大提高,軟件架構(gòu)設(shè)計的功能解耦、可擴展性、可維護性變得尤為重要[5-7].

        本文對衛(wèi)星綜合電子計算機應(yīng)用軟件必備的遙控功能,運用HASH表和鏈表技術(shù)使軟件遙控機制與子系統(tǒng)之間解耦,同時提高了軟件遙控的時間性能和時間均勻性,提高了軟件的可擴展性和可維護性[8-16].

        1 遙控軟件的主要功能及遇到的問題

        衛(wèi)星綜合電子應(yīng)用軟件的遙控功能,即接收遙控指令,修改或者注入星上的變量或者任務(wù)場景的值,完成預期任務(wù).遙控功能的主要過程:

        1)接收測控系統(tǒng)的遙控指令;

        2)按照遙控協(xié)議(如CCSDS)進行協(xié)議解包(遙控機制功能);

        3)根據(jù)協(xié)議的內(nèi)容修改相應(yīng)的變量或者任務(wù)場景的值(指令執(zhí)行功能).

        由于航天嵌入式軟件的高可靠性要求,需要對每條指令的指令命令字、長度及指令的具體內(nèi)容進行驗證.一般的設(shè)計方法,在遙控機制中定義一個含有全部指令命令字(KEY)、長度及掛接函數(shù)的遙控指令參數(shù)表,遙控參數(shù)表的命令字(KEY)按照從小到大的順序排列,在遙控機制部分通過對遙控指令參數(shù)表的命令字(KEY)進行折半查找的方法,找到命令字(KEY)的位置,對遙控指令的命令字和長度進行匹配驗證,通過掛接的指令執(zhí)行函數(shù)進行指令內(nèi)容的驗證和執(zhí)行,對指令具體內(nèi)容進行驗證和執(zhí)行的子函數(shù)放在子系統(tǒng)的軟件遙控功能中.

        這種設(shè)計方法將具體指令的驗證和執(zhí)行函數(shù)放到各個子系統(tǒng)軟件功能中,減少了子系統(tǒng)遙控功能和遙控機制功能的變量耦合,但遙控機制功能中需要知道所有指令命令字、長度和執(zhí)行函數(shù)的地址(遙控指令裝訂參數(shù)表),通過裝訂參數(shù)表的方式造成了遙控機制功能和子系統(tǒng)的指令執(zhí)行功能沒有完全隔離.

        遙控機制功能中查找命令字(KEY)的折半查找法,指令的最大查找速度依賴于所有命令字(KEY)的個數(shù),并且要求指令必須按照從小到大的順利排列.這種實現(xiàn)方法要求程序設(shè)計人員對程序的實現(xiàn)原理必須清楚,否則,如指令參數(shù)表初始化不完全,命令字插入的位置錯誤,都會造成遙控錯誤.在實際的過程中,多次出現(xiàn)過指令的命令字排序錯誤造成指令驗證不通過的情況.

        綜上所述,現(xiàn)在的設(shè)計方法存在如下問題:

        1)在遙控機制中定義的遙控指令參數(shù)表,破壞了遙控機制與子系統(tǒng)之間的獨立性,遙控機制觸及了子系統(tǒng)的具體內(nèi)容;

        2)遙控指令參數(shù)表的折半查找方法查詢效率低,查找次數(shù)離散度大,且容易維護出錯;

        3)擴展性、維護性差,如果在軌注入一個新的功能有新的遙控需求,必須對原來的程序和指令參數(shù)表進行修改,更改影響域難以分析.

        2 解決方法

        1)HASH表

        HASH是基于快速存取的角度設(shè)計的,也是一種典型的“空間換時間”的做法.HASH根據(jù)關(guān)鍵碼值(key value)而直接進行訪問的數(shù)據(jù)結(jié)構(gòu),它通過把關(guān)鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度.這個映射函數(shù)叫做散列函數(shù),存放記錄的數(shù)組叫做HASH.散列函數(shù)能使對一個數(shù)據(jù)序列的訪問過程更加迅速有效,通過散列函數(shù),數(shù)據(jù)元素將被更快地定位.

        2)雙向鏈表

        雙向鏈表也叫雙鏈表,是鏈表的一種,它的每個數(shù)據(jù)結(jié)點中都有兩個指針,分別指向直接后繼和直接前驅(qū).所以,從雙向鏈表中的任意一個結(jié)點開始,都可以很方便地訪問它的前驅(qū)結(jié)點和后繼結(jié)點.

        衛(wèi)星綜合電子應(yīng)用軟件遙控指令的HASH函數(shù)構(gòu)造采用簡單實用的除留余數(shù)法,遙控指令的KEY值對數(shù)N求模,得到HASH表的下標位置.這樣會出現(xiàn)一個問題,不同的遙控KEY值通過求模后可能對用同一個 HASH表的下標位置,這就是HASH沖突,在本文中通過鏈地址法來解決HASH沖突的問題.HASH數(shù)組的每一個元素不僅是一個進入對象,還是一個鏈表的頭節(jié)點,每一個Entry對象通過next指針指向他的下一個Entry節(jié)點,當新來的Entry映射到與之沖突的數(shù)組位置時,只需要插入到對應(yīng)的鏈表中即可[1],HASH-鏈表的原理示意圖見圖1所示.

        總結(jié)上面描述的HASH-鏈表形成過程如下:1)定義一個鏈表頭結(jié)點的HASH表;2)遙控指令的KEY通過求模函數(shù)對N求余,得到HASH表的下標位置,并以鏈表節(jié)點的形式插入到對應(yīng)HASH表下標位置的雙向鏈表中;3)如果有不同的遙控指令的KEY值HASH化后對應(yīng)相同的HASH表下標位置,則依次插入到相應(yīng)的雙向鏈表中.這樣具有相同下標位置的遙控指令就形成了一個雙向鏈表.

        通過遙控指令的KEY值找到HASH表的下標位置,通過對HASH表下標位置對應(yīng)的雙向鏈表進行查找,就能得到遙控指令驗證、執(zhí)行所有的信息.

        3 具體實例

        (1)公共接口定義

        /* 宏定義 */

        typedef struct list_head HashTable;

        #define hash_init(node)

        #define hash_insert(table, cell)

        #define hash_find(pos, table, userkey, type_of)

        /* 鏈表頭定義 */

        struct list_head

        {

        struct list_head *next, *prev;

        };

        /* 遙控指令hash節(jié)點數(shù)據(jù)結(jié)構(gòu) */

        typedef struct TAG_COMMMAND_LIST

        {

        unint32 key; /* 為指令id */

        unint32 len; /* 指令長度 */

        unint32 pfHandle; /* 指令處理函數(shù) */

        /* 哈希鏈區(qū) */

        struct list_head list; /* 鏈表數(shù)據(jù)結(jié)構(gòu) */

        } SCommandList;

        /* HASH表定義 */

        HashTable cmdHashTable[203];

        (2)子系統(tǒng)具體示例

        下面以熱控為例說明在子系統(tǒng)的具體應(yīng)用方法,能源、總線、FDIR、GNC等分系統(tǒng)的使用方法與此相同.

        1)熱控指令聲明

        熱控指令的聲明如圖2所示.

        圖2 熱控指令定義示例

        2)熱控指令插入HASH表中

        調(diào)用hash_insert將mCommandListHeat[10],依次插入到cmdHashTable中.

        通過公共接口定義,各個子系進行具體指令的定義,并插入到HASH表中,遙控指令的具體處理都封鎖在各個子系統(tǒng)內(nèi),上層通過統(tǒng)一的接口hash_find訪問子系統(tǒng)的具體內(nèi)容.

        (3)效果分析

        1)解耦性

        通過上述的方法,遙控機制里提供了統(tǒng)一的遙控接口定義和插入方法,各個子系統(tǒng)各自定義自己的命令字和命令解析函數(shù),遙控機制通過統(tǒng)一的接口函數(shù)訪問各個子系統(tǒng)定義的命令字和命令解析函數(shù),遙控機制功能和子系統(tǒng)的遙控功能完全隔離.

        如果衛(wèi)星在軌增加一個新的子系統(tǒng),可以按照(2)的過程進行定義和注冊,能做到不改動原來程序的情況下,增加新的子系統(tǒng)遙控功能,軟件的影響域小,軟件的可擴展性和可維護性大大提高.

        2)查找性能結(jié)果比對

        圖3對比了在指令關(guān)鍵字都是200個的情況下折半查找和HASH鏈表查找指令的次數(shù)比對,由圖3可以看出折半查找的均值在7次左右,分布于1-8之間,HASH鏈表查找的大部分1次就能找到具體指令,少數(shù)會出現(xiàn)2、3次找到指令的情況,HASH鏈表查找的性能比折半查找的效果要好,HASH鏈表查找的均勻性比折半查找的效果要好,指令的個數(shù)越多這種效果越明顯.

        圖3 折半查找和HASH鏈表查找次數(shù)比對圖

        4 結(jié) 論

        衛(wèi)星綜合電子應(yīng)用軟件實現(xiàn)了星務(wù)和GNC控制的功能,從整體上縮短了研制周期和節(jié)約了開發(fā)費用,但也帶來了軟件規(guī)模和復雜度的提高,怎樣從架構(gòu)上減少軟件之間的耦合,并提高軟件的可擴展和可維護性變得尤為重要.本文針對衛(wèi)星綜合電子應(yīng)用軟件的遙控功能,提出用HASH表和鏈表的方法解決了軟件功能耦合問題,提高了軟件的可擴展和在軌維護,此方法還可以應(yīng)用到其他類似的應(yīng)用場景如遙測等.

        猜你喜歡
        指令機制功能
        聽我指令:大催眠術(shù)
        也談詩的“功能”
        中華詩詞(2022年6期)2022-12-31 06:41:24
        ARINC661顯控指令快速驗證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        自制力是一種很好的篩選機制
        文苑(2018年21期)2018-11-09 01:23:06
        關(guān)于非首都功能疏解的幾點思考
        破除舊機制要分步推進
        注重機制的相互配合
        打基礎(chǔ) 抓機制 顯成效
        中國火炬(2014年4期)2014-07-24 14:22:19
        中西醫(yī)結(jié)合治療甲狀腺功能亢進癥31例
        人人妻人人澡人人爽欧美一区 | 日本岛国精品中文字幕| 国产一区二区三区探花| 国产欧美综合一区二区三区| 日本在线看片免费人成视频1000| 国产尻逼视频| 丰满少妇又爽又紧又丰满动态视频 | 揄拍成人国产精品视频| 一区二区三区熟妇人妻18| 自拍偷自拍亚洲一区二区| 国产精品18久久久| 视频一区欧美| 二区三区视频在线观看| 偷拍夫妻视频一区二区| 丰满人妻熟妇乱又伦精品软件 | 亚洲欧美日韩一区在线观看| 日韩极品视频在线观看免费| 漂亮人妻被强了中文字幕| 少妇高潮惨叫久久久久久电影 | 欧美又大又色又爽aaaa片| 国产一区曰韩二区欧美三区| 国产成人精品中文字幕| 精品国产sm最大网站| 射死你天天日| 久久精品国产只有精品96| 中文字幕亚洲入口久久| 国产激情综合在线观看| 日韩欧美区| 亚洲精品在线观看自拍| 久久99精品久久久久久清纯| 国产70老熟女重口小伙子| 国语精品视频在线观看不卡| 青青青免费在线视频亚洲视频 | 亚洲av免费手机在线观看| 自慰无码一区二区三区| 中文字幕永久免费观看| 精品少妇爆乳无码aⅴ区| 日本一区二区三区激视频| 很黄很色很污18禁免费| 久久精品人妻一区二区三区| 国产日韩亚洲中文字幕|