国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于μC/OS-II 的通用星務(wù)軟件框架設(shè)計(jì)

2023-02-10 04:27:54陳世淼王紹山程凌峰倪淑燕
電子設(shè)計(jì)工程 2023年3期
關(guān)鍵詞:信號(hào)量任務(wù)調(diào)度總線

陳世淼,王紹山,程凌峰,倪淑燕

(1.航天工程大學(xué)研究生院,北京 101407;2.北京跟蹤與通信技術(shù)研究所,北京 100000;3.航天工程大學(xué)電子與光學(xué)工程系,北京 101407)

微小衛(wèi)星具有質(zhì)量輕、體積小、發(fā)射周期短、性能高、成本低等諸多優(yōu)點(diǎn),在通信、遙感、導(dǎo)航、軍事等各領(lǐng)域得到廣泛應(yīng)用[1],是全球航天發(fā)展的熱點(diǎn)。隨著商業(yè)航天的興起,微小衛(wèi)星的發(fā)射數(shù)量正在逐漸增加,因此需要采用新的技術(shù)來縮短衛(wèi)星的研制周期[2]。星務(wù)軟件是衛(wèi)星系統(tǒng)的核心,用于對(duì)各個(gè)分系統(tǒng)進(jìn)行管理和數(shù)據(jù)交互,具有功能模塊多、代碼規(guī)模大、測(cè)試任務(wù)重的特點(diǎn)[3-4],星務(wù)軟件的研制進(jìn)度極大地影響了衛(wèi)星的研制周期。

隨著星載綜合電子系統(tǒng)性能的大幅提升,采用實(shí)時(shí)操作系統(tǒng)是發(fā)展的必然趨勢(shì)。星載計(jì)算機(jī)是一個(gè)嵌入式系統(tǒng),應(yīng)選用高效、高可靠的嵌入式操作系統(tǒng)內(nèi)核[5]。目前國(guó)內(nèi)外開發(fā)了很多實(shí)時(shí)操作系統(tǒng),比如軍事和航天領(lǐng)域應(yīng)用比較多的VxWorks 系統(tǒng)、μC/OS-II 系統(tǒng)等、發(fā)展迅速并具有大量使用者的FreeRTOS 系統(tǒng)以及國(guó)產(chǎn)新興的大型實(shí)時(shí)SylixOS 系統(tǒng)。VxWorks 操作系統(tǒng)在航天領(lǐng)域應(yīng)用廣泛,其性能好、穩(wěn)定性高,但該系統(tǒng)不開源,需要針對(duì)芯片開發(fā)BSP[6]。SylixOS 系統(tǒng)是一款國(guó)產(chǎn)操作系統(tǒng),性能和穩(wěn)定性都很高,但是應(yīng)用較少。μC/OS-II 系統(tǒng)和FreeRTOS 系統(tǒng)是目前應(yīng)用在微小衛(wèi)星上最多的兩款操作系統(tǒng),有著很高的實(shí)時(shí)性和可靠性,但μC/OS-II 實(shí)時(shí)操作系統(tǒng)具有更高的實(shí)時(shí)性和穩(wěn)定性,其配備有高效的微內(nèi)核,已在多個(gè)微小衛(wèi)星上成功應(yīng)用。

文中基于μC/OS-II 實(shí)時(shí)操作系統(tǒng),結(jié)合星務(wù)軟件功能需求,重點(diǎn)圍繞“通用化”特點(diǎn)進(jìn)行星務(wù)軟件框架設(shè)計(jì)。

1 星務(wù)軟件功能需求

星務(wù)軟件是星載計(jì)算機(jī)對(duì)星上任務(wù)進(jìn)行集中管理的核心部分[7-10],文中根據(jù)星務(wù)軟件的功能將其概括為星務(wù)管理、姿態(tài)控制和載荷控制三個(gè)模塊。在傳統(tǒng)的衛(wèi)星軟件研制過程中,星務(wù)管理和姿態(tài)控制是由兩個(gè)星載計(jì)算機(jī)分別實(shí)現(xiàn)的[11-13],這樣的設(shè)計(jì)方式雖然可以減低衛(wèi)星軟件設(shè)計(jì)的難度,但是會(huì)造成硬件資源的浪費(fèi),不符合一體化、小型化的設(shè)計(jì)理念,所以文中在一個(gè)星載計(jì)算機(jī)上實(shí)現(xiàn)星務(wù)管理和姿態(tài)控制。

星務(wù)管理負(fù)責(zé)整星運(yùn)行時(shí)任務(wù)的調(diào)度與管理,是衛(wèi)星的核心控制部分,包括時(shí)間管理模塊、遙測(cè)管理模塊、遙控管理模塊、程控管理模塊和設(shè)備管理模塊等[14-16]。時(shí)間管理模塊負(fù)責(zé)整星時(shí)間的獲取、修正和廣播,是整星運(yùn)行的基準(zhǔn)。遙測(cè)管理模塊負(fù)責(zé)整星遙測(cè)數(shù)據(jù)的采集、組包和發(fā)送。遙控管理模塊負(fù)責(zé)地面遙控指令的接收、處理、存儲(chǔ)和執(zhí)行等操作。程控管理模塊負(fù)責(zé)程序控制指令的存儲(chǔ)和執(zhí)行。設(shè)備管理模塊是星載計(jì)算機(jī)根據(jù)各單機(jī)狀態(tài)進(jìn)行加斷電的模塊。

姿態(tài)控制負(fù)責(zé)整星運(yùn)行過程中姿態(tài)的控制。星務(wù)軟件通過總線獲取姿控敏感器的數(shù)據(jù)信息,并進(jìn)行數(shù)據(jù)的解析和存儲(chǔ)。然后根據(jù)姿控敏感器的參數(shù)計(jì)算當(dāng)前衛(wèi)星姿態(tài),并通過姿控算法調(diào)整到期望姿態(tài)所需的執(zhí)行參數(shù)。最后將得出的執(zhí)行數(shù)據(jù)傳輸給姿控執(zhí)行器,進(jìn)而實(shí)現(xiàn)衛(wèi)星姿態(tài)的調(diào)整。

載荷控制負(fù)責(zé)載荷任務(wù)的自主規(guī)劃調(diào)度,該模塊需要根據(jù)衛(wèi)星的功能需求進(jìn)行定制化設(shè)計(jì)。

2 星載總線通信架構(gòu)

星載總線通信架構(gòu)是星務(wù)軟件設(shè)計(jì)的基礎(chǔ),為了便于對(duì)后續(xù)星務(wù)軟件框架設(shè)計(jì)進(jìn)行分析,下面介紹文中采用的總線通信架構(gòu)。

文中采用兩級(jí)雙冗余CAN 總線和RS422 相結(jié)合的方式實(shí)現(xiàn)各分系統(tǒng)指令和數(shù)據(jù)的交互,圖1 所示為文中采用的總線通信架構(gòu)。一級(jí)總線用于連接與星務(wù)分系統(tǒng)相關(guān)的載荷、GNSS、測(cè)控?cái)?shù)傳一體機(jī)和電源分系統(tǒng)等,傳輸?shù)臄?shù)據(jù)主要為其他分系統(tǒng)的遙測(cè)遙控?cái)?shù)據(jù);二級(jí)總線用于連接動(dòng)量輪、星敏感器、太陽敏感器和磁強(qiáng)計(jì)等姿控部組件,傳輸?shù)臄?shù)據(jù)為各個(gè)姿控部組件的遙測(cè)遙控?cái)?shù)據(jù)。RS422 異步串口用于連接星載計(jì)算機(jī)和測(cè)控?cái)?shù)傳一體機(jī)、載荷以及只支持串口通信的陀螺。以上總線通信架構(gòu)是文中后續(xù)展開星務(wù)軟件框架設(shè)計(jì)的前提,但采用文中設(shè)計(jì)的星務(wù)軟件框架并不一定要用以上總線通信架構(gòu)。

圖1 總線通信架構(gòu)

3 星務(wù)軟件框架設(shè)計(jì)

完成了星務(wù)軟件功能需求分析后,下面基于μC/OS-II 操作系統(tǒng)進(jìn)行星務(wù)軟件架構(gòu)設(shè)計(jì)。

3.1 任務(wù)創(chuàng)建及優(yōu)先級(jí)劃分

實(shí)時(shí)操作系統(tǒng)中任務(wù)的優(yōu)先級(jí)直接影響星務(wù)軟件的效率和穩(wěn)定性,所以應(yīng)嚴(yán)格根據(jù)星務(wù)軟件的功能需求進(jìn)行任務(wù)的創(chuàng)建及優(yōu)先級(jí)劃分。

首先分析CAN 總線上數(shù)據(jù)傳輸?shù)墓δ?,CAN 總線上數(shù)據(jù)的接收主要通過輪詢的方式,該功能對(duì)實(shí)時(shí)性要求高,應(yīng)嚴(yán)格避免由于總線數(shù)據(jù)處理慢導(dǎo)致數(shù)據(jù)丟失或出錯(cuò)的情況,所以應(yīng)設(shè)計(jì)兩個(gè)任務(wù)來完成兩級(jí)CAN 總線上數(shù)據(jù)的接收和處理。由于一級(jí)總線上部組件重要性較高,所以一級(jí)CAN 總線數(shù)據(jù)接收任務(wù)優(yōu)先級(jí)應(yīng)高于二級(jí)CAN 總線數(shù)據(jù)接收任務(wù)。此外,CAN 總線上要進(jìn)行設(shè)備識(shí)別廣播幀、設(shè)備識(shí)別允許幀、輪詢指令、時(shí)間廣播的發(fā)送,實(shí)時(shí)性要求相對(duì)較高,所以應(yīng)設(shè)計(jì)一個(gè)任務(wù)進(jìn)行CAN 總線上數(shù)據(jù)的發(fā)送。

設(shè)備管理功能是根據(jù)星務(wù)軟件的設(shè)計(jì)對(duì)下位機(jī)進(jìn)行故障處理及加斷電操作,應(yīng)該由優(yōu)先級(jí)較高的任務(wù)來實(shí)現(xiàn)。其次,遙測(cè)和遙控功能負(fù)責(zé)衛(wèi)星與地面的通信,是保證衛(wèi)星與地面通信的基本功能,所以遙測(cè)和遙控任務(wù)優(yōu)先級(jí)僅次于設(shè)備管理任務(wù)。衛(wèi)星的姿態(tài)控制具有數(shù)據(jù)量大、占用資源多等特點(diǎn),為避免姿態(tài)控制所在任務(wù)占用CPU 時(shí)間過長(zhǎng)導(dǎo)致其他任務(wù)響應(yīng)不及時(shí)的情況,應(yīng)該將姿控任務(wù)設(shè)置為最低的優(yōu)先級(jí)。

此外,衛(wèi)星載荷任務(wù)的調(diào)度與以上功能相對(duì)獨(dú)立,應(yīng)當(dāng)設(shè)置成獨(dú)立的任務(wù)。

基于以上分析,將任務(wù)具體劃分為Task_CAN Read_1、Task_CANRead_2、Task_CANSend、Task_Device、Task_TTC、Task_RemoteControl、Task_Load和Task_ACDS,并為不同的任務(wù)劃分優(yōu)先級(jí),使各任務(wù)的實(shí)時(shí)性要求得以滿足,具體的任務(wù)劃分如表1所示。

表1 星務(wù)軟件任務(wù)劃分

3.2 多任務(wù)調(diào)度

星務(wù)軟件中各個(gè)任務(wù)都是獨(dú)立的無限死循環(huán)程序,為保證星務(wù)軟件的高效運(yùn)行,需要對(duì)多個(gè)任務(wù)進(jìn)行良好的調(diào)度。該系統(tǒng)程序通過設(shè)置任務(wù)優(yōu)先級(jí)和多個(gè)信號(hào)量,實(shí)現(xiàn)了系統(tǒng)程序的任務(wù)調(diào)度,任務(wù)調(diào)度關(guān)系如圖2 所示。其中系統(tǒng)中斷優(yōu)先級(jí)最高,多個(gè)任務(wù)同時(shí)處于就緒態(tài)時(shí)按照任務(wù)優(yōu)先級(jí)進(jìn)行任務(wù)調(diào)度。

圖2 多任務(wù)調(diào)度關(guān)系

該設(shè)計(jì)采用的信號(hào)量有Sem_CANRead_1、Sem_CANRead_2、Sem_CANSend、Sem_Device、Sem_TTC、Sem_RemoteControl、Sem_Load 和Sem_ACDS。一 個(gè)中斷可以發(fā)送多個(gè)信號(hào)量,從而調(diào)度多個(gè)任務(wù),同時(shí)一個(gè)任務(wù)也可以由多個(gè)中斷發(fā)送同一個(gè)信號(hào)量進(jìn)行調(diào)度。

Task_CANSend 任務(wù)負(fù)責(zé)CAN 總線上數(shù)據(jù)的發(fā)送,該任務(wù)可以在多種情況下調(diào)度。CAN 總線由于接收到設(shè)備識(shí)別申請(qǐng)幀而產(chǎn)生中斷后,發(fā)送信號(hào)量Sem_CANSend,調(diào)度任務(wù)Task_CANSend 進(jìn)行設(shè)備識(shí)別允許幀的發(fā)送;定時(shí)器1 s 中斷和800 ms 中斷觸發(fā)后,發(fā)送信號(hào)量Sem_CANSend,分別調(diào)度任務(wù)Task_CANSend 進(jìn)行時(shí)間廣播和輪詢指令的發(fā)送。

一級(jí)CAN 總線接收到數(shù)據(jù)傳輸幀后發(fā)送信號(hào)量Sem_CANRead_1,調(diào)度任務(wù)Task_CANRead_1 進(jìn)行數(shù)據(jù)的處理和解析。二級(jí)CAN 總線接收到數(shù)據(jù)傳輸幀后發(fā)送信號(hào)量Sem_CANRead_2,調(diào)度任務(wù)Task_CANRead_2 進(jìn)行數(shù)據(jù)的處理和解析。

定時(shí)器1 s 中斷觸發(fā)后,發(fā)送信號(hào)量Sem_Dev ice、Sem_TTC、Sem_RemoteControl、Sem_Load 和Sem_ACDS,分別調(diào)度任務(wù)Task_Device、Task_TTC、Task_RemoteControl、Task_Load 和Task_ACDS,實(shí)現(xiàn)以上任務(wù)的周期執(zhí)行。

3.3 任務(wù)間通信

星務(wù)軟件不同任務(wù)或中斷之間的信息傳遞過程為任務(wù)間的通信。在該文設(shè)計(jì)中,任務(wù)間的通信主要通過全局變量來實(shí)現(xiàn)。星務(wù)軟件進(jìn)行數(shù)據(jù)交互的下位機(jī)多、任務(wù)復(fù)雜、任務(wù)間的通信量較大,因此為了更加高效地對(duì)星務(wù)軟件上的通信數(shù)據(jù)進(jìn)行管理,軟件部分進(jìn)行了全局變量的設(shè)計(jì),全局變量含義如表2 所示。

表2 全局變量含義

星務(wù)軟件中各任務(wù)間的通信關(guān)系如圖3 所示。CAN 總線中斷將通信數(shù)據(jù)存儲(chǔ)在全局變量CANReceiveBuffer_1[10] 和 CANReceiveBuffer_2[10]中,任務(wù)Task_CANRead_1 和Task_CANRead_2 對(duì)上述兩個(gè)全局變量進(jìn)行數(shù)據(jù)處理后,將設(shè)備遙測(cè)信息存儲(chǔ)在全局變量CAN_StrQ 中,將姿控部組件信息存儲(chǔ)在全局變量DEVINTER 中,將設(shè)備的狀態(tài)信息存儲(chǔ)在全局變量Device_1[10]和Device_2[10]中,之后分別由任務(wù)Task_TTC、Task_ACDS 和Task_Device 對(duì)所關(guān)聯(lián)的全局變量進(jìn)行調(diào)用。RS422 中斷后將接收到的數(shù)據(jù)存儲(chǔ)在全局變量UartReceiveBuffer[512]中,任務(wù)Task_RemoteControl 從數(shù)據(jù)中提取載荷任務(wù)信息并存儲(chǔ)在全局變量LoadTaskBuffer 中,之后由任務(wù)Task_Load 對(duì)全局變量LoadTaskBuffer 進(jìn)行調(diào)用。全局變量SystemTime 可通過定時(shí)器中斷、任務(wù)Task_RemoteControl 和任務(wù)Task_CANRead_1進(jìn)行數(shù)據(jù)的賦值及修改,并且在任務(wù)Task_CANSend、Task_TTC 和Task_ACDS 中進(jìn)行了調(diào)用。

圖3 任務(wù)間通信關(guān)系

3.4 軟件流程及主要函數(shù)

系統(tǒng)軟件運(yùn)行流程如圖4 所示。星載計(jì)算機(jī)上電后,星務(wù)軟件依次進(jìn)行系統(tǒng)參數(shù)初始化、系統(tǒng)模塊初始化、通信總線初始化、創(chuàng)建μC/OS-II 系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)、創(chuàng)建μC/OS-II 系統(tǒng)的任務(wù)和啟動(dòng)多任務(wù)調(diào)度。

系統(tǒng)參數(shù)初始化由Date_Init()函數(shù)完成,初始化星務(wù)軟件中的工作參數(shù)包括姿控軌道參數(shù)、單機(jī)狀態(tài)、CAN 總線數(shù)據(jù)緩沖區(qū)等。

系統(tǒng)模塊初始化由RTC_initial()、GPIO_init()、OSInit()等多個(gè)函數(shù)完成,對(duì)星載計(jì)算機(jī)上的計(jì)時(shí)器模塊、I/O 接口等進(jìn)行初始化操作。

通信總線初始化由MSSCan_Init()函數(shù)、SJACan_Init_PELICAN()函數(shù)和UART0_Init()函數(shù)完成,分別對(duì)CAN 總線和RS422 總線進(jìn)行初始化,對(duì)總線的工作模式進(jìn)行配置。同時(shí)通過ID_Broad()函數(shù)在CAN總線上發(fā)送設(shè)備識(shí)別廣播幀。

創(chuàng)建μC/OS-II 系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)由OSSemCreate()函數(shù)和OSMutexCreate()函數(shù)完成,主要進(jìn)行信號(hào)量和互斥信號(hào)量的創(chuàng)建,所創(chuàng)建的信號(hào)量已在3.2 小節(jié)中論述。

創(chuàng)建μC/OS-II 系統(tǒng)的任務(wù)由Task_Create()函數(shù)完成,根據(jù)任務(wù)優(yōu)先級(jí)、任務(wù)地址、任務(wù)堆??臻g的大小等參數(shù)創(chuàng)建圖4 所示的任務(wù)。

圖4 系統(tǒng)軟件運(yùn)行流程

啟動(dòng)多任務(wù)調(diào)度由OSStart()函數(shù)完成,該函數(shù)運(yùn)行后,軟件將由μC/OS-II 系統(tǒng)的內(nèi)核進(jìn)行管理,并根據(jù)任務(wù)的狀態(tài)及優(yōu)先級(jí)進(jìn)行多任務(wù)的調(diào)度。

4 可靠性驗(yàn)證

為了對(duì)文中設(shè)計(jì)的星務(wù)軟件進(jìn)行可靠性驗(yàn)證,在星務(wù)軟件框架上進(jìn)一步完善星務(wù)軟件,同時(shí)搭建衛(wèi)星半實(shí)物仿真系統(tǒng),進(jìn)行模飛測(cè)試。半實(shí)物仿真系統(tǒng)將衛(wèi)星仿真系統(tǒng)的一部分以實(shí)物的形式引入到控制回路,如采用實(shí)時(shí)仿真機(jī)將運(yùn)動(dòng)模型引入控制系統(tǒng),姿態(tài)敏感器和控制器采用模擬的方式,同時(shí)將難以建立數(shù)學(xué)模型的反作用飛輪和PCDU 模塊引入到閉環(huán)中,從而模擬衛(wèi)星軌道、飛行姿態(tài)和工作模式的變化。

在模飛測(cè)試過程中,實(shí)時(shí)監(jiān)測(cè)總線的數(shù)據(jù)傳輸、遙測(cè)數(shù)據(jù)、系統(tǒng)任務(wù)調(diào)度情況、遙控指令執(zhí)行情況等。實(shí)驗(yàn)結(jié)果表明,星務(wù)軟件能夠長(zhǎng)期穩(wěn)定運(yùn)行,滿足星務(wù)軟件功能需求,驗(yàn)證了星務(wù)軟件框架設(shè)計(jì)的合理性。

5 結(jié)論

文中根據(jù)星務(wù)軟件的功能需求,基于μC/OS-II實(shí)時(shí)操作系統(tǒng)進(jìn)行了通用星務(wù)軟件框架設(shè)計(jì),并搭建半實(shí)物仿真系統(tǒng)進(jìn)行了可靠性驗(yàn)證。該框架對(duì)任務(wù)的創(chuàng)建、優(yōu)先級(jí)劃分、任務(wù)通信和任務(wù)調(diào)度進(jìn)行了詳細(xì)設(shè)計(jì),可作為星務(wù)軟件設(shè)計(jì)的通用框架,對(duì)快速研制星務(wù)軟件具有重要參考意義。

猜你喜歡
信號(hào)量任務(wù)調(diào)度總線
基于STM32的mbedOS信號(hào)量調(diào)度機(jī)制剖析
基于改進(jìn)NSGA-Ⅱ算法的協(xié)同制造任務(wù)調(diào)度研究
基于時(shí)間負(fù)載均衡蟻群算法的云任務(wù)調(diào)度優(yōu)化
基于PCI Express總線的xHC與FPGA的直接通信
Nucleus PLUS操作系統(tǒng)信號(hào)量機(jī)制的研究與測(cè)試
機(jī)載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計(jì)
云計(jì)算環(huán)境中任務(wù)調(diào)度策略
云計(jì)算中基于進(jìn)化算法的任務(wù)調(diào)度策略
多通道ARINC429總線檢查儀
基于EtherCAT總線的ROV控制系統(tǒng)設(shè)計(jì)
河南科技(2014年16期)2014-02-27 14:13:22
屏东市| 房产| 新野县| 广汉市| 裕民县| 井陉县| 定西市| 腾冲县| 化德县| 万州区| 景德镇市| 木兰县| 沂南县| 班玛县| 南城县| 两当县| 额敏县| 金寨县| 南充市| 福海县| 德格县| 湛江市| 蓝山县| 宁化县| 西盟| 探索| 视频| 黔西县| 南丰县| 景东| 沙坪坝区| 宜丰县| 武威市| 浦北县| 榆树市| 府谷县| 东台市| 龙南县| 合阳县| 峨山| 礼泉县|