尹宏建 高慧斌 喬冠宇
(1.中國科學院長春光學精密機械與物理研究所,長春 130033;2.中國科學院大學,北京 100049)
光電經(jīng)緯儀是對觀察目標進行實時跟蹤測量的光學設(shè)備。由于觀察目標處于不斷運動當中,使得兩者之間的距離不斷變化,造成目標在經(jīng)緯儀上像點離焦,直接導(dǎo)致了成像質(zhì)量的下降,這對觀察和記錄目標的運動軌跡、飛行參數(shù)等信息存在影響和干擾。為了避免這一現(xiàn)象的發(fā)生,需要在經(jīng)緯儀中引入自動調(diào)焦系統(tǒng),自動調(diào)焦系統(tǒng)的作用就是根據(jù)相關(guān)信息,調(diào)整成像面的位置,達到目標成像始終清晰的目的[1]。
目前,自動調(diào)焦的方法主要有:光電自準直法、圖像處理法和傳統(tǒng)程序控制法。由于傳統(tǒng)程序控制法相比其他兩種方法有操作簡單、對硬件要求較低及實時性好等優(yōu)點,傳統(tǒng)程序控制法主要用數(shù)據(jù)擬合的方法,利用光學設(shè)計和實驗數(shù)據(jù)得出調(diào)焦公式,并以此為依據(jù),編制相應(yīng)控制程序[2]。在此,筆者采用傳統(tǒng)程序控制法實現(xiàn)光電經(jīng)緯儀的自動調(diào)焦。
自動調(diào)焦控制系統(tǒng)如圖1所示,管理計算機把目標距離信息通過串口發(fā)送到TMS320LF2407,TMS320LF2407采用數(shù)據(jù)擬合方法計算出理論調(diào)焦量,從I/O口發(fā)出PWM脈沖,脈沖通過電機驅(qū)動電路控制步進電機帶動準直鏡沿光路傳播方向移動,準直鏡的位置信息經(jīng)過電位器反饋回TMS320LF2407,形成一個閉環(huán),反饋回的位置信息和理論值的誤差驅(qū)動準直鏡向著像點與焦面重合的方向移動,直到誤差為零,此時圖像成像最為清晰[3]。但是由于TMS320LF2407自身ADC精度的限制,傳動機構(gòu)的誤差等因素,使得微小誤差始終存在。
圖1 自動調(diào)焦控制系統(tǒng)框圖
筆者設(shè)計的自動調(diào)焦系統(tǒng)采用的主控芯片為16位DSP芯片TMS320LF2407,能達到40MIPS的執(zhí)行速度,指令周期25ns,其內(nèi)部集成外設(shè)有:32KByte的FLASH程序存儲器;2.5KByte的數(shù)據(jù)/程序RAM;192KByte的可擴展外部存儲器(程序、數(shù)據(jù)、I/O空間各64KByte);定時器;看門狗;EV管理器;串行通信接口SCI,串行外設(shè)接口SPI,控制區(qū)域網(wǎng)絡(luò)CAN;8或16通道可選的10位模擬數(shù)字轉(zhuǎn)換器ADC[4]。電源電路采用5.0V直流電源,由于DSP的工作電壓為3.3V,所以需要進行電壓轉(zhuǎn)換,系統(tǒng)采用TPS7333實現(xiàn),其工作原理如圖2所示。串行通信接口的驅(qū)動芯片采用MAX232,實現(xiàn)與管理計算機的距離信息發(fā)送和接收(圖3)。
圖2 電源模塊工作原理
圖3 串行通信接口模塊工作原理
液晶采用T6963,用于顯示步進電機的運行狀態(tài)。T6963是一種圖形點陣液晶顯示器,主要由行驅(qū)動器、列驅(qū)動器和128×64全點陣顯示器組成。能夠完成圖形顯示,也可以顯示8×4個(16×16點陣)漢字,共有13種指令,與CPU接口采用8位數(shù)據(jù)總線并行輸入輸出。TMS320LF2407的數(shù)據(jù)總線D0~D7分別與T6963的D0~D7相連,TMS320LF2407的/WE、/RD分別連接T6963的/WR、/RD,IOPE5控制T6963的數(shù)據(jù)和命令寫入。
系統(tǒng)調(diào)焦的步進電機型號為35BYG007,歩距角1.8°。步進電機驅(qū)動芯片選擇型號UP-4HB03M,UP-4HB03M是專用步進電機驅(qū)動器,適用于四相混合式和兩相六出頭混合式步進電機,PWM恒流控制方式;可選擇16細分或四相八拍兩種方式;輸出的驅(qū)動電流為0.3A。
驅(qū)動電路如圖4所示,TMS320LF2407的I/O口輸出脈沖信號,控制UP-4HB03M,UP-4HB03M的CP為步進脈沖輸入端,上升沿有效;FREE端為驅(qū)動器脫機端,當FREE=1時,電機處于釋放狀態(tài);U/D為步進電機的運行方向控制端,當U/D為高電平時,電機正轉(zhuǎn),否則電機反轉(zhuǎn)[5]。
圖4 步進電機驅(qū)動電路工作原理
TMS320LF2407的軟件設(shè)計工作是在CCSStudio_v3.3版本開發(fā)環(huán)境下進行編譯、調(diào)試和仿真的。編程語言主要由C語言完成,但對DSP特殊寄存器的位操作采用匯編語言完成,例如,使能所有屏蔽中斷,就需要將狀態(tài)寄存器ST0的INTM位清零,用匯編語言asm(“CLRC INTM”)即可完成,與C語言相比,簡便得多。
主程序主要完成一些初始化工作,包括系統(tǒng)初始化、串行通信接口初始化、定時器初始化和看門狗初始化,這些初始化程序主要進行對中斷、系統(tǒng)工作頻率、串行通信的波特率和接收驗證方式、定時周期及屏蔽看門狗等的設(shè)置[6]。
程序中存在兩種中斷,一種是定時器中斷,負責對模擬量定時采樣轉(zhuǎn)換為數(shù)字量,其軟件流程如圖5所示;另一種是串行通信接口中斷,負責接收管理計算機發(fā)送的距離信息和控制命令,其軟件流程如圖6所示。
圖5 定時器中斷流程
圖6 串口通信中斷流程
軟件主程序流程(圖7)為:TMS320LF2407接收到管理計算機發(fā)送的目標距離信息,經(jīng)過調(diào)焦程序計算得到理論的調(diào)焦位置與ADC模塊檢測到的實際調(diào)焦位置進行比較,由差值驅(qū)動步進電機進行調(diào)焦控制。
圖7 主程序流程
基于TMS320LF2407自動調(diào)焦系統(tǒng)的實驗數(shù)據(jù)見表1,實驗數(shù)據(jù)以光學鏡頭焦點為原點,鏡頭到像面方向為正方向。
系統(tǒng)產(chǎn)生誤差的原因主要有:
a. 步進電機精度誤差,本系統(tǒng)選用步進電機歩距角1.8°,電機帶動絲杠螺距2.00mm,產(chǎn)生的最大誤差可達到0.01mm;
b. AD轉(zhuǎn)換誤差,TMS320LF2407自身ADC為10位精度,電位器長度25mm,供電電壓5V,ADC的分辨率為4.88mV,ADC轉(zhuǎn)換誤差為0.024 4mm;
c. 電位器誤差,本系統(tǒng)電位選擇型號為KTM30mm,重復(fù)性小于0.000 1mm。
表1 控制系統(tǒng)測試對比
由以上數(shù)據(jù)可知,系統(tǒng)的最大理論誤差為0.034 5mm,實驗數(shù)據(jù)顯示的最大誤差為0.032 0mm,處于理論誤差范圍中。
筆者設(shè)計并實現(xiàn)以TMS320LF2407為核心芯片的經(jīng)緯儀自動調(diào)焦系統(tǒng)。此系統(tǒng)具有體積小、可靠性高、功耗低、控制精度和速度都能達到較高要求等特點。并且設(shè)有串行通信接口可以和管理計算機通信和液晶顯示電路對步進電機運行狀態(tài)進行觀察。經(jīng)過實驗驗證,誤差較小,滿足經(jīng)緯儀調(diào)焦精度的要求。