單片機實現自控飛艇舵控系統
以單片機為核心設計并實現了小型自控飛艇的舵機控制系統,對系統的硬件設計進行了說明,對軟件設計中的關鍵問題——串行通訊及幀識別、多單片機通訊及PWM波的軟件產生方法進行了詳細闡述。
本文引用地址:http://www.104case.com/article/172480.htm引言
平流層飛艇是一種利用輕于空氣的氣體(如氦氣等)產生浮力作為升力的飛行于平流層區域的飛行器。它依靠飛艇內部裝載的輕于空氣的氣體產生的靜升力,通過控制飛艇上的舵面和動力裝置,以較小的能耗實現在平流層的飛行。小型自控飛艇是為了驗證平流層飛艇飛行特性和控制性能的小型軟式試驗飛艇,對其控制系統的研究是平流層飛艇研制中一個重要的過渡階段,具有極其重要的意義。
1 小型自控飛艇舵控系統簡介
舵機是小型自控飛艇執行機構中最主要的執行部件,能否快速、準確地完成對舵機的控制直接關系到飛艇的自主控制效果。因此,舵控系統成為小型飛艇自主飛行控制系統中最重要的組成部分之一,它的主要功能是接收艇載計算機發出的控制指令,實現對控制指令的采集、分析和處理,并根據控制指令向舵機輸出連續可調的舵控信號,操縱艇上各舵機完成預定動作。
2 舵控系統硬件設計
本飛艇舵控系統以多片P89C2051單片機為核心,配合電源模塊、驅動芯片及多路轉換開關等在一塊印制電路板上實現預定功能。舵控系統設計總體框圖如圖1所示。

舵控系統主控芯片(主控單片機1、2)選擇P89C51RA2xx型單片機,它具有8KB的并行可編程非易失性FLASH 程序存儲器,并可對器件串行在系統編程(ISP)和在應用中編程(IAP)。該型微控制器是80C51微控制器的派生器件,是采用先進的CMOS工藝制造的8位微控制器,指令系統與80C51完全相同。該器件有4組8位I/O口、3個16位定時計數器、多中斷源-4中斷優先級-嵌套中斷結構、1 個增強型UART、片內振蕩器及時序電路。舵控單片機采用Atmel公司的89C2051型單片機[2],其具體性能這里不再贅述。
電源模塊采用美國國家半導體公司生產的LM2576系列產品,它是線性三端穩壓器件(如78xx系列端穩壓集成電路)的替代品。相比而言,它的熱損耗更低、工作效率更高、輸出電流驅動能力更強,同時對于電源的高頻干擾還有較強的抑制作用。利用該器件只需極少的外圍器件便可構成高效穩壓電路,為MCU穩定可靠的工作提供強有力的保證。
此外,為增強信號的驅動能力,在輸出之前采用74LS245作為信號驅動芯片;串口電平轉換采用Max232芯片。
該系統硬件設計比較簡單,值得一提的是其中的安全性設計部分,即當地面檢測到艇上自動控制系統已經失效時,為確保飛艇安全返回,需要將控制方式轉至遙控方式。如圖1所示,當艇載計算機發生故障時,舵控系統通過無線射頻接收機接收地面遙控信號,通過其輸出的多通道PWM波直接控制艇上舵機,控制飛艇安全返回。此處,控制方式的轉換是通過多路轉換開關實現的,開關的切換信號由艇載計算機看門狗電路在檢測到艇載計算機已不能正常工作時給出。
3 舵控系統軟件設計
3.1 軟件總體結構
舵控系統各單片機程序均在Keil C51環境下采用C語言編寫。為了保證系統的實時性及快速性,軟件編寫采用了主程序+任務+中斷的結構。
在三部分程序中,以主單片機1的外部中斷最多,包括串口中斷、與主單片機2的握手中斷以及艇載計算機看門狗的外部中斷,這幾個中斷的優先級排列順序是:艇載計算機看門狗中斷>串口中斷>握手中斷。主單片機1接收到艇載計算機通過RS232串口發來的信息幀后,首先進行幀識別,提取出前m個字節的數據,加上幀頭幀尾后由P1口發送給主單片機2;并將第m+1個字節數據作為開關量通道控制信號由P2口輸出,用作系統控制備用。
主單片機2程序的主要任務是通過其P1口接收上位機傳來的數據,提取各控制信息,在相應控制指令的前面加上地址,依次由串口發送給下位舵控單片機。
舵控單片機的主要任務是識別控制指令和地址指令,并根據收到的控制指令(舵機占空比信號)產生PWM波控制艇上舵機。
該系統軟件設計中的關鍵問題包括以下幾個方面:(1)控制信號流程中數據幀的接收識別;(2)舵控系統中主從單片機之間的多機通信;(3)PWM波舵控信號的軟件產生方法。下面對這幾個問題進行詳細的闡述,并給出相應的解決方案。
評論