單片機(jī)在小型自控飛艇的舵機(jī)控制系統(tǒng)中的重要性介紹
引言
平流層飛艇是一種利用輕于空氣的氣體(如氦氣等)產(chǎn)生浮力作為升力的飛行于平流層區(qū)域的飛行器。它依靠飛艇內(nèi)部裝載的輕于空氣的氣體產(chǎn)生的靜升力,通過(guò)控制飛艇上的舵面和動(dòng)力裝置,以較小的能耗實(shí)現(xiàn)在平流層的飛行。小型自控飛艇是為了驗(yàn)證平流層飛艇飛行特性和控制性能的小型軟式試驗(yàn)飛艇,對(duì)其控制系統(tǒng)的研究是平流層飛艇研制中一個(gè)重要的過(guò)渡階段,具有極其重要的意義。
1 小型自控飛艇舵控系統(tǒng)簡(jiǎn)介
舵機(jī)是小型自控飛艇執(zhí)行機(jī)構(gòu)中最主要的執(zhí)行部件,能否快速、準(zhǔn)確地完成對(duì)舵機(jī)的控制直接關(guān)系到飛艇的自主控制效果。因此,舵控系統(tǒng)成為小型飛艇自主飛行控制系統(tǒng)中最重要的組成部分之一,它的主要功能是接收艇載計(jì)算機(jī)發(fā)出的控制指令,實(shí)現(xiàn)對(duì)控制指令的采集、分析和處理,并根據(jù)控制指令向舵機(jī)輸出連續(xù)可調(diào)的舵控信號(hào),操縱艇上各舵機(jī)完成預(yù)定動(dòng)作。
2 舵控系統(tǒng)硬件設(shè)計(jì)
本飛艇舵控系統(tǒng)以多片P89C2051單片機(jī)為核心,配合電源模塊、驅(qū)動(dòng)芯片及多路轉(zhuǎn)換開(kāi)關(guān)等在一塊印制電路板上實(shí)現(xiàn)預(yù)定功能。
舵控系統(tǒng)主控芯片(主控單片機(jī)1、2)選擇P89C51RA2xx型單片機(jī),它具有8KB的并行可編程非易失性FLASH 程序存儲(chǔ)器,并可對(duì)器件串行在系統(tǒng)編程(ISP)和在應(yīng)用中編程(IAP)。該型微控制器是80C51微控制器的派生器件,是采用先進(jìn)的CMOS工藝制造的8位微控制器,指令系統(tǒng)與80C51完全相同。該器件有4組8位I/O口、3個(gè)16位定時(shí)計(jì)數(shù)器、多中斷源-4中斷優(yōu)先級(jí)-嵌套中斷結(jié)構(gòu)、1 個(gè)增強(qiáng)型UART、片內(nèi)振蕩器及時(shí)序電路。舵控單片機(jī)采用Atmel公司的89C2051型單片機(jī)[2],其具體性能這里不再贅述。
電源模塊采用美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的LM2576系列產(chǎn)品,它是線性三端穩(wěn)壓器件(如78xx系列端穩(wěn)壓集成電路)的替代品。相比而言,它的熱損耗更低、工作效率更高、輸出電流驅(qū)動(dòng)能力更強(qiáng),同時(shí)對(duì)于電源的高頻干擾還有較強(qiáng)的抑制作用。利用該器件只需極少的外圍器件便可構(gòu)成高效穩(wěn)壓電路,為MCU穩(wěn)定可靠的工作提供強(qiáng)有力的保證。
此外,為增強(qiáng)信號(hào)的驅(qū)動(dòng)能力,在輸出之前采用74LS245作為信號(hào)驅(qū)動(dòng)芯片;串口電平轉(zhuǎn)換采用Max232芯片。
該系統(tǒng)硬件設(shè)計(jì)比較簡(jiǎn)單,值得一提的是其中的安全性設(shè)計(jì)部分,即當(dāng)?shù)孛鏅z測(cè)到艇上自動(dòng)控制系統(tǒng)已經(jīng)失效時(shí),為確保飛艇安全返回,需要將控制方式轉(zhuǎn)至遙控方式。如圖1所示,當(dāng)艇載計(jì)算機(jī)發(fā)生故障時(shí),舵控系統(tǒng)通過(guò)無(wú)線射頻接收機(jī)接收地面遙控信號(hào),通過(guò)其輸出的多通道PWM波直接控制艇上舵機(jī),控制飛艇安全返回。此處,控制方式的轉(zhuǎn)換是通過(guò)多路轉(zhuǎn)換開(kāi)關(guān)實(shí)現(xiàn)的,開(kāi)關(guān)的切換信號(hào)由艇載計(jì)算機(jī)看門狗電路在檢測(cè)到艇載計(jì)算機(jī)已不能正常工作時(shí)給出。
3 舵控系統(tǒng)軟件設(shè)計(jì)
3.1 軟件總體結(jié)構(gòu)
舵控系統(tǒng)各單片機(jī)程序均在Keil C51環(huán)境下采用C語(yǔ)言編寫。為了保證系統(tǒng)的實(shí)時(shí)性及快速性,軟件編寫采用了主程序+任務(wù)+中斷的結(jié)構(gòu)。
在三部分程序中,以主單片機(jī)1的外部中斷最多,包括串口中斷、與主單片機(jī)2的握手中斷以及艇載計(jì)算機(jī)看門狗的外部中斷,這幾個(gè)中斷的優(yōu)先級(jí)排列順序是:艇載計(jì)算機(jī)看門狗中斷>串口中斷>握手中斷。主單片機(jī)1接收到艇載計(jì)算機(jī)通過(guò)RS232串口發(fā)來(lái)的信息幀后,首先進(jìn)行幀識(shí)別,提取出前m個(gè)字節(jié)的數(shù)據(jù),加上幀頭幀尾后由P1口發(fā)送給主單片機(jī)2;并將第m+1個(gè)字節(jié)數(shù)據(jù)作為開(kāi)關(guān)量通道控制信號(hào)由P2口輸出,用作系統(tǒng)控制備用。
主單片機(jī)2程序的主要任務(wù)是通過(guò)其P1口接收上位機(jī)傳來(lái)的數(shù)據(jù),提取各控制信息,在相應(yīng)控制指令的前面加上地址,依次由串口發(fā)送給下位舵控單片機(jī)。
舵控單片機(jī)的主要任務(wù)是識(shí)別控制指令和地址指令,并根據(jù)收到的控制指令(舵機(jī)占空比信號(hào))產(chǎn)生PWM波控制艇上舵機(jī)。
該系統(tǒng)軟件設(shè)計(jì)中的關(guān)鍵問(wèn)題包括以下幾個(gè)方面:(1)控制信號(hào)流程中數(shù)據(jù)幀的接收識(shí)別;(2)舵控系統(tǒng)中主從單片機(jī)之間的多機(jī)通信;(3)PWM波舵控信號(hào)的軟件產(chǎn)生方法。下面對(duì)這幾個(gè)問(wèn)題進(jìn)行詳細(xì)的闡述,并給出相應(yīng)的解決方案。
3.2 軟件設(shè)計(jì)中的關(guān)鍵問(wèn)題
(1)數(shù)據(jù)幀的串口接收及識(shí)別技術(shù)
在舵控系統(tǒng)中,數(shù)據(jù)以二進(jìn)制信息幀的格式進(jìn)行傳遞。每個(gè)信息幀從標(biāo)題開(kāi)始都有固定的幀頭、幀尾,且長(zhǎng)度固定,其基本數(shù)據(jù)格式如表1所示。
在該舵控系統(tǒng)的設(shè)計(jì)中,串行通訊占有很重要的地位,如艇載計(jì)算機(jī)與主單片機(jī)1之間的通訊過(guò)程。下面以主單片機(jī)1的串口接收程序?yàn)槔?,?duì)串行通訊的實(shí)現(xiàn)過(guò)程加以說(shuō)明。
在串行通信中,接收程序的任務(wù)是數(shù)據(jù)接收、幀識(shí)別和信息提取。常規(guī)的設(shè)計(jì)方法是設(shè)置一個(gè)比較大的緩沖區(qū)。串行接收中斷服務(wù)程序負(fù)責(zé)把接收到的數(shù)據(jù)壓入緩沖區(qū),當(dāng)緩沖區(qū)的數(shù)據(jù)足夠多時(shí),再由主程序調(diào)用一個(gè)幀識(shí)別和解碼子程序?qū)彌_區(qū)中的數(shù)據(jù)進(jìn)行處理。這種方法的好處是中斷服務(wù)程序比較短,不足之處為從一幀數(shù)據(jù)接收完畢到解碼時(shí)間較長(zhǎng),另外對(duì)緩沖區(qū)進(jìn)行管理需要占用大量的的CPU時(shí)間,因而實(shí)時(shí)性較差,此處不宜使用。
評(píng)論