国偷自产一区二区免费视频,美女免费视频一区,九九热线视频只有这里最精品,欧美日韩一区成人

 
?微信公眾號
手機版
??新浪微博
會員登錄
關(guān)于我們  |   商務(wù)合作  |  友情鏈接   |  意見反饋  |  人才招聘
北京云翼同創(chuàng)科技有限公司 深圳高博特文化發(fā)展有限公司   版權(quán)所有,并保留所有權(quán)利 ? 2018 京ICP備16044150號-1                       

跨界 · 融合 · 服務(wù) · 創(chuàng)新



雙擊此處添加文字
科普園地
首頁  > 新聞聚焦 > 科普園地  >  詳情 
基于uC/OS-II操作系統(tǒng)的無人機飛控系統(tǒng)軟件設(shè)計
來源:尖兵之翼 | 作者:史峰 何立明 馬曉峰 史中正 | 發(fā)布時間: 2021-12-08 | 10596 次瀏覽 | 分享到:
針對以往飛控系統(tǒng)軟件中代碼多,可靠性、實時性差,不具通用性等缺點,采用uC/OS-II操作系統(tǒng)設(shè)計無人機飛控軟件,利用......

基于uC/OS-II操作系統(tǒng)的無人機飛控系統(tǒng)軟件設(shè)計

史峰,何立明,馬曉峰,史中正

摘要:針對以往飛控系統(tǒng)軟件中代碼多,可靠性、實時性差,不具通用性等缺點,采用uC/OS-II操作系統(tǒng)設(shè)計無人機飛控軟件,利用操作系統(tǒng)來進行軟件中各任務(wù)的實時調(diào)度和通信。通過地面測試和空中試驗表明:該軟件系統(tǒng)具有可靠性高、實時性強等優(yōu)點, 滿足飛控系統(tǒng)軟件設(shè)計要求。

關(guān)鍵詞:飛控系統(tǒng); uC/OS-II;優(yōu)先級劃分;調(diào)度與通信

0、引言 

無人機飛行控制系統(tǒng)是一個復(fù)雜的多任務(wù)系統(tǒng), 要求不僅能夠與地面控制站雙向通信、采集傳感器數(shù)據(jù)、進行飛控/導(dǎo)航計算、驅(qū)動執(zhí)行機構(gòu)等, 還要求可靠性高、實時性強。傳統(tǒng)的飛控系統(tǒng)軟件大多按預(yù)先設(shè)定的順序循環(huán)執(zhí)行, 具有代碼多,可靠性、實時性差, 不具備通用性等缺點。

針對以上缺點,本文采用uC/OS-II操作系統(tǒng)開發(fā)無人機飛控軟件, 將復(fù)雜的處理任務(wù)交給操作系統(tǒng)進行實時調(diào)度,滿足無人機飛控系統(tǒng)實時、多任務(wù)的要求。

1、無人機飛控系統(tǒng)軟件總體設(shè)計

飛控系統(tǒng)軟件設(shè)計基本要求是:1)具有采集功能:能夠采集傳感器的值, 控制信號值和舵機當前狀態(tài)值;2)具有姿態(tài)解算功能:解算出當前無人機的姿態(tài)值;3)具有控制率計算功能:根據(jù)不同任務(wù)解算不同控制信號, 實現(xiàn)無人機自主導(dǎo)航;4)具有串口通信功能:接收GPS信息, 通過SD卡存儲信息, 與地面控制站進行信息交換;5)其他要求:具有遙控飛行、自動飛行2種飛行模式的切換功能, 具有系統(tǒng)自檢和墜毀監(jiān)控等功能。

整個系統(tǒng)的軟件流程圖如圖1所示:

 

圖1 飛控系統(tǒng)軟件流程圖

2、基于uC /OS-II操作系統(tǒng)的飛控軟件設(shè)計 

2.1 uC/OS-II操作系統(tǒng)簡介  uC/OS-II是目前世界上最小的操作系統(tǒng)內(nèi)核軟件,它由Labrosse JJ于1992年推出。具有內(nèi)核小、實時性強、穩(wěn)定性高、任務(wù)切換快、可移植性好等優(yōu)點,現(xiàn)已被眾多的研究者作為操作系統(tǒng)的樣板移植到各種硬件平臺上。

2.2 任務(wù)劃分和優(yōu)先級確定首先, 對飛控軟件進行任務(wù)劃分,將飛控系統(tǒng)軟件進行分解,形成相對獨立的程序模塊或功能函數(shù),并將它們設(shè)置為操作系統(tǒng)下的任務(wù),同時確定每個任務(wù)的優(yōu)先級。

根據(jù)飛控系統(tǒng)軟件流程圖, 將軟件分為4個模塊來設(shè)計,即系統(tǒng)初始化模塊、主控模塊、數(shù)據(jù)存儲模塊、通信模塊,每個模塊對應(yīng)一個優(yōu)先級不同的任務(wù)。其中, 主控模塊又包括數(shù)據(jù)采集、控制運算、控制率輸出3個子模塊。(1)初始化模塊的功能是開機自檢;(2)主控模塊:采集模塊的功能是通過串口和A/D轉(zhuǎn)換采集傳感器和GPS的值和地面站傳輸?shù)纳闲兄噶?;運算模塊的功能是進行姿態(tài)解算和控制率計算;輸出模塊的功能是把控制率輸出到驅(qū)動舵機;(3)數(shù)據(jù)存儲模塊的功能是將采集和控制計算的數(shù)據(jù)存儲到SD卡中;(4)數(shù)據(jù)通信模塊的功能是將采集和控制計算的數(shù)據(jù)通過數(shù)據(jù)鏈傳輸?shù)降孛婵刂婆_。

根據(jù)系統(tǒng)的功能要求,將軟件分成4個優(yōu)先級不同的任務(wù):第一個任務(wù)是初始化任務(wù)TaskIint( ) , 由初始化模塊構(gòu)成,該模塊的主要功能是系統(tǒng)自檢。這是整個程序中優(yōu)先級最高的任務(wù),優(yōu)先級定義為1,系統(tǒng)一上電就執(zhí)行這個任務(wù);第二個任務(wù)是TaskWork( ),這個任務(wù)的優(yōu)先級僅次于TaskIint( )任務(wù),優(yōu)先級定義為2,此任務(wù)由主控模塊構(gòu)成,是一個實時性較強的任務(wù)。這個任務(wù)是一個無限的循環(huán), 執(zhí)行周期為20ms;第三個任務(wù)是TaskDataMemory( ),由數(shù)據(jù)存儲模塊構(gòu)成,這個任務(wù)是優(yōu)先級較低的任務(wù),優(yōu)先級定義為3;第四個任務(wù)是TaskDataTransfer( ),由數(shù)據(jù)通信模塊構(gòu)成,是程序中優(yōu)先級最低的任務(wù),優(yōu)先級定義為4。

2.3 任務(wù)的調(diào)度與通信任務(wù)建立完成后,要能夠協(xié)調(diào)地工作、完成系統(tǒng)功能,需要對任務(wù)進行調(diào)度和通信。任務(wù)間的調(diào)度是指內(nèi)核決定多任務(wù)中該輪到哪個任務(wù)的運行。uC/OS-II操作系統(tǒng)中的任務(wù)狀態(tài)分為睡眠態(tài)任務(wù)、就緒態(tài)任務(wù)、等待狀態(tài)任務(wù)、運行態(tài)任務(wù)和被中斷的任務(wù)5個狀態(tài), uC/OS-II是基于優(yōu)先級調(diào)度法的可剝奪型內(nèi)核,即是指CPU總是讓處于就緒態(tài)的、優(yōu)先級最高的任務(wù)先運行。

任務(wù)間的通信是指任務(wù)間或中斷服務(wù)與任務(wù)間的信息傳遞。任務(wù)間的通信方式有信號量管理、互斥型信號量管理、事件標志組管理、消息郵箱管理、消息隊列管理和內(nèi)存管理。本文采用消息郵箱管理,典型的消息信箱也稱作交換消息,使用一個指針型變量, 通過內(nèi)核服務(wù),一個任務(wù)或一個中斷服務(wù)子程序通過內(nèi)核服務(wù)可以將一則消息放到郵箱里去。同樣, 一個或多個任務(wù)通過內(nèi)核服務(wù), 可以接收這則消息。當任務(wù)接到消息之后, 狀態(tài)變?yōu)榫途w態(tài)任務(wù),等到其優(yōu)先級變?yōu)樽罡邥r執(zhí)行該任務(wù)。

本系統(tǒng)中定義的4個任務(wù)的調(diào)度和通信是這樣實現(xiàn)的:系統(tǒng)上電后執(zhí)行的第一個任務(wù)TaskIint( ) ,所以,在初始化任務(wù)執(zhí)行完成并返回正常的情況下,利用uC/OS-II的OSTaskDel( ) 函數(shù)將這個任務(wù)返回并處于休眠狀態(tài)。此時,TaskWork( )成為優(yōu)先級最高的任務(wù),將會一直執(zhí)行。由于程序運行本身并不占用太多時間,所以,使用OSTimeDly( )函數(shù)進行延時20ms,即任務(wù)TaskWork( ) 將自己掛起20ms,將CPU的控制權(quán)交給其他任務(wù)。任務(wù)TaskDataMemory( )的運行周期為120ms,即當任務(wù)TaskWork( )執(zhí)行6次后,向任務(wù)TaskDataMemory( )發(fā)送一次消息, 消息中包含需要存儲的數(shù)據(jù),任務(wù)TaskDataMemory ( ) 接收到消息后,等到任務(wù)TaskWork( )將自己掛起時執(zhí)行。任務(wù)TaskDataTransfer( )的運行周期為1s,當任務(wù)TaskWork( )執(zhí)行50次后, 向任務(wù)TaskDataTransfer( )發(fā)送一次消息, 消息中包含需要向地面站發(fā)送的數(shù)據(jù), 任務(wù)TaskDataMemory( ) 接收到消息后,等到任務(wù)TaskWork ( ) 將自己掛起時執(zhí)行。因為任務(wù)TaskDataMemory ( ) 和TaskDataTransfer ( ) 運行時間很短,在TaskWork( ) 掛起20ms中執(zhí)行完畢,不會出現(xiàn)運行過程中被高優(yōu)先級任務(wù)搶奪CPU控制權(quán)的現(xiàn)象。主函數(shù)偽代碼如下:

 

TaskIint( )偽代碼如下:

 

TaskWork( )偽代碼如下:

 

TaskDataMemory( )偽代碼如下:

 

TaskDataTransfer( )偽代碼如下:

 

3、試飛試驗

將該飛控系統(tǒng)軟件燒錄進無人機飛控計算機中進行試飛試驗, 讓無人機進行簡單的自主控制直線飛行和轉(zhuǎn)彎飛行, 并通過地面控制站采集飛機飛行狀態(tài)數(shù)據(jù)。地面控制站接收到的數(shù)據(jù)如圖2所示。通過試飛試驗發(fā)現(xiàn)軟件系統(tǒng)運行穩(wěn)定, 各模塊工作穩(wěn)定, 達到設(shè)計要求。

 圖2 地面控制站接收到的數(shù)據(jù) 

4、結(jié)束語

通過地面測試和空中試驗表明:該軟件系統(tǒng)完全可以滿足飛控系統(tǒng)軟件設(shè)計的基本要求, 并具有代碼量少、程序結(jié)構(gòu)層次清晰、可靠性高、實時性強等優(yōu)點,為飛控系統(tǒng)軟件開發(fā)提供了一個較好的參考方法。


參考文獻:[ 1 ]  張明廉. 飛行控制系統(tǒng)[M] . 北京: 國防工業(yè)出版社, 1994.[ 2 ]  無人機系統(tǒng)導(dǎo)論[M] . 吳漢平, 譯. 北京: 電子工業(yè)出版社,2003.[ 3 ]  嵌入式實時操作系統(tǒng)uC/OS-II[M] . 邵貝貝, 譯. 北京: 北京航空航天大學(xué)出版社, 2003.

作者簡介:史峰(1983- ) ,男,安徽蚌埠人,碩士研究生,主要從事無人機飛控系統(tǒng)軟件與硬件設(shè)計。


主站蜘蛛池模板: 万载县| 辽宁省| 美姑县| 临江市| 修武县| 封开县| 顺平县| 理塘县| 黄石市| 河西区| 邛崃市| 休宁县| 岗巴县| 林州市| 台北市| 淅川县| 阿拉尔市| 泰和县| 金平| 东乌珠穆沁旗| 行唐县| 孝感市| 北流市| 山阳县| 安龙县| 喀什市| 秦皇岛市| 肃北| 酒泉市| 岐山县| 双柏县| 永丰县| 安徽省| 清水河县| 井陉县| 孟州市| 黄骅市| 松潘县| 海宁市| 平利县| 遂昌县|