基于天脈1型嵌入式操作系統光纖航姿軟件開(kāi)發(fā)
作者簡(jiǎn)介:張斌(1973—),男,碩士,高級工程師,現從事嵌入式系統航空軟件開(kāi)發(fā)及機載慣性導航技術(shù)研究。
0 引言
斯諾登的棱鏡門(mén)和中興事件曝光后,如何在國防裝備中采用國產(chǎn)系統以提高裝備自主性、安全性,防范可能存在的漏洞和后門(mén),已經(jīng)成為國防裝備戰線(xiàn)迫切需要解決的問(wèn)題。
天脈1 型嵌入式操作系統(簡(jiǎn)稱(chēng):天脈1,英文名:ACoreOS1.X)是航空工業(yè)西安航空計算所研發(fā)的針對航空、航天應用需求而設計的具有完全自主知識版權的嵌入式國產(chǎn)操作系統[1];是在航空、航天等對系統實(shí)時(shí)性、安全性、可靠性有極高需求的領(lǐng)域中使用的嵌入式操作系統。目前,天脈1 嵌入式操作系統已在我國多型軍、民用航空裝備上得到廣泛應用。本文介紹了基于天脈1 操作系統設計的光纖航姿系統的組成和原理,描述了光纖航姿軟件的任務(wù)劃分、任務(wù)調度。
1 天脈1操作系統簡(jiǎn)介
天脈1 采用標準C 語(yǔ)言與匯編語(yǔ)言混合開(kāi)發(fā),按照GJB 和DO-178B 進(jìn)行研發(fā)和測試,是一款面向多任務(wù)應用的強實(shí)時(shí)嵌入式系統平臺,能夠協(xié)助編程者管理嵌入式系統硬件資源,顯著(zhù)降低應用軟件開(kāi)發(fā)和維護難度。
天脈1 主要有如下功能:
● 采用微內核設計,組件可配置、裁剪;
● 支持PPC、x86、ARM 等主流處理器,支持龍芯、飛騰等國產(chǎn)處理器;
● 采用層次化微結構,微內核和硬件相隔離開(kāi)來(lái),方便硬件平臺的升級;
● 存儲管理支持MMU 存儲保護,關(guān)鍵數據區用戶(hù)可進(jìn)行防篡改保護;
● 采用實(shí)時(shí)多任務(wù)調度,支持優(yōu)先級搶占和時(shí)間片輪轉,任務(wù)切換以及中斷響應可達到微秒級;
● 提供消息隊列、環(huán)形緩沖等多種任務(wù)間通信機制,提供信號量、事件等任務(wù)同步機制;
● 支持對高速數據/ 指令緩存(CACHE)的管理;
● 支持周期任務(wù);
● 提供與VxWorks 兼容的API 接口。
天脈1 在應用系統中處于硬件層和應用層之間的中間位置,如圖1 所示,其主要任務(wù)是管理計算機板軟、硬件資源,并為應用軟件的運行提供服務(wù)。
對于CPU 硬件,天脈1 提供MSL 層軟件管理計算機板硬件設備;對于應用軟件,操作系統負責應用軟件的管理,主要實(shí)現應用任務(wù)的調度、系統硬件資源的分配,為應用軟件提供必要的運行設備。天脈1 依據ASAAC 標準所定義三層軟件架構進(jìn)行設計開(kāi)發(fā)而成,其包含硬件模塊支持層(MSL),操作系統層(OSL)及應用軟件層(APL)。三層結構相互獨立,互相分隔,OSL 層和OSL 層組件可配置、裁剪,提供靈活的硬件及空間配置,開(kāi)發(fā)人員可根據軟件及硬件特點(diǎn)進(jìn)行針對性開(kāi)發(fā)設計[2]。
圖1 天脈1操作系統體統結構
天脈1 相比其它操作系統具有以下幾個(gè)核心優(yōu)勢。
(1) 實(shí)時(shí)性強
天脈1 的任務(wù)切換和中斷響應時(shí)間可達微秒級;其采用了優(yōu)先級搶占、同優(yōu)先級時(shí)間片輪轉算法,確保任務(wù)的實(shí)時(shí)性;采用優(yōu)先級位圖法、最小化任務(wù)法切換開(kāi)銷(xiāo);通過(guò)匯編實(shí)現的中斷處理代碼以及中斷嵌套機制,實(shí)現對外部事件的實(shí)時(shí)響應及處理要求。
(2) 可裁剪性
天脈1 開(kāi)發(fā)環(huán)境采用中文的圖形界面,使用圖形化界面進(jìn)行環(huán)境配置和裁剪,最小可運行環(huán)境配置不大于256 kb;提供的圖形、網(wǎng)絡(luò )協(xié)議棧、多種文件系統、USB、SATA 等常用組件裁剪、配置。
(3) 可靠性
天脈1 采用基于存儲管理單元(MMU) 的存儲保護機制,用戶(hù)可以對指定的區域的代碼/ 數據空間進(jìn)行讀/ 寫(xiě)保護,可以從內核層面阻止地址空間的非法訪(fǎng)問(wèn);提供錯誤接管機制,支持用戶(hù)對操作系統和應用軟件的錯誤加以接管;采用優(yōu)先級天花板和優(yōu)先級繼承策略處理任務(wù)優(yōu)先級翻轉,確保高優(yōu)先級任務(wù)優(yōu)先執行;提供硬件資源泄露預防措施和空間冗余策略,保證硬件資源的回收和配置數據的正確性。
(4) 可移植性
天脈1 向用戶(hù)提供VxWorks 兼容包,方便用戶(hù)將原先運行在VxWorks 操作系統上的應用軟件移植到天脈1 上,代碼修改比例一般不超過(guò)千分之四,提供C/C++ 語(yǔ)言支持,用戶(hù)可以根據項目構架的設計自由選擇。
(5) 適應性強
天脈1 支持PPC、x86、ARM 等主流處理器,支持龍芯、飛騰等國產(chǎn)處理器,提供典型的設備驅動(dòng)模塊可為/ 協(xié)助用戶(hù)定制專(zhuān)用驅動(dòng)模塊,并向用戶(hù)提供可擴展接口,針對異常處理提供用戶(hù)自行擴展;天脈1 中應用程序、操作系統分別位于A(yíng)PL 層和OSL 層,模塊支持層(MSL)將兩者相連接,各層可獨立升級、維護。這樣使用戶(hù)可以專(zhuān)注于應用軟件的開(kāi)發(fā)。
2 光纖航姿的組成和原理
光纖航姿系統是基于光纖陀螺感測技術(shù)以及捷聯(lián)計算技術(shù)而設計的航向姿態(tài)系統。系統采用光纖陀螺、加速度計和捷聯(lián)磁傳感器作為敏感元件來(lái)感測飛機飛行過(guò)程中沿機體三個(gè)軸向上的運動(dòng)角速率、線(xiàn)加速度信號及地磁信號分量,經(jīng)相應電子線(xiàn)路量化、補償后傳輸給產(chǎn)品中的航姿解算計算機,由航姿解算計算機解算得出飛機的航向、姿態(tài)等信號。同時(shí)系統通過(guò)總線(xiàn)接口接收機上北斗系統輸出緯度等數據,并將捷聯(lián)解算得到的航向、姿態(tài)以及系統工作狀態(tài)字等數字信號通過(guò)RS422 接口發(fā)送至機上其它設備,系統組成結構見(jiàn)圖2 所示。
捷聯(lián)計算的原理框圖如圖3 所示。
3 光纖航姿軟件應用軟件設計
由光纖航姿的組成和原理可知,光纖陀螺輸出的角速率信號必須通過(guò)精確定時(shí)積分計算才能獲得正確航向和姿態(tài)數據。
光纖航姿軟件應用軟件分成5 個(gè)模塊:初始化模塊、IMU 數據采集模塊、周期BIT 模塊、捷聯(lián)解算模塊和數據I/O 模塊[3]。
同時(shí)采用天脈系統特有的周期任務(wù)將IMU 數據采集任務(wù),捷聯(lián)解算任務(wù),數據輸入/ 輸出任務(wù)以及周期BIT 任務(wù)分別設計為4 個(gè)周期任務(wù),如表1。
所謂的周期任務(wù)是指每隔相等的時(shí)間間隔就必須就緒的任務(wù);天脈中的周期任務(wù)時(shí)間間隔具有硬時(shí)限,周期的值被認為是恒定不變的,并且任務(wù)兩次就緒的時(shí)間只能等于周期。在周期任務(wù)中,操作的對象是“任務(wù)”。周期任務(wù)調度與普通調度的區別在于:普通的調度側重維護一個(gè)獨立的執行體——任務(wù),使其作為一個(gè)獨立的邏輯單元,維護其走走停停執行的正確性;而周期任務(wù)調度的側重點(diǎn)不僅是維護這樣一個(gè)邏輯單位,周期任務(wù)增加了一個(gè)更重要、更核心的屬性——周期,有了周期的要求后,系統的所有行為,比如狀態(tài)轉換、調度切換都是圍繞“周期”這個(gè)核心發(fā)生的[4]。
4 個(gè)任務(wù)在同步啟動(dòng)時(shí)刻(初始化完成后的0 時(shí)刻)都就緒,然后根據優(yōu)先級搶占的調度方式開(kāi)始運行(IMU數據采集周期任務(wù)、捷聯(lián)解算周期任務(wù)、數據I/O 周期任務(wù)、周期BIT 周期任務(wù)依次運行)。
周期任務(wù)使用注意事項:
● 任務(wù)的預期執行時(shí)間必須小于任務(wù)周期;
● 任務(wù)之間不能存在同步和競爭。
4 結語(yǔ)
本文對天脈1 的內核特點(diǎn)、應用開(kāi)發(fā)環(huán)境和多任務(wù)調度方式進(jìn)行了分析,結合光纖航姿系統功能需求,對光纖航姿軟件的功能模塊進(jìn)行了劃分與設計,采用天脈1 特有的周期任務(wù)對光纖航姿軟件的任務(wù)進(jìn)行了劃分和優(yōu)先級的設置。經(jīng)地面測試和飛行試驗驗證,基于天脈1 的光纖航姿軟件穩定可靠、實(shí)時(shí)性強,可滿(mǎn)足光纖航姿系統功能、性能、可靠性、安全性要求。采用本文介紹的方法、思路進(jìn)行導航類(lèi)軟件設計、開(kāi)發(fā),能夠明顯降低軟件設計難度、有效保證產(chǎn)品實(shí)時(shí)性和可靠性,對相似嵌入式軟件開(kāi)發(fā)具有一定借鑒意義。
參考文獻:
[1] 天脈技術(shù)白皮書(shū)[Z].
[2] ACoreOS機載嵌入式實(shí)時(shí)操作系統參考手冊[Z].
[3] 徐海榮,趙鳴,陳閩葉,等.嵌入式軟件系統的一種層次設計方法[J].現代電子技術(shù),2005(16):29-30,36.
[4] ACoreOS機載嵌入式實(shí)時(shí)操作系統程序員手冊[Z].
(本文來(lái)源于《電子產(chǎn)品世界》雜志2021年3月期)
評論