1. <code id="ya7qu"><span id="ya7qu"><label id="ya7qu"></label></span></code>

    <b id="ya7qu"><bdo id="ya7qu"></bdo></b>
    <wbr id="ya7qu"><optgroup id="ya7qu"><strike id="ya7qu"></strike></optgroup></wbr>
  2. <u id="ya7qu"><bdo id="ya7qu"></bdo></u>
    現在位置:范文先生網>理工論文>電子通信論文>實時操作系統在星載計算機中的應用

    實時操作系統在星載計算機中的應用

    時間:2023-02-20 23:37:13 電子通信論文 我要投稿
    • 相關推薦

    實時操作系統在星載計算機中的應用

      摘要:介紹在星載計算機中應用實時操作系統的兩種方式:使用一種源碼開放的RTOS——RTEMS和自主開發RTOS,并對兩種方法進行比較。

        關鍵詞:實時操作系統 星載計算機 RTOS

    隨著我國航天技術的不斷發展,越來越多的衛星應用在通訊、資源探測、遙感、氣象、對地觀察等領域。衛星的功能越來越強,對星務管理和有效載荷控制的星載計算機提出了更高的要求。星載計算機軟硬件系統日趨復雜,傳統的星載計算機軟硬件設計方法,特別是軟件的設計方法和開發手段已逐漸不適應這種要求。引入實時操作系統(RTOS)能夠有效地解決這些問題。RTOS把任務管理調度、任務間通信、內存管理等系統功能以函數調用的方式提供給用戶,使用戶能夠將精力放在應用程序的開發上,有助于星載軟件通用化和模塊化設計,縮短軟件產品的研制周期,提高星載軟件 可靠性。

    RTOS已經成功運用在包括航天在內的許多嵌入式領域,如SJ-5小衛星就成功應用了pSOS操作系統。但這種無法獲得源碼的操作系統,無法確定其安全性。因此應該選用源碼開放的RTOS或者自己獨立設計一種適合自身系統的RTOS。本文將介紹一種適合于航天應用,特別是面向關鍵任務(Critical Oriented)的源碼開放的RTOS——RTEMS;探索自己開發RTOS設計方法,并對兩種方案進行比較。

    1 星載計算機與星載操作系統的特點

    星載計算機是RTOS運行的硬件環境,了解其特點對于RTOS的選用和設計將更有針對性。星載計算機主要用于衛星的星務管理、數據處理、姿態控制以及對有效載荷進行控制等。根據空間環境、可靠性、安全性、壽命、功耗、重量等方面的要求,星載計算機應具有如下特點:

    ·硬件資源有限,受功耗、尺寸的限制,星載計算機只有有限的內存空間;

    ·CPU型號多樣,但不屬于通用型CPU,配套的調試工具少。從8位的8031到16位的1750A、8086,到32位的ERC32、80X86,不同的型號任務,不同的研制單位采用不同的CPU型號;

    ·需要考慮空間抗輻射能力,必須考慮單粒子翻轉(SEU)和單粒子鎖定(SEL)對星載計算機的影響;

    ·對安全性與可靠性要求高;

    ·需要具有在軌可編程功能,對在地面考慮不周和出現意外情況時,能有所補救。

    針對星載計算機的這些特點,星載操作系統也具有如下特征:

    ·微內核,由于硬件資源有限,因此星載RTOS必須做成微內核的操作系統;

    *可裁減,能夠根據不同的應用對操作系統進行不同的配置,做到量體裁衣,也能更充分地利用硬件資源,減少軟件多余物;

    ·強實時性,星載系統都是強實時系統,對實現性要求很高;

    ·高穩定性與高可靠性;

    ·代碼可固化,在現在的星載計算機中仍然采用PROM對代碼進行固化,這就要求星載RTOS必須是代碼可固化的。
    (范文先生網www.baimashangsha.com收集整理)
    2 采用RTEMS作為星載實時操作系統

    2.1 RTEMS實時操作系統

    RTEMS(Real-Time Executive for Multiprocessor Systems)實時操作系統最初是美國軍方為了實時導彈系統而開發的。當時RTEMS的全稱是:Real-Time Executive for Missile Systems。隨著該系統功能的逐步完善,應用范圍也從Missile擴大到Military,再到Multiprocessor,而形成現在的RTEMS。RTEMS從1993年開始開發,并于1999年開始地外開放源代碼,并由OAR公司進行維護和升級。現在最新版本為4.6.0,在OAR的網站(www.oarcorp.com)上可以下載到相關資源。RTEMS由于具有開放源代碼的優勢,以及能與最優秀的商業RTOS相的性能,使得它最適合應用到星載計算機中。RTEMS有如下特點:

    ·支持多處理器;

    ·支持事件驅動和基于優先級的多任務實時系統;

    ·支持優先級同級調度,支持單調速率(RMS)算法;

    ·支持多種任務間通信與同步方法;

    ·支持中斷管理;

    ·支持動態內存分配與管理;

    ·支持符合POSIX標準的文件系統;

    ·支持多種網絡協議,RTEMS帶有完整的TCP/IP協議棧,具有強大的網絡功能;

    ·RTEMS提供了符合POSIX1003.1b標準,以及ITRON規范的API接口;

    ·RTEMS支持C/Ada語言;

    ·RTEMS現在能支持包括ERC32(歐空局用于航天項目的CPU)在內的11種類型的CPU(包括Motorola MC68K系列、ColdFire、Hitachi SH、intel i386、i960、MIPS、PowerPC、SPARC、AMD、A29K、HP PA-RISC)。

    2.2 RTEMS的使用與開發方法

    RTEMS的開發工具采用GNU的相關開發工具,但需要打上RTEMS的補丁。如編譯器采用GCC,調試工具采用GDB。

    用戶編寫應用程序,就是根據RTEMS提供的系統服務,通過API調用編寫任務程序。RTEMS提供的系統服務相當豐富,包括:任務管理、中斷管理、時鐘管理、定時器管理、信號量服務、消息服務、事件服務、信號服務、內存分區(Partition)與區域(Region)管理、雙口內存管理、I/O管理以及多任務調度等。

    當需要將開發完成的程序向硬件板卡下載時,還需要修改BSP板級支持包文件。BSP部分是與硬件相關的,把BSP作為單獨的一部分是為了使RTEMS具有更好的可移植性。因為相同的代碼,加上不同的BSP就可以應用到不同的CPU板上。

    在調試程序時,可以先把串口打通,這樣可以方便下載程序,也可以利用GDB工具或者它的圖形界面方式DDD調試程序。方便軟件的開發與調試。

    采用RTEMS操作系統的開發方法,可以不用關心操作系統內部如何實現多任務之間的協調工作等RTOS具體的技術細節,只需要按照RTOS提供的API調用系統服務即可。能夠充分利用成熟的技術,快速開發星載軟件。但也有一定局限性,RTEMS是屬于比較復雜的RTOS,至少需要60KB左右的內存空間才能使系統運轉起來。因此對硬件要求相對苛刻一些。而且有些CPU,RTEMS還不支持,如國內在航天領域常用的1750ACPU,RTEMS就不不支持。

    因此,使用RTEMS有一定的局限性,當RTEMS不適合使用時,可以考慮自行研制星載實時操作系統。下面以筆者開發的SAR-RTOS為例介紹星載實時操作系統的設計。

    3 星載實時操作系統的設計

    3.1 實時操作系統內核的原理

    實時操作系統(RTOS)的核心是其內核。筆者認為:通用操作系統的本質特點是硬件資源的管理者,而RTOS的本質特點是引入了多任務和實時性的保證。當然引入多任務也是提高實時性的一種方法。實時性的保證主要是靠任務調度方法和任務調度時機來決定。引入多任務相應地帶來了任務競爭與同步、任務的切換等問題。而這些問題在現代操作系統理論里已經有了比較完備的解決方案。

    實時操作系統內核原理,概括起來就是:引入了多任務,并且為每個任務分配自己的堆棧空間,由任務調度器來決定讓哪個任務獲得CPU。被掛起的任務把當前的CPU狀態保存在自己的堆棧區中,獲得CPU的任務把它被掛起時保存的CPU寄存器從堆棧區中恢復,這樣新任務就從掛起時的狀態重新執行,從而完成了一次任務切換。而信號量、消息隊列、郵箱、事件等系統提供的服務是為了解決多任務間對資源的競爭以及任務間的通信和同步。它們的共同點是從實現的角度,有效為復雜的數據結構作支撐,而對于用戶來講用法很簡單。例如信號量(Semaphore),建立好(Create)后,對其進行的操作就只有等信號(Pend)和發展信號(Post)。

    3.2 星載實時操作系統的設計要素

    (1)總體設計

    星載RTOS的設計屬于復雜的軟件設計,因此應該按照軟件工程規定的V型模型的開發方法實話開發。在總體設計中,應確定操作系統的結構、支持的任務數、采用的調度方案、提供哪些系統服務等問題。在SARRTOS的體系結構設計中采用了將整體式和客戶/服務器模型結合的方法。將它定義為四個層次:硬件層、硬件接口層、OS層和應用層,如圖1所示。

    (2)任務調度

    為了保證系統的實時性,可以采用基于優先級的搶占式調度,也就是一旦更高優先級的任務就緒,就能獲得CPU的使用權,使任務響應時間最短。SAR-RTOS中就是采和了這種調度方案,調度時間確定、速度快、實時性好。

        SAR-RTOS中關于任務管理的實現方法為:考慮到星載系統的ROM和RAM資源有限,為了保證SAR-RTOS的微內核性,將其設計為最多能支持64個任務。給每個任務賦予不同的優先級,以優先級為基礎建立任務就緒表。當某個任務就緒時,將就緒表中相應位置位,執行任務調度時按照優先級矢量位圖算法查找任務就緒表,找出最高優先級任務,執行任務切換。

    任務切換需要完成以下工作,但需要注意的是執行任務切換屬于臨界區代碼(不可被中斷),必須關中斷,切抽象完成后再開中斷:

    *判斷需要調度的任務是否是當前正在運行的任務,如果是就不切換,避免不必要的切換,縮短CPU執行時間;

    *將被掛起的任務CPU寄存器壓入堆棧;

    *將當前堆棧指針保存在即將掛起任務的任務控制塊中;

    *把高優先級任務的CPU寄存器從堆棧中恢復;

    *將高優先級任務的任務控制塊中保存的堆棧指針恢復;

    *執行中斷返回指令,讓高優先級任務運行。

    (3)任務管理

    任務在RTOS中通常同時作為系統調度和資源分配的最小單位,也是用戶編寫應用程序的基礎,對任務的管理是RTOS最基本的功能。對任務的管理內容包括任務狀態的設計以及任務狀態變遷的實現。在SAR-RTOS中任務的狀態總共有四種,如表1所示。

    表1 SAR-RTOS中的任務狀態

    運行態(Running) 任務占有CPU,并得以執行的狀態 就緒態(Ready) 任務已經具備運行的條件,等待內核調度 阻塞態(Block) 任務由于某種原因被迫放棄CPU的使用 休眠態(Dormant) 任務不具備爭取CPU的使用資格的狀態,也就是說不會被調度

    任務狀態的變遷如圖2所示。

    (4)任務間通信與同步

    任務間的同步與通信是多任務操作系統都需要解決的問題。實時操作系統的核心就是要支持多任務的并發執行,相應地也就引入了任務與任務之間、任務與中斷服務程序之間必須協調動作、相互配合的問題。即常說的任務間的同步與通信問題。所謂任務間的同步是指多個任務中發生的事件存在某種時序關系,必須協同動作、相互配合,以共同完成一個任務。任務間通信就是任務在運行時與別的任務進行信息交換。其實,同步本質上也是一種信息交換,是為了保證在正確的時間和條件下進行信息交換,使任務間不會產生混亂。在現場操作系統中已經對任務的同步與通信有比較完備的解決辦法。信號量以及事件機制等都是RTOS常用的同步機制,RTOS為任務間通信提供郵箱及消息隊列等服務。

    在SAR-RTOS中,提供的任務間通信的服務包括:消息郵箱(Message Mailbox)和消息隊列(Message Queue);提供的任務間同步的服務包括:信號量(Semaphore)和事件標志(Event Flag)。

    (5)時間管理

    RTOS由于其實時性,在系統運行過程中必須提供可靠的時間保證,因此RTOS通常都在硬件定時器的基礎上提供系統時鐘服務。每一個時鐘滴答(Tick)就是一次系統的脈動,指揮系統各部分協調工作,因此定時管理是RTOS的基礎。時間管理一般提供以下功能:

    *管理日歷時間和日期,有的系統也可以是相對時間;

    *任務等候消息、信號量、事件的超時時間或者任務長期占用CPU的超時時間;

    *在預定時間間隔或指定時間到達后喚醒一個指定任務。

    (6)其它服務

    內存管理和I/O管理,以及中斷管理等服務不是系統必需的服務,可根據不同的應用需要決定是否提供上述服務,在SAR-RTOS中上述三種服務都提供。

    (7)星載操作系統的可靠性措施

    星載軟件的可靠性設計是關鍵,通常可以采用如下措施:

    *將任務的重要參數以“三取二”的方式保存在任務控制塊中;

    *通過任務的狀態檢查,對檢測不正常的任務進行相應的出錯處理;

    *采用看門狗技術,實現冷熱啟動的判定。當盾門狗啟動后,從程序跑飛的地方自動往下執行;

    *可以在內存中開辟一段系統內存區,定時將CPU環境和主要參數放入其中。

    4 兩種方法的比較

    選用成熟的RTOS(如RTEMS)可以有效地縮短開發周期,代碼質量可以得到保證;自行開發RTOS代碼需要經過嚴格的測試,難度相對更大,開發周期更長。但可以根據需要增減相關功能,有更大的靈活性。如果使用RTEMS支持的CPU,那么推薦使用RTEMS作為星載軟件的開發,畢竟RTEMS經過了十多年的驗證,源代碼公開也有幾年的時間,這樣的代碼質量和可靠性應該是很高的。如果由于條件限制不能使用RTEMS,可以自行研制星載RTOS,但必須按照軟件工程的開發方法,從設計、編程到測試,每一項都需要嚴格把關。

    把RTOS引腳到星載計算機系統,能使星載軟件從傳統的單線程前后臺系統轉向多任務編程,不至于一個環節的失效就引起整個軟件的失效,增加了可靠性。另一方面,使用操作系統后,使星載軟件的平臺軟件和功能軟件分離,用戶可以集中精力編寫應用程序,提高開發效率。而且如果使用相同的RTOS,一些通用的模塊或任務可以在不同型號繼承和使用,提高軟件的復用性。引入 星載RTOS將帶來星載軟件開發的一次技術變革。


    【實時操作系統在星載計算機中的應用】相關文章:

    實時操作系統VxWorks在跟蹤雷達系統中的應用08-06

    提高實時操作系統的實時性能和可靠性策略08-19

    DMA在實時圖像處理中的應用08-06

    基于Vxworks實時操作系統的串口通信程序設計與實現08-19

    實時操作系統μC/OS-II在MCF5272上的移植08-06

    基于MSP430單片機的實時多任務操作系統08-06

    嵌入式微內核實時操作系統分析與測試08-06

    嵌入式實時操作系統μC/OS-II與eCos的比較08-06

    RTLinux下的一種實時應用通信機制08-06

    国产福利萌白酱精品tv一区_日韩亚洲中字无码一区二区三区_亚洲欧洲高清无码在线_全黄无码免费一级毛片
    1. <code id="ya7qu"><span id="ya7qu"><label id="ya7qu"></label></span></code>

      <b id="ya7qu"><bdo id="ya7qu"></bdo></b>
      <wbr id="ya7qu"><optgroup id="ya7qu"><strike id="ya7qu"></strike></optgroup></wbr>
    2. <u id="ya7qu"><bdo id="ya7qu"></bdo></u>
      亚洲性爱免费视频在线 | 亚洲人在线成视频 | 免费观看国产v片在线 | 先锋资源免费视频在线观看 | 中文娱乐在线视频国产 | 中文字幕在线精品视频入口一区 |