<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 實(shí)時(shí)操作系統在星載計算機中的應用

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

作者: 時(shí)間:2007-03-09 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:介紹在星載計算機中應用實(shí)時(shí)操作系統的兩種方式:使用一種源碼開(kāi)放的RTOS——RTEMS和自主開(kāi)發(fā)RTOS,并對兩種方法進(jìn)行比較。 關(guān)鍵詞:實(shí)時(shí)操作系統 星載計算機 RTOS 隨著(zhù)我國航天技術(shù)的不斷發(fā)展,越來(lái)越多的衛星應用在通訊、資源探測、遙感、氣象、對地觀(guān)察等領(lǐng)域。衛星的功能越來(lái)越強,對星務(wù)管理和有效載荷控制的星載計算機提出了更高的要求。星載計算機軟硬件系統日趨復雜,傳統的星載計算機軟硬件設計方法,特別是軟件的設計方法和開(kāi)發(fā)手段已逐漸不適應這種要求。引入實(shí)時(shí)操作系統(RTOS)能夠有效地解決這些問(wèn)題。RTOS把任務(wù)管理調度、任務(wù)間通信、內存管理等系統功能以函數調用的方式提供給用戶(hù),使用戶(hù)能夠將精力放在應用程序的開(kāi)發(fā)上,有助于星載軟件通用化和模塊化設計,縮短軟件產(chǎn)品的研制周期,提高星載軟件 可靠性。 RTOS已經(jīng)成功運用在包括航天在內的許多領(lǐng)域,如SJ-5小衛星就成功應用了pSOS操作系統。但這種無(wú)法獲得源碼的操作系統,無(wú)法確定其安全性。因此應該選用源碼開(kāi)放的RTOS或者自己獨立設計一種適合自身系統的RTOS。本文將介紹一種適合于航天應用,特別是面向關(guān)鍵任務(wù)(Critical Oriented)的源碼開(kāi)放的RTOS——RTEMS;探索自己開(kāi)發(fā)RTOS設計方法,并對兩種方案進(jìn)行比較。 1 星載計算機與星載操作系統的特點(diǎn) 星載計算機是RTOS運行的硬件環(huán)境,了解其特點(diǎn)對于RTOS的選用和設計將更有針對性。星載計算機主要用于衛星的星務(wù)管理、數據處理、姿態(tài)控制以及對有效載荷進(jìn)行控制等。根據空間環(huán)境、可靠性、安全性、壽命、功耗、重量等方面的要求,星載計算機應具有如下特點(diǎn): %26;#183;硬件資源有限,受功耗、尺寸的限制,星載計算機只有有限的內存空間; %26;#183;CPU型號多樣,但不屬于通用型CPU,配套的調試工具少。從8位的8031到16位的1750A、8086,到32位的ERC32、80X86,不同的型號任務(wù),不同的研制單位采用不同的CPU型號; %26;#183;需要考慮空間抗輻射能力,必須考慮單粒子翻轉(SEU)和單粒子鎖定(SEL)對星載計算機的影響; %26;#183;對安全性與可靠性要求高; %26;#183;需要具有在軌可編程功能,對在地面考慮不周和出現意外情況時(shí),能有所補救。 針對星載計算機的這些特點(diǎn),星載操作系統也具有如下特征: %26;#183;微內核,由于硬件資源有限,因此星載RTOS必須做成微內核的操作系統; *可裁減,能夠根據不同的應用對操作系統進(jìn)行不同的配置,做到量體裁衣,也能更充分地利用硬件資源,減少軟件多余物; %26;#183;強實(shí)時(shí)性,星載系統都是強實(shí)時(shí)系統,對實(shí)現性要求很高; %26;#183;高穩定性與高可靠性; %26;#183;代碼可固化,在現在的星載計算機中仍然采用PROM對代碼進(jìn)行固化,這就要求星載RTOS必須是代碼可固化的。2 采用RTEMS作為星載實(shí)時(shí)操作系統 2.1 RTEMS實(shí)時(shí)操作系統 RTEMS(Real-Time Executive for Multiprocessor Systems)實(shí)時(shí)操作系統最初是美國軍方為了實(shí)時(shí)導彈系統而開(kāi)發(fā)的。當時(shí)RTEMS的全稱(chēng)是:Real-Time Executive for Missile Systems。隨著(zhù)該系統功能的逐步完善,應用范圍也從Missile擴大到Military,再到Multiprocessor,而形成現在的RTEMS。RTEMS從1993年開(kāi)始開(kāi)發(fā),并于1999年開(kāi)始地外開(kāi)放源代碼,并由OAR公司進(jìn)行維護和升級?,F在最新版本為4.6.0,在OAR的網(wǎng)站(www.oarcorp.com)上可以下載到相關(guān)資源。RTEMS由于具有開(kāi)放源代碼的優(yōu)勢,以及能與最優(yōu)秀的商業(yè)RTOS相的性能,使得它最適合應用到星載計算機中。RTEMS有如下特點(diǎn): %26;#183;支持多處理器; %26;#183;支持事件驅動(dòng)和基于優(yōu)先級的多任務(wù)實(shí)時(shí)系統; %26;#183;支持優(yōu)先級同級調度,支持單調速率(RMS)算法; %26;#183;支持多種任務(wù)間通信與同步方法; %26;#183;支持中斷管理; %26;#183;支持動(dòng)態(tài)內存分配與管理; %26;#183;支持符合POSIX標準的文件系統; %26;#183;支持多種網(wǎng)絡(luò )協(xié)議,RTEMS帶有完整的TCP/IP協(xié)議棧,具有強大的網(wǎng)絡(luò )功能; %26;#183;RTEMS提供了符合POSIX1003.1b標準,以及ITRON規范的API接口; %26;#183;RTEMS支持C/Ada語(yǔ)言; %26;#183;RTEMS現在能支持包括ERC32(歐空局用于航天項目的CPU)在內的11種類(lèi)型的CPU(包括Motorola MC68K系列、ColdFire、Hitachi SH、intel i386、i960、MIPS、PowerPC、SPARC、AMD、A29K、HP PA-RISC)。 2.2 RTEMS的使用與開(kāi)發(fā)方法 RTEMS的開(kāi)發(fā)工具采用GNU的相關(guān)開(kāi)發(fā)工具,但需要打上RTEMS的補丁。如編譯器采用GCC,調試工具采用GDB。 用戶(hù)編寫(xiě)應用程序,就是根據RTEMS提供的系統服務(wù),通過(guò)API調用編寫(xiě)任務(wù)程序。RTEMS提供的系統服務(wù)相當豐富,包括:任務(wù)管理、中斷管理、時(shí)鐘管理、定時(shí)器管理、信號量服務(wù)、消息服務(wù)、事件服務(wù)、信號服務(wù)、內存分區(Partition)與區域(Region)管理、雙口內存管理、I/O管理以及多任務(wù)調度等。 當需要將開(kāi)發(fā)完成的程序向硬件板卡下載時(shí),還需要修改BSP板級支持包文件。BSP部分是與硬件相關(guān)的,把BSP作為單獨的一部分是為了使RTEMS具有更好的可移植性。因為相同的代碼,加上不同的BSP就可以應用到不同的CPU板上。 在調試程序時(shí),可以先把串口打通,這樣可以方便下載程序,也可以利用GDB工具或者它的圖形界面方式DDD調試程序。方便軟件的開(kāi)發(fā)與調試。 采用RTEMS操作系統的開(kāi)發(fā)方法,可以不用關(guān)心操作系統內部如何實(shí)現多任務(wù)之間的協(xié)調工作等RTOS具體的技術(shù)細節,只需要按照RTOS提供的API調用系統服務(wù)即可。能夠充分利用成熟的技術(shù),快速開(kāi)發(fā)星載軟件。但也有一定局限性,RTEMS是屬于比較復雜的RTOS,至少需要60KB左右的內存空間才能使系統運轉起來(lái)。因此對硬件要求相對苛刻一些。而且有些CPU,RTEMS還不支持,如國內在航天領(lǐng)域常用的1750ACPU,RTEMS就不不支持。 因此,使用RTEMS有一定的局限性,當RTEMS不適合使用時(shí),可以考慮自行研制星載實(shí)時(shí)操作系統。下面以筆者開(kāi)發(fā)的SAR-RTOS為例介紹星載實(shí)時(shí)操作系統的設計。 3 星載實(shí)時(shí)操作系統的設計 3.1 實(shí)時(shí)操作系統內核的原理 實(shí)時(shí)操作系統(RTOS)的核心是其內核。筆者認為:通用操作系統的本質(zhì)特點(diǎn)是硬件資源的管理者,而RTOS的本質(zhì)特點(diǎn)是引入了多任務(wù)和實(shí)時(shí)性的保證。當然引入多任務(wù)也是提高實(shí)時(shí)性的一種方法。實(shí)時(shí)性的保證主要是靠任務(wù)調度方法和任務(wù)調度時(shí)機來(lái)決定。引入多任務(wù)相應地帶來(lái)了任務(wù)競爭與同步、任務(wù)的切換等問(wèn)題。而這些問(wèn)題在現代操作系統理論里已經(jīng)有了比較完備的解決方案。 實(shí)時(shí)操作系統內核原理,概括起來(lái)就是:引入了多任務(wù),并且為每個(gè)任務(wù)分配自己的堆??臻g,由任務(wù)調度器來(lái)決定讓哪個(gè)任務(wù)獲得CPU。被掛起的任務(wù)把當前的CPU狀態(tài)保存在自己的堆棧區中,獲得CPU的任務(wù)把它被掛起時(shí)保存的CPU寄存器從堆棧區中恢復,這樣新任務(wù)就從掛起時(shí)的狀態(tài)重新執行,從而完成了一次任務(wù)切換。而信號量、消息隊列、郵箱、事件等系統提供的服務(wù)是為了解決多任務(wù)間對資源的競爭以及任務(wù)間的通信和同步。它們的共同點(diǎn)是從實(shí)現的角度,有效為復雜的數據結構作支撐,而對于用戶(hù)來(lái)講用法很簡(jiǎn)單。例如信號量(Semaphore),建立好(Create)后,對其進(jìn)行的操作就只有等信號(Pend)和發(fā)展信號(Post)。 3.2 星載實(shí)時(shí)操作系統的設計要素 (1)總體設計 星載RTOS的設計屬于復雜的軟件設計,因此應該按照軟件工程規定的V型模型的開(kāi)發(fā)方法實(shí)話(huà)開(kāi)發(fā)。在總體設計中,應確定操作系統的結構、支持的任務(wù)數、采用的調度方案、提供哪些系統服務(wù)等問(wèn)題。在SARRTOS的體系結構設計中采用了將整體式和客戶(hù)/服務(wù)器模型結合的方法。將它定義為四個(gè)層次:硬件層、硬件接口層、OS層和應用層,如圖1所示。 (2)任務(wù)調度 為了保證系統的實(shí)時(shí)性,可以采用基于優(yōu)先級的搶占式調度,也就是一旦更高優(yōu)先級的任務(wù)就緒,就能獲得CPU的使用權,使任務(wù)響應時(shí)間最短。SAR-RTOS中就是采和了這種調度方案,調度時(shí)間確定、速度快、實(shí)時(shí)性好。SAR-RTOS中關(guān)于任務(wù)管理的實(shí)現方法為:考慮到星載系統的ROM和RAM資源有限,為了保證SAR-RTOS的微內核性,將其設計為最多能支持64個(gè)任務(wù)。給每個(gè)任務(wù)賦予不同的優(yōu)先級,以?xún)?yōu)先級為基礎建立任務(wù)就緒表。當某個(gè)任務(wù)就緒時(shí),將就緒表中相應位置位,執行任務(wù)調度時(shí)按照優(yōu)先級矢量位圖算法查找任務(wù)就緒表,找出最高優(yōu)先級任務(wù),執行任務(wù)切換。 任務(wù)切換需要完成以下工作,但需要注意的是執行任務(wù)切換屬于臨界區代碼(不可被中斷),必須關(guān)中斷,切抽象完成后再開(kāi)中斷: *判斷需要調度的任務(wù)是否是當前正在運行的任務(wù),如果是就不切換,避免不必要的切換,縮短CPU執行時(shí)間; *將被掛起的任務(wù)CPU寄存器壓入堆棧; *將當前堆棧指針保存在即將掛起任務(wù)的任務(wù)控制塊中; *把高優(yōu)先級任務(wù)的CPU寄存器從堆棧中恢復; *將高優(yōu)先級任務(wù)的任務(wù)控制塊中保存的堆棧指針恢復; *執行中斷返回指令,讓高優(yōu)先級任務(wù)運行。 (3)任務(wù)管理 任務(wù)在RTOS中通常同時(shí)作為系統調度和資源分配的最小單位,也是用戶(hù)編寫(xiě)應用程序的基礎,對任務(wù)的管理是RTOS最基本的功能。對任務(wù)的管理內容包括任務(wù)狀態(tài)的設計以及任務(wù)狀態(tài)變遷的實(shí)現。在SAR-RTOS中任務(wù)的狀態(tài)總共有四種,如表1所示。表1 SAR-RTOS中的任務(wù)狀態(tài) 運行態(tài)(Running)任務(wù)占有CPU,并得以執行的狀態(tài)就緒態(tài)(Ready)任務(wù)已經(jīng)具備運行的條件,等待內核調度阻塞態(tài)(Block)任務(wù)由于某種原因被迫放棄CPU的使用休眠態(tài)(Dormant)任務(wù)不具備爭取CPU的使用資格的狀態(tài),也就是說(shuō)不會(huì )被調度任務(wù)狀態(tài)的變遷如圖2所示。 (4)任務(wù)間通信與同步 任務(wù)間的同步與通信是多任務(wù)操作系統都需要解決的問(wèn)題。實(shí)時(shí)操作系統的核心就是要支持多任務(wù)的并發(fā)執行,相應地也就引入了任務(wù)與任務(wù)之間、任務(wù)與中斷服務(wù)程序之間必須協(xié)調動(dòng)作、相互配合的問(wèn)題。即常說(shuō)的任務(wù)間的同步與通信問(wèn)題。所謂任務(wù)間的同步是指多個(gè)任務(wù)中發(fā)生的事件存在某種時(shí)序關(guān)系,必須協(xié)同動(dòng)作、相互配合,以共同完成一個(gè)任務(wù)。任務(wù)間通信就是任務(wù)在運行時(shí)與別的任務(wù)進(jìn)行信息交換。其實(shí),同步本質(zhì)上也是一種信息交換,是為了保證在正確的時(shí)間和條件下進(jìn)行信息交換,使任務(wù)間不會(huì )產(chǎn)生混亂。在現場(chǎng)操作系統中已經(jīng)對任務(wù)的同步與通信有比較完備的解決辦法。信號量以及事件機制等都是RTOS常用的同步機制,RTOS為任務(wù)間通信提供郵箱及消息隊列等服務(wù)。 在SAR-RTOS中,提供的任務(wù)間通信的服務(wù)包括:消息郵箱(Message Mailbox)和消息隊列(Message Queue);提供的任務(wù)間同步的服務(wù)包括:信號量(Semaphore)和事件標志(Event Flag)。 (5)時(shí)間管理 RTOS由于其實(shí)時(shí)性,在系統運行過(guò)程中必須提供可靠的時(shí)間保證,因此RTOS通常都在硬件定時(shí)器的基礎上提供系統時(shí)鐘服務(wù)。每一個(gè)時(shí)鐘滴答(Tick)就是一次系統的脈動(dòng),指揮系統各部分協(xié)調工作,因此定時(shí)管理是RTOS的基礎。時(shí)間管理一般提供以下功能: *管理日歷時(shí)間和日期,有的系統也可以是相對時(shí)間; *任務(wù)等候消息、信號量、事件的超時(shí)時(shí)間或者任務(wù)長(cháng)期占用CPU的超時(shí)時(shí)間; *在預定時(shí)間間隔或指定時(shí)間到達后喚醒一個(gè)指定任務(wù)。 (6)其它服務(wù) 內存管理和I/O管理,以及中斷管理等服務(wù)不是系統必需的服務(wù),可根據不同的應用需要決定是否提供上述服務(wù),在SAR-RTOS中上述三種服務(wù)都提供。 (7)星載操作系統的可靠性措施 星載軟件的可靠性設計是關(guān)鍵,通??梢圆捎萌缦麓胧? *將任務(wù)的重要參數以“三取二”的方式保存在任務(wù)控制塊中; *通過(guò)任務(wù)的狀態(tài)檢查,對檢測不正常的任務(wù)進(jìn)行相應的出錯處理; *采用看門(mén)狗技術(shù),實(shí)現冷熱啟動(dòng)的判定。當盾門(mén)狗啟動(dòng)后,從程序跑飛的地方自動(dòng)往下執行; *可以在內存中開(kāi)辟一段系統內存區,定時(shí)將CPU環(huán)境和主要參數放入其中。 4 兩種方法的比較 選用成熟的RTOS(如RTEMS)可以有效地縮短開(kāi)發(fā)周期,代碼質(zhì)量可以得到保證;自行開(kāi)發(fā)RTOS代碼需要經(jīng)過(guò)嚴格的測試,難度相對更大,開(kāi)發(fā)周期更長(cháng)。但可以根據需要增減相關(guān)功能,有更大的靈活性。如果使用RTEMS支持的CPU,那么推薦使用RTEMS作為星載軟件的開(kāi)發(fā),畢竟RTEMS經(jīng)過(guò)了十多年的驗證,源代碼公開(kāi)也有幾年的時(shí)間,這樣的代碼質(zhì)量和可靠性應該是很高的。如果由于條件限制不能使用RTEMS,可以自行研制星載RTOS,但必須按照軟件工程的開(kāi)發(fā)方法,從設計、編程到測試,每一項都需要嚴格把關(guān)。 把RTOS引腳到星載計算機系統,能使星載軟件從傳統的單線(xiàn)程前后臺系統轉向多任務(wù)編程,不至于一個(gè)環(huán)節的失效就引起整個(gè)軟件的失效,增加了可靠性。另一方面,使用操作系統后,使星載軟件的平臺軟件和功能軟件分離,用戶(hù)可以集中精力編寫(xiě)應用程序,提高開(kāi)發(fā)效率。而且如果使用相同的RTOS,一些通用的模塊或任務(wù)可以在不同型號繼承和使用,提高軟件的復用性。引入 星載RTOS將帶來(lái)星載軟件開(kāi)發(fā)的一次技術(shù)變革。 linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>