基于DSP的無人飛行器飛行控制系統設計
4.系統軟件設計
軟件系統采用T I公司DSP集成開發工具CCS中集成的嵌入式實時操作系統DSP /B IOS, 采用C語言與匯編語言混合編程實現。
系統初始化模塊設定SJA1000 的工作模式, 且其初始化只能在復位模式下進行。初始化流程圖如圖4所示。

圖4 初始化流程框圖。
系統控制流程圖如圖5所示。數據存儲放置在任務線程中, 其過程是將飛行數據分析結果等值存儲在F lash 中。檢測任務線程可以通過周期函數PRD來完成。PRD 可以根據實時時鐘來確定函數運行的時間。這里, 設置檢測任務100m s運行1次。

圖5 系統控制流程圖。
所有任務的啟動都和飛控系統總線上的小周期計數息息相關, 其中與接收總線數據相關的任務都是由消息分發線程啟動, 當接收的消息為PSP發送的同步數據碼時, 終端對象同步自己的小周期計數, 并按現在所處的小周期啟動相應的任務。所有的任務都包含在消息處理線程中, 每個終端都有一個這樣的線程, 各個線程獨立工作, 使各個終端處于并行工作方式。系統全部邏輯控制功能, 均采用周期運行方式, 每隔10ms由定時中斷程序喚醒。利用CPLD 進行邏輯運算及數據處理, 并檢測模擬量輸入信號, 判斷各監控對象的工作狀態并按照系統控制邏輯決定輸出量。在其狀態發生變化時通知DSP, 協助DSP完成系統的自檢測功能。在狀態監測中, 將當前檢測到的狀態量與存儲的上一個狀態量相比較, 如果兩次狀態相同, 則不進行任何操作; 如果發生變化,則向DSP發出中斷信號INT, 通知DSP讀取數據。
在接收DSP發送的控制指令時, 將該指令與當前狀態相比較, 若符合就不再發送控制指令, 這樣就能防止多次發送控制指令引起的誤動作。
在飛行過程中, 控制系統的任務主要包括采集無人機的姿態數據, 計算控制量并輸出到舵機等執行機構, 接受地面站的指令并傳輸無人飛行器的位置等信息。利用設計的控制板進行伺服控制算法的實現, 完成對執行機構舵機的控制。圖6為控制系統輸出的其中一路舵機的PWM 控制信號波形。
圖6 舵機控制信號。
5 結束語
采用多外設的高性能DSP 芯片TMS320F2812結合CPLD, 并采用DSP /B IOS 為實時操作系統, 進行實時多任務設計, 有效提高了系統的可靠性和實時性。經過調試, 該系統在實際運行中性能穩定, 達到了設計要求。本系統體積小、重量輕、成本低, 具備一定的擴展性, 適合于構成較強的實時性、小型化和低成本的小型無人飛行器。












評論