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

        ?

        一種飛控系統(tǒng)參數(shù)管理的嵌入式解決方案

        2023-03-30 07:30:14詹福宇
        科學技術(shù)創(chuàng)新 2023年5期
        關(guān)鍵詞:嵌入式定義管理

        詹福宇*,徐 亮,陳 林

        (中電科特種飛機系統(tǒng)工程有限公司,四川 成都)

        大多數(shù)軟件都會涉及到參數(shù)的存儲與讀取,小至運行單片機的軟件,大至操作系統(tǒng)級別的軟件,均會有專門的子程序或者模塊進行參數(shù)的讀寫和存儲。不同開發(fā)平臺下,參數(shù)管理會存在一定的差異化,例如Windows 和Linux 下的軟件則會以ini、xml 或json 等配置文件的形式保存參數(shù);而單片機等嵌入式環(huán)境下,由于資源的限制無法使用這些功能接口,需要另外設計,一般將參數(shù)是保存EEPROM或ROM等。

        文獻[1]和文獻[2]中介紹了嵌入式平臺中參數(shù)存儲介質(zhì)、數(shù)據(jù)類型設計、讀寫接口設計等。文獻[3]發(fā)明了一種應用于呼吸機的嵌入式設備的參數(shù)管理方法、嵌入式設備的參數(shù)管理系統(tǒng)、計算機可讀存儲介質(zhì)以及嵌入式設備,但是該專利中沒有涉及上位機通信、數(shù)據(jù)存儲結(jié)構(gòu)、多線程通信等功能,另外飛控系統(tǒng)相對呼吸機更加復雜。

        飛控系統(tǒng)是一個復雜、高效、可靠的嵌入式系統(tǒng)[4],針對飛行參數(shù)記錄儀的研究工作[5-6]很多,但是涉及飛控系統(tǒng)參數(shù)管理的資料相對很少。本研究提出一種飛控系統(tǒng)參數(shù)管理的完整解決方案,包括參數(shù)的定義、獲取、更新、保存,跨線程支持以及上位機通信協(xié)議等。

        1 飛控參數(shù)管理模塊要求

        (1)高效性,參數(shù)修改必須及時通知并更新所用應用該參數(shù)的模塊。

        (2)可靠性,飛控參數(shù)會直接影響飛行安全,因此參數(shù)更新過程必須可靠,尤其是在多線程訪問的情況下。

        (3)模塊化,每個模塊具備獨立定義自己參數(shù),不影響其他模塊,參數(shù)可以在所有C 文件定義。

        (4)擴展性,產(chǎn)品升級,若涉及增加、刪除、修改參數(shù),應不影響其它參數(shù),不影響上位機通信協(xié)議。

        2 飛控參數(shù)管理模塊設計

        2.1 飛控參數(shù)管理框架

        飛控參數(shù)管理系統(tǒng)框架(見圖1),主要包含三層:

        圖1 飛控參數(shù)管理框架

        (1)存儲介質(zhì),可以是EPPEOM、FLASH、FILE等永久存儲介質(zhì)。

        (2)參數(shù)管理配置模塊,提供了一套API 接口用于管理飛控參數(shù)。

        (3)上位機通信模塊,可以通過上位機進行參數(shù)查詢和修改等。

        本研究方案中每一個飛控參數(shù)都可能存在多份拷貝:

        (1)參數(shù)管理模塊維護一份包含所有參數(shù)的元數(shù)據(jù)和當前值的表__param_table。

        (2)每個模塊獨立保存所使用參數(shù)的副本,運行過程中檢測PARAM_UPDATE 事件則將副本同步為__param_table 中的值。

        2.2 飛控參數(shù)結(jié)構(gòu)設計

        參數(shù)結(jié)構(gòu)設計由param_info_t 和param_data_t 兩個結(jié)構(gòu)體定義:

        (1)param_info_t,結(jié)構(gòu)體,包括分組名、變量名(全局唯一)、默認值、類型、標志位(修改需要重啟、解鎖后禁止修改、是否系統(tǒng)預留等)和真實值地址。

        (2)param_data_t,結(jié)構(gòu)體,包括參數(shù)當前使用值、狀態(tài)位(表征參數(shù)是否修改,是否保存,是否啟用等)等。

        2.3 飛控參數(shù)變量定義

        參數(shù)變量定義包括param_info_t 和param_data_t兩部分,前者用于存儲參數(shù)元數(shù)據(jù),后者用于存儲參數(shù)使用值。為了便于用戶使用,一般通過PARAM_DEFINE_FLOAT/INT32 等一系列宏來簡化參數(shù)定義,比如:

        其中PARAM_EXPORT 宏將param_info_t 變量定義到lds 文件指定的ParamTab section 區(qū)域,這樣參數(shù)可以定義在任意*.c 文件,但均可統(tǒng)一通過section 地址來索引和查找,便于軟件模塊化開發(fā)。

        通過以下方式獲取參數(shù)表格的首地址和數(shù)量,其中__param_section_start 和__param_section_end 是lds文件中ParamTab 區(qū)域的首尾地址:

        2.4 飛控參數(shù)讀寫流程

        飛控參數(shù)通過唯一變量名進行索引, 一個典型的參數(shù)讀寫流程見圖 2。param_find 函數(shù)從__param_table 中搜索第一個與name 相匹配的參數(shù),返回其句柄,并將該參數(shù)的狀態(tài)設置為“已使用”;param_get函 數(shù) 將 參 數(shù) 當 前 值param_info_ptr->data->value 拷貝到本地,用于飛控計算。運行過程如果檢測到PARAM_UPDATE 事件,則重新拷貝。

        圖2 飛控參數(shù)典型讀寫流程

        param_set 函數(shù)用于修改參數(shù)的當前值,同時將該參數(shù)的狀態(tài)設置為“已修改”和“未保存”,并廣播一個PARAM_UPDATE 事件,其它模塊收到該事件,會將最新的參數(shù)值拷貝到本地。

        2.5 飛控參數(shù)存儲機制

        如圖3 所示,飛控啟動時,調(diào)用param_load 函數(shù)從默認存儲介質(zhì)中讀取param_save_head_t 和param_save_data_t 數(shù)據(jù)并校驗:如果校驗失敗,則調(diào)用param_save 函數(shù)將“已修改”參數(shù)來初始化存儲介質(zhì);如果校驗成功,則在for 循環(huán)中調(diào)用param_find 和param_set 函數(shù)將參數(shù)修改為存儲值,并廣播PARAM_UPDATE 事件,通知其它模塊參數(shù)已經(jīng)更新了。

        圖3 飛控參數(shù)存儲控制流程

        運行過程中,PARAM_AUTO_SAVE 后臺線程,如果檢測PARAM_UPDATE 事件(一般調(diào)用param_set 函數(shù)時觸發(fā)),則將所有標記為“已修改”的參數(shù)保存到存儲介質(zhì)中,同時將參數(shù)狀態(tài)設置為“已保存”,但不會重置“已修改”狀態(tài),保存到存儲的結(jié)構(gòu)體數(shù)據(jù)為:

        (1)param_save_head_t,存儲頭部信息,包含時間戳、參數(shù)個數(shù),以及參數(shù)HASH 校驗。

        (2)param_save_data_t,存儲參數(shù)內(nèi)容,包含變量名和變量值,變量名作為參數(shù)的唯一索引,即使飛控軟件升級了,參數(shù)列表發(fā)生了變化,仍可以通過變量名與升級后的參數(shù)列表建立一一對應關(guān)系,不會因為程序升級導致已存參數(shù)失效或丟失。

        2.6 與上位機通信接口

        上位機對飛控參數(shù)的操作主要是獲取所有參數(shù)(見圖4)、讀取某個參數(shù)(見圖5)、修改某個參數(shù)(見圖6)。需要說明的是,通過改變PARAM_LIST 的屬性值,可以下載特定屬性的參數(shù),比如只下載被修改的參數(shù),或者只下載EKF 分組的參數(shù),另外上位機在接收參數(shù)過程中,會進行超時和序號連續(xù)性判斷。

        圖4 上位機獲取所有參數(shù)流程

        圖5 上位機讀取某個參數(shù)流程

        圖6 上位機修改某個參數(shù)流程

        為了防止批量下載參數(shù)時阻塞通信鏈路,飛控每個發(fā)送周期(20 ms)只發(fā)送3 個參數(shù),也就是每秒發(fā)送150 個參數(shù),占用帶寬約43.36 kbps,絕大部分數(shù)據(jù)鏈都能滿足這個傳輸要求,比如Microhard P900 數(shù)傳擁有57.6 kbps~276 kbps 無線速率。

        3 嵌入式軟件實現(xiàn)

        某飛控系統(tǒng)基于RT-Thread V4.1.x[7]嵌入式實時操作系統(tǒng);編譯工具鏈為GNU Arm Embedded Toolchain 10.3-2021.10[8];處理器為STM32H753II,CPU 主頻480 MHz,擁有2 Mb Flash 和1 Mb RAM,飛控內(nèi)部運行了各種傳感器驅(qū)動、姿態(tài)位置估計、航線管理、位置控制、姿態(tài)控制等30 多個模塊,一共有649 個參數(shù),其中整數(shù)132 個,浮點數(shù)517 個。

        通過軟件在環(huán)測試、硬件在環(huán)測試,以及真機飛行測試等,通過累積1 660 多個小時試驗,參數(shù)管理模塊工作正常,能夠正確的讀取、修改、存儲飛控參數(shù),上位機實時對參數(shù)進行管理,修改后的參數(shù)能夠及時同步使用模塊,試驗過程沒有出現(xiàn)參數(shù)管理故障。

        4 結(jié)論

        本研究提出了一套完整的飛控系統(tǒng)參數(shù)管理解決方案,涵蓋了飛控參數(shù)的讀取、修改、存儲以及與上位機通信等,支持多線程、支持模塊化,并成功應用到某飛控系統(tǒng)。試驗結(jié)果表明該方案完整、高效、可靠,并具備良好的擴展性,滿足飛控系統(tǒng)嵌入式軟件要求。

        猜你喜歡
        嵌入式定義管理
        棗前期管理再好,后期管不好,前功盡棄
        搭建基于Qt的嵌入式開發(fā)平臺
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應用
        成功的定義
        山東青年(2016年1期)2016-02-28 14:25:25
        “這下管理創(chuàng)新了!等7則
        雜文月刊(2016年1期)2016-02-11 10:35:51
        人本管理在我國國企中的應用
        Altera加入嵌入式視覺聯(lián)盟
        倍福 CX8091嵌入式控制器
        自動化博覽(2014年4期)2014-02-28 22:31:15
        修辭學的重大定義
        當代修辭學(2014年3期)2014-01-21 02:30:44
        山的定義
        公務員文萃(2013年5期)2013-03-11 16:08:37
        国产乱国产乱老熟300部视频| 国产精品久久久看三级| 午夜亚洲精品视频在线| 99久久99久久久精品齐齐 | 中国一级特黄真人片久久| 天天夜碰日日摸日日澡| 日韩AV有码无码一区二区三区| 国产精品av网站在线| 亚洲av网一区二区三区| 性激烈的欧美三级视频| 亚洲AⅤ无码片一区二区三区| 亚洲av自偷自拍亚洲一区| 精品人妻系列无码人妻漫画| 亚洲综合无码无在线观看| 永久免费看免费无码视频| 国产久久久自拍视频在线观看| 中文人妻av久久人妻水蜜桃| 欧美日韩精品一区二区在线观看| 2017天天爽夜夜爽精品视频| 99久久婷婷国产精品综合| 久久精品国产亚洲av网站| 国产一级农村无码| 国产熟女乱综合一区二区三区| 色婷婷色丁香久久婷婷| 国产98在线 | 日韩| 国产a级精精彩大片免费看| av在线播放一区二区免费 | 成人综合婷婷国产精品久久蜜臀| 午夜无码一区二区三区在线| 久久精品天堂一区二区| 97人伦影院a级毛片| 日韩精品一区二区三区在线观看| 元码人妻精品一区二区三区9| 国产亚洲精品97在线视频一| 激情综合一区二区三区| 亚洲人成18禁网站| 亚洲女同av在线观看| 久久香蕉国产线熟妇人妻| 国产va免费精品高清在线观看| 亚洲成熟中老妇女视频| 亚洲字幕av一区二区三区四区|