關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于VxWorks的無人直升機控制系統設計

        基于VxWorks的無人直升機控制系統設計

        作者: 時間:2010-01-11 來源:網絡 收藏

        1.3 軟件
        的軟件包含四大部分:一是根據S3C44B0X重新配置系統的BSP。二是優先級的消息隊列實現,消息隊列中包含飛行狀態信息與自主定點飛行信息。三是看門狗與信號量的多任務調度,實現自主定點飛行與實時飛行狀態信息傳輸的功能。四是基站控制軟件的。系統上電后初始化socket套接字,網絡聯通后采用UDP協議通信。下面將著重介紹優先級的消息隊列與基于信號量與看門狗的多任務調度。

        2.3.1 基于優先級的消息隊列
        中,不能因為執行機載設備的數據傳輸命令而拒絕執行地面基站的自主飛行命令。為解決這一問題,本控制系統建立了基于優先級的消息隊列機制。系統在RAM中開辟一個區域用于建立消息隊列,隊列中指針指向的是各個信息的內存塊地址。各個任務將根據這些指針指向的數據來進行實際操作。

        (1)基于優先級的消息隊列方法。首先信息接收任務接收信息后根據信息頭地址內容判斷信息優先級,地面基站的自主飛行命令優先級為最高,把它插入到消息隊列的隊列頭,而機載電子羅盤與GPS發送的數據信息優先級低,按照時間順序排列在消息隊列的隊列尾。信息解釋任務從消息隊列頭逐一取出信息然后進行處理。

        (2)消息隊列的實現。通過單向鏈表來實現消息隊列的添加與刪除。每個鏈表元素是一個結構體struct messageChain,結構體包含頭指針pBuff與指向下一個元素的指針pNext。同時使用兩個全局變量直接表示鏈表頭與鏈表尾,一個全局變量表示鏈表長度,這

        樣可以直接處理鏈表頭或者鏈表尾的內容以簡化查找過程。

        2.3.2 基于看門狗的多任務調度
        系統可以為每個任務設定特定的任務名與任務優先級,系統支持256個優先級。為了調試的方便,在本控制系統中設定的任務優先級在60到100之間,這是因為由程序發起的任務優先級要高于Tornado開發環境中shell發起sp的任務優先級即小于100,同時也要低于系統任務的優先級即大于60【5】。控制系統包含了信息接收任務,信息解釋任務,信息發送任務,網絡監測任務,定時輪詢任務,自主飛行任務等多任務。流程圖見圖三。


        圖三 任務調度流程圖



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 突泉县| 喀什市| 得荣县| 岱山县| 广安市| 宣武区| 成安县| 武汉市| 东乡族自治县| 霍山县| 临武县| 清镇市| 报价| 阿坝| 潍坊市| 三门峡市| 建始县| 内乡县| 即墨市| 金山区| 焉耆| 偏关县| 杭锦旗| 大姚县| 文登市| 庄河市| 汉中市| 南陵县| 民和| 大埔区| 江陵县| 澳门| 灵璧县| 河曲县| 栾川县| 紫阳县| 舒兰市| 福州市| 灵山县| 台江县| 张北县|