引言
本設計要求對某火炮的水平和高低角進行控制,達到快速位置伺服系統的要求。而這個火炮角度控制系統首先要求有快速性,它的反應時間大于或等于12°/s;角度轉動控制精度小于或等于1’,水平角轉動范圍從一120°~+120°,高低角轉動范圍從0°~+85°;最后系統要有很好的穩定性和動態性能。
由于位置伺服系統一般是以足夠的位置控制精度、位置跟蹤精度和足夠快的跟蹤速度作為它的主要控制目標,系統運行時要求能以一定的精度隨時跟蹤指令的變化。所以對于這種快速位置伺服系統,要求整個系統各部分配合良好,其中的關鍵是控制器的選擇,綜合考慮高精度、抗干擾能力、靈活性、可靠性、實時性、性價比等各因素的情況下。選擇了Frees—cale公司的MC9Sl2DGl28B作為控制器。MC9Sl2DGl28B芯片是一款16位的單片機,功能強大,性能優越。本文采用該型號的單片機保證了所設計系統的穩定可靠。
1 系統控制方案
由于設計的角度伺服系統的負載比較大,而且相對于工業控制要求而言系統精度和快速性要求高,所以整個系統采用混合閉環的控制結構,所謂混合閉環的控制結構,就是系統內同時存在半閉環和閉環。半閉環起到控制作用,而全閉環只用于穩態誤差補償,兩者相結合可獲得較高的位置控制精度和跟蹤速度。包括:MJX40—14型光電編碼器、90LCX一3直流伺服電機、12A8型PWM直流伺服電機驅動器、單片機控制系統。單片機控制系統由MC9Sl2DGl28B單片機實現,使用Code Warrior for HCl2 V4.6編譯器,采用C語言編程。由于水平角和高低角的控制是一樣的,而且共用一個單片機,以角度控制方框圖(圖1)來說明。
如圖1所示,系統的任務是使光電編碼器測得的炮架轉動角度θ2與給出的指令θ1相等。當θ1≠θ2時,θ1一θ2的偏差信號在單片機里進行處理,放大后輸入到PWM直流伺服電機驅動器,由PWM驅動器驅動直流伺服電機,伺服電機帶動減速器,驅動炮架向著減少偏差的方向移動,直到θ1=θ2,電機停止轉動,達到目標。同時,炮架要準確的跟蹤目標,必須減少在跟蹤過程中可能出現的速度變化(如風速等原因),因為直流伺服電機本身帶有測速機端,可以把速度反饋信號進行負反饋輸入到PWM伺服電機驅動器,這樣使轉動機械的轉速度變化很小,起著穩速的作用。
2 硬件系統設計
2.1 總體設計
整個硬件系統采用模塊化思想設計,硬件系統框圖如圖2所示,分為單片機CPU最小系統、鍵盤/顯示控制模塊、直流伺服電機驅動電路、系統輸入模塊、光電編碼器等。設計時,各個模塊可相對獨立設計調試,最后集成為整個系統。
2.2 模塊結構和功能簡要說明
CPU最小系統:系統的主控模塊,用以控制和協調其它模塊工作。
鍵盤/顯示控制:由鍵盤及LED管理芯片CH451控制。系統輸入模塊:用通用8155芯片做數據采集,獲取光電編碼器所測得的火炮當前角度(位置)值,并傳給主控芯片。伺服電機驅動電路:用帶有緩沖基準輸入的雙路12位電壓輸出數字一模擬轉換器(TLC5618)作為單片機的一個外圍的D/A接口;當系統把偏差值算好后,利用PID算法得出的數據量輸出到兩路TLC5618,再通過驅動器去驅動水平和高低角的伺服電機,精確控制火炮的高低角和水平角位置和速度。
SCI通信:通過串行通信模塊。系統可以與上位機連接,方便對系統軟件的更新和升級,且可通過上位機進行控制角度控制,監視單片機的輸入與輸出。光電編碼器:用于得到炮架的轉動角度。
2.3 主要模塊設計
2.3.1 單片機CPU最小系統
HCSl2系列MCU的硬件結構中僅有一個MCU(微控制器)是無法工作的,它必須結合其它相應的外圍電路(即MCU支撐電路),才能構成一個最小系統。HCSl2系列MCU的最小系統一般包括電源電路、時鐘電路、復位電路、BDM調試頭電路,MC9Sl2DGl28芯片最小系統支撐電路示意圖如圖3所示。其中各個部分功能如下:
(1)電源電路主要給MCU提供+5V,+12V和+3.3V電源。
(2)時鐘電路給MCU提供一個外接的石英晶振。
(3)復位電路主要完成系統上電復位和系統在運行時用戶按鍵復位。
(4)BDM接口電路主要完成與BDM調試工具相連,向MC9S12單片機寫入和調試程序。
2.3.2 鍵盤/顯示控制電路
鍵盤控制模塊采用鍵盤及LED管理芯片CH451。CH45l是一個整合了數碼管顯示驅動和鍵盤掃描控制以μP監控的多功能外圍芯片。CH451內置RC振蕩電路,可以動態驅動8位數碼管或者64位LED,具有BCD譯碼、閃爍、移位等功能;同時還可以進行64鍵的鍵盤掃描;CH451通過可以級聯的串行接口與單片機等交換數據;并且提供上電復位和看門狗等監控功能。該芯片支持SPI同步串行通訊方式,可以與MC9S12DGl28B單片機的SPI通訊口進行告訴數據通訊,控制方便。鍵盤采用4×4矩陣式鍵盤,系統共使用16個按鍵。顯示數據用數碼管,由鍵盤輸入火炮要旋轉的水平和高低角度值,并顯示出來,系統第一次采集來的角度值也是通過它顯示的。
2.3.3 系統輸入模塊
從光電碼盤中輸出的數據有15位,要是單一的用單片機去讀取光電碼盤的數據,一個光電碼盤就會用到15個數據線,占用了單片機的大量資源。利用8155的豐富的I/O口資源,可以減少對單片機資源的占用。單片機給光電編碼器一個讀取信號脈沖,8155的PA和PB口立即得到光電編碼器的數據,并存到了PA和PB寄存器中,此時單片機只要讀取8155的PA和PB寄存器就能得到光電碼盤的數據,通過計算就能獲得此時炮架的方位角和高低角。
2.3.4 伺服電機驅動電路
對于一般的D/A轉換器的輸入端都用并行輸入,但是前面的芯片已經占用了單片機大量的接口,為了系統的輸入輸出能同步進行,本設計選用了串行輸入的TLC5618,它是一種快速帶緩沖基準輸入(高阻抗)的雙路12位電壓輸出數字一模擬轉換器(DAC),彌補了串行輸出的速度慢的不足,TLC5618具有1.21 MHz的輸入數據更新速率,DACA和DACB兩路同時更新,O.5LSB的建立時間為2.5 ms,它的最大串行時鐘速率為20 MHz,轉換速度達到要求;且它有兩路12位CMOS電壓輸出,精度符合設計要求;高阻抗基準輸入使輸出有很強抗干擾能力。TLC5618在+5V單電源工作,其輸出電壓范圍為基準電壓的兩倍,因此,電路設計采用2.5V基準電壓。通過CMOS兼容的3線串行總線,可對TLC5618實現數字控制,單片機串行數據通過PTl輸入TLC5618,串行時鐘通過PT2輸入,PTO接片選端,TLC5618接收到數據后,經過數模轉換,產生O~5V的模擬信號,經過減法器,得到一2.5~2.5的模擬信號,只有達到一1OV~10V的模擬信號才能更精確的控制電機,所以用高速放大器LM318進行兩級兩倍放大,就可以達到設計的要求。
3 軟件系統設計
系統軟件采用模塊化設計思想,主要模塊有:主程序模塊、數據采集模塊、鍵盤與顯示模塊、IRQ定時中斷處理程序、D/A數據輸出模塊、串行通信模塊。開發調試平臺是CodeWarrior軟件。CodeWarrior系列集成開發環境(IDE,Integrated Development Environment)是Metrowerks公司為開發嵌入式微處理器而設計的一套強大易用的開發工具,使用它可以有效地提高軟件開發效率。系統的總的流程如圖4所示。
4 結束語
基于Freescale公司的MC9S12DGl28B單片機,設計了火炮的快速位置伺服系統。對硬件系統的鍵盤/顯示控制模塊、系統輸入模塊、直流伺服電機驅動電路等各個功能模塊進行了詳細的電路設計,在CodeWarrior系列集成開發環境開發了軟件系統,最后對軟硬件進行了綜合調試。目前,設計的系統功能完善、運行可靠。結果表明:該系統方案設計合理,對角度控制精確度高,系統平穩,可靠性高,操作簡單,達到要求的指標,稍加改造,還可應用到其它位置伺服系統中。
評論
查看更多