衡水職業(yè)技術學院 王素芹 程連生
舵機是小型自控飛艇執(zhí)行機構中最主要的執(zhí)行部件,能否快速、準確地完成對舵機的控制直接關系到飛艇的自主控制效果。因此,舵控系統(tǒng)成為小型飛艇自主飛行控制系統(tǒng)中最重要的組成部分之一,它的主要功能是接收艇載計算機發(fā)出的控制指令,實現(xiàn)對控制指令的采集、分析和處理,并根據(jù)控制指令向舵機輸出連續(xù)可調(diào)的舵控信號,操縱艇上各舵機完成預定動作。
本飛艇舵控系統(tǒng)以多片STC89C52單片機為核心,配合電源模塊、驅(qū)動芯片及多路轉(zhuǎn)換開關等在一塊印制電路板上實現(xiàn)預定功能。
舵控系統(tǒng)主控芯片選擇STC89C52單片機,它具有8KB的并行可編程非易失性FLASH程序存儲器,并可對器件串行在系統(tǒng)編程(ISP)和在應用中編程(IAP)。數(shù)據(jù)保留時間:10年,全靜態(tài)工作:0Hz-24MHz,三級程序存儲器鎖定,128×8位內(nèi)部RAM,32可編程I/O線,4組8位I/O口,兩個16位定時器/計數(shù)器,5個中斷源,可編程串行通道,低功耗的閑置和掉電模式,片內(nèi)振蕩器和時鐘電路。
電源模塊采用78xx系列端穩(wěn)壓集成電路,它是線性三端穩(wěn)壓器件。利用該器件只需極少的外圍器件便可構成高效穩(wěn)壓電路,為MCU穩(wěn)定可靠的工作提供強有力的保證。
此外,為增強信號的驅(qū)動能力,在輸出之前采用74LS245作為信號驅(qū)動芯片;串口電平轉(zhuǎn)換采用Max232芯片。
舵控系統(tǒng)各單片機程序均在Keil C51環(huán)境下采用C語言編寫。為了保證系統(tǒng)的實時性及快速性,軟件編寫采用了主程序+任務+中斷的結構。
在三部分程序中,以主單片機1的外部中斷最多,包括串口中斷、與主單片機2的握手中斷以及艇載計算機看門狗的外部中斷,這幾個中斷的優(yōu)先級排列順序是:艇載計算機看門狗中斷>串口中斷>握手中斷。主單片機1接收到艇載計算機通過RS232串口發(fā)來的信息幀后,首先進行幀識別,提取出前m個字節(jié)的數(shù)據(jù),加上幀頭幀尾后由P1口發(fā)送給主單片機2;并將第m+1個字節(jié)數(shù)據(jù)作為開關量通道控制信號由P2口輸出,用作系統(tǒng)控制備用。
主單片機2程序的主要任務是通過其P1口接收上位機傳來的數(shù)據(jù),提取各控制信息,在相應控制指令的前面加上地址,依次由串口發(fā)送給下位舵控單片機。
舵控單片機的主要任務是識別控制指令和地址指令,并根據(jù)收到的控制指令(舵機占空比信號)產(chǎn)生PWM波控制艇上舵機。
該系統(tǒng)軟件設計中的關鍵問題包括以下幾個方面:
(1)控制信號流程中數(shù)據(jù)幀的接收識別;
(2)舵控系統(tǒng)中主從單片機之間的多機通信;
(3)PWM波舵控信號的軟件產(chǎn)生方法。
(1)數(shù)據(jù)幀的串口接收及識別技術
采用了中斷服務程序就地幀識別技術,其優(yōu)點在于數(shù)據(jù)接收后立即進行幀識別,省去了對緩沖區(qū)的管理工作,減少了存取次數(shù),因而節(jié)省了大量的時間,極大地提高了接收程序的實時性。同時錯幀和斷幀被自動丟棄,不再占用資源。
(2)單片機多機通訊
在舵控系統(tǒng)設計中,各部分間的通訊是設計的重要內(nèi)容,其中主要包括單片機與上位PC機間的通訊和單片機與單片機之間的通訊。在舵控系統(tǒng)中,主單片機1與上位PC機通訊是通過單片機自帶的一路異步串行通訊接口完成的;而主單片機1通過其P1口向主單片機2傳輸數(shù)據(jù),
此系統(tǒng)中,主單片機2作為主機,m個舵控單片機作為從機,在主機與從機的通訊過程中,串口控制寄存器中SCON中的SM2位發(fā)揮了重要作用。當其中一個舵控單片機的SM2位為1時,該單片機只接收地址幀,對數(shù)據(jù)幀不理睬;而當SM2位為0時,該單片機接收所有發(fā)來的消息。具體通信過程如下:①首先將主、從單片機工作方式選為模式3,所有從機的SM2位開始置1,處于只接收地址幀狀態(tài)。②主機接收主單片機1發(fā)來的數(shù)據(jù)幀,從中提出數(shù)據(jù)部分(m個字節(jié)的指令對應m個舵控單片機),根據(jù)序號在控制指令字節(jié)前加上一個字節(jié)的地址信息。然后主機依次通過串口向下發(fā)送各舵控單片機的地址字節(jié)和數(shù)據(jù)字節(jié)。發(fā)送一幀地址信息,包含8位地址,第9位為1,表示發(fā)送的幀為地址幀。③從機接收地址幀后,進入中斷,將發(fā)來的地址與自身比較;地址一致的從機就是被尋址的從機,它清除SM2位,接收主機發(fā)來的所有后續(xù)幀信息(數(shù)據(jù)信息)。未尋址的所有其他從機仍維持SM2=1,對主機發(fā)來的數(shù)據(jù)幀不理睬,直到發(fā)來新地址幀;之后在下一次中斷時被尋址的從機接收主機發(fā)來的數(shù)據(jù)信息(第9位為0)。
需要注意的是,如果對已經(jīng)尋址的從機再發(fā)送地址幀,則該從機SM2=1,恢復初始狀態(tài),和其他從機競爭。
(3)舵控信號PWM波的產(chǎn)生
對飛艇舵機的控制最終是通過舵控單片機產(chǎn)生PWM波來實現(xiàn)的。通常,產(chǎn)生PWM波不外乎硬件和軟件兩種方法??紤]到舵控單片機計算任務不大,本系統(tǒng)中采用軟件產(chǎn)生PWM波的方法。下面以定時器0產(chǎn)生PWM波為例,說明通過軟件產(chǎn)生PWM波舵控信號的實現(xiàn)方法。
在程序中,由串口中斷接收上位機發(fā)送的脈寬指令,繼而通過改變?nèi)肟趨?shù)a來調(diào)整PWM波的脈寬,并確保脈寬輸出在正常范圍之內(nèi)。通過該方法產(chǎn)生PWM波切實可行,簡單有效,可以廣泛應用于舵機控制信號的產(chǎn)生中。
[1]張晴,袁曉梅,羅凱.基于PWM信號遙控機器人的設計與制作[J].數(shù)字技術與應用,2010(10).
[2]馮曉偉,王雷陽,李正生.多路舵機控制PWM發(fā)生器的設計與Proteus仿真[J].現(xiàn)代電子技術,2011(11).
[3]韓佳冷.液體流量控制器的研制[D].吉林大學,2011.
[4]陳海宴.51單片機原理及應用[M].北京航空航天大學出版社,2012.