姜禮杰,王勇,徐健,劉建華
(合肥工業(yè)大學(xué)機械與汽車工程學(xué)院,安徽合肥290003)
三維移動平臺是一種集光、電、機等多技術(shù)領(lǐng)域于一體的運動裝置,廣泛應(yīng)用于醫(yī)療器械、先進(jìn)制造、工業(yè)檢測、實驗設(shè)備等多個領(lǐng)域[1-2]。傳統(tǒng)的三維移動平臺常采用開環(huán)控制方式,根據(jù)控制器所發(fā)信息來控制運動平臺的運動,信息流是單向[3]。隨著定位精度要求的提高,這種控制方式已不能滿足人們增長的精密需求[4-6]。越來越多的平臺開始使用光柵尺進(jìn)行位置和速度的檢測,以構(gòu)成閉環(huán)或半閉環(huán)控制方式,從而取代開環(huán)控制方式[7]。這種方式主控制器需要對光柵尺輸出信號進(jìn)行濾波、鑒向、細(xì)分和計數(shù)等處理。這些處理可以由數(shù)字集成電路來完成,但這種設(shè)計方法所需芯片多,結(jié)構(gòu)復(fù)雜,可靠性差[8-9]。也可以通過專用芯片 (如CPLD、FPGA等)和一些外圍電路來實現(xiàn),但這種方法編程復(fù)雜,增加功耗,實時性差[10]。
傳統(tǒng)的8位或16位的單片機也很難滿足這種大數(shù)據(jù)量、復(fù)雜算法控制方式的實時性要求,隨著嵌入式技術(shù)的發(fā)展,32位單片機廣泛應(yīng)用于工業(yè)自動化、智能儀器、家電產(chǎn)品等領(lǐng)域[11-12]。文中探索了一種以STM32微處理器做主控制器的光柵尺信號處理方法,實現(xiàn)了外部信號直接與微處理器連接,不需要其他外部邏輯接口,優(yōu)化了結(jié)構(gòu),并提高實時性。經(jīng)實驗證明,該方法具有編程簡單、可靠性高、實時性好等優(yōu)點。
利用STM32微處理器進(jìn)行光柵信號處理雖簡單方便、實時性好,但也存在以下一些問題,限制這種使用范圍。
(1)一般光柵尺的信號輸出正弦信號或者脈沖信號,均屬于弱電信號。由于現(xiàn)場的電磁、噪聲、振動等干擾因素,使光柵信號帶有一些毛刺或抖動,會造成計數(shù)器計數(shù)不準(zhǔn),甚至無法計數(shù)的現(xiàn)象。也就無法實時地將工作臺運動情況反饋給控制器,因此需要對光柵尺的信號進(jìn)行濾波處理。
(2)光柵信號選擇有效端口接入微處理器,微處理器設(shè)置在編碼器模式下,根據(jù)輸入有效邊沿和兩路信號的相對電平,進(jìn)行向上或者向下計數(shù)。但是,微處理器的計數(shù)器位數(shù)是16位,計數(shù)只能在0~65 535范圍內(nèi)進(jìn)行,最大計數(shù)值65 535,低于0或超過65 553會產(chǎn)生溢出。計數(shù)向上產(chǎn)生溢出,計數(shù)器會接著向下計數(shù);如圖1所示,假如工作臺向左運動,計數(shù)器計在點B到最大值65 535后,繼續(xù)向左運動至點C,則此時計數(shù)器值可能變成60 000;當(dāng)向下計數(shù)到0溢出后,會接著向上計數(shù),這時候直接讀取計數(shù)器的數(shù)值當(dāng)做工作臺的運動位移量是不準(zhǔn)確的。
圖1 工作臺運動圖
(3)微處理器的計數(shù)器在編碼器模式下,依據(jù)兩個輸入信號的跳變順序,硬件實時地對控制寄存器中的DIR位進(jìn)行相應(yīng)的設(shè)置。一般可以通過采取讀出DIR位的值,判斷工作平臺的運動方向。這種方法雖能確定工作臺的運動方向,但不能確定工作臺所處在機械原點的那個方向。如圖1所示,假設(shè)點O為機械原點,OA與OB是等距離的。開始時,工作臺處在機械原點,向右運動至點 A,計數(shù)值為50 000,DIR的值為1;然后向左運動至點C,計數(shù)器值為55 000,DIR的值為0;接著向右運動,至點B,則計數(shù)器的值也為50 000,DIR值也為1;此時,處在A、B兩點的計時器值和DIR的值都是相同的,主控制器則無法辨別工作臺到底是運動到點A還是點B。
光柵尺是一種集光、機、電為一體的高性能數(shù)字化位置測量工具。它主要由標(biāo)尺光柵和指示光柵兩部分組成,二者發(fā)生移動時,在光的干涉與衍射共同作用下產(chǎn)生明暗相間的莫爾條紋。光電器件將明暗相間的摩爾條紋,通過光電轉(zhuǎn)化,再經(jīng)過放大器放大和整形電路整形后,得到兩路相位差為90°的正弦波。后續(xù)電路對正弦信號進(jìn)行濾波、插值等處理輸出脈沖信號。然后經(jīng)信號處理裝置的整形、放大及微分處理后,即可輸出與檢測位移成比例的脈沖信號。
該模塊所選用的STM32是一款32位基于ARM Cortex-M3內(nèi)核的微控制器。它的定時器主要由一個16位計數(shù)器和相關(guān)自動裝載寄存器組成,由可編程的預(yù)分頻器進(jìn)行驅(qū)動。這個計數(shù)器可選擇編碼器模式進(jìn)行向上/向下計數(shù),如圖2所示。在編碼器模式下,將信號輸入微處理器的有效端口,根據(jù)輸入信號的跳變順序,產(chǎn)生計數(shù)脈沖和方向信號。當(dāng)有邊沿跳變產(chǎn)生時,硬件對定時器的控制寄存器TIMx_CR1的DIR位進(jìn)行相應(yīng)的設(shè)置,DIR位會被置為0或1。當(dāng)DIR位為0時,計數(shù)器自動向上計數(shù),直至自動重裝值-1,產(chǎn)生一個計數(shù)器溢出事件,接著向下計數(shù),至0,則產(chǎn)生一個計數(shù)器下溢事件,接著向上計數(shù);而當(dāng)DIR位為1時,計數(shù)器計數(shù)情況類似。只要有邊沿跳變產(chǎn)生,就會重新計算DIR位,通過讀取DIR位的數(shù)值來判斷機床運動方向。當(dāng)定時器被設(shè)置在編碼器模式下,計數(shù)器的內(nèi)容是依照光柵尺運動速度和方向而被實時地自動修改。
圖2 定時器在編碼器模式下計數(shù)方式
三維移動平臺要求定位精度高,使用光柵尺作為位置檢測器件進(jìn)行反饋。主控制器根據(jù)計數(shù)器采集到的光柵尺脈沖邊沿個數(shù)計算工作臺的實際位移量,以消除系統(tǒng)的傳動鏈誤差,減小系統(tǒng)的慣性,提高定位精度。三維移動平臺三軸的行程分別為150,150和50 mm,根據(jù)移動平臺的定位精度要求,為每個軸分別選配了分辨率為:0.5、0.5和0.1 μm的光柵尺。每個軸所選絲杠的導(dǎo)程均為5 mm/r。經(jīng)計算,一個導(dǎo)程光柵尺理論產(chǎn)生脈沖的邊沿數(shù)為10 000、10 000和50 000,而整個運動行程理論上產(chǎn)生的脈沖數(shù)邊沿數(shù)分別是280 000、280 000和50 000。這些值遠(yuǎn)遠(yuǎn)超過微處理器中計數(shù)器的最大計數(shù)值,無法準(zhǔn)確計算平臺移動位移量,不滿足光柵尺作為位置檢測元件的要求。
光柵尺信號因現(xiàn)場的電磁、噪聲、振動等影響,可能會使TTL信號帶有一些毛刺或抖動,造成計數(shù)器計數(shù)不準(zhǔn)。根據(jù)信號的波形質(zhì)量,可選擇通過軟件設(shè)置數(shù)字濾波器的帶寬的方式,對輸入的信號進(jìn)行濾波處理。數(shù)字濾波器就是由一個事件計數(shù)器組成,它記錄到N個事件后會產(chǎn)生一個輸出的跳變。例如一個脈沖波形對高電平進(jìn)行判斷,在某個時間段內(nèi)進(jìn)行若干次檢測,這若干次中至少N次都為真則為真,產(chǎn)生一個跳變,否則認(rèn)為為假,不產(chǎn)生跳變??梢赃@樣配置輸入濾波器對輸入波形信號進(jìn)行濾波處理。濾波器的濾波效果如圖3所示。
圖3 濾波器濾波效果圖
采用定時查取計數(shù)器數(shù)值的方法,通過軟件編程使計數(shù)器擴展到32位,是一種簡單有效的方法。采用定時查取方式進(jìn)行擴展,根據(jù)機床的運動速度和實際測量需要設(shè)定查詢周期。假定每10 ms查詢一次,設(shè)S為光柵尺移動的實際位移量,a為計數(shù)器的實時值。每隔10 ms對計數(shù)器里的值進(jìn)行一次查詢,將計數(shù)器的值賦予a并清零,同時查詢控制寄存器的DIR的值。假如DIR=0時,S的值將變?yōu)镾加a的值,同時將a的值清零;如果DIR=1時,S的值將變?yōu)镾減a的值,同時將a的值清零。顯示器不斷地顯示S的值,S可為正值也可為負(fù)值。假如當(dāng)S的值大于零時認(rèn)為工作臺的位置處在機械原點的右邊,S的值小于零時認(rèn)為機床是在機械原點左邊,S的值為零時則處于機械原點。這樣不斷地進(jìn)行定時查詢直至機床停止工作。
主控制器對計數(shù)器的值定時進(jìn)行查取和清零,查取周期的選擇是該方法的一個關(guān)鍵。查取周期是依據(jù)平臺運動最大速度和光柵尺分辨率計算所得。根據(jù)運動平臺設(shè)計要求,三軸運動最大速度為30 mm/min,定位精度控制在0.01 mm以內(nèi),三軸的光柵尺分辨率依次為0.5、0.5和0.1 μm。經(jīng)計算得,在每軸上每毫秒所產(chǎn)生的脈沖邊沿數(shù)分別為:1個、1個和5個,對應(yīng)的位移量均為0.5 μm。若要保證定位精度在0.01 mm以內(nèi),則在每個查詢周期的運動位移不超過0.01 mm,根據(jù)最大速度計算,主控制器對計數(shù)器的查詢周期要小于20 ms,否則,光柵尺不能有效地發(fā)揮反饋作用。該平臺選擇的查詢周期是10 ms。
三位移動平臺的的運動控制系統(tǒng)主要是通過C語言編程來實現(xiàn)的,光柵尺信號的處理,也是通過C語言配置微處理器中寄存器完成信號處理。圖4是計數(shù)器位數(shù)擴展和辨向的主要程序的流程圖。
采用上述設(shè)計方案對光柵尺信號進(jìn)行處理,經(jīng)過單片機定量發(fā)出PWM脈沖進(jìn)行實際測試,實驗結(jié)果顯示計數(shù)器計數(shù)的個數(shù)與發(fā)出個數(shù)是一致的。另與數(shù)顯表對比結(jié)果顯示誤差在1/10 000內(nèi)。通過這兩個實驗,間接地驗證了該方法計數(shù)準(zhǔn)確。
圖4 計數(shù)器擴展算法部分流程圖
經(jīng)驗證,基于STM32微處理器的光柵信號處理方法簡單可靠、技術(shù)準(zhǔn)確、靈活性好。滿足三位移動平臺的的定位精度要求,達(dá)到預(yù)期設(shè)計目的,同時也為其他數(shù)據(jù)采集模塊設(shè)計提供了參考。
【1】杜春梅.三維激光掃描技術(shù)的研究[D].西安:陜西科技大學(xué),2010.
【2】徐麗莉.基于ARM9的數(shù)字超聲檢測系統(tǒng)的研制[D].南京:東南大學(xué)2007.
【3】周贊,周驥平,朱興龍,等.應(yīng)用運動解耦的三維動力平臺的設(shè)計與研究[J].現(xiàn)代制造工程,2009(3):115-117.
【4】何麗嬌.宏微結(jié)合精密定位平臺運動控制研究[D].廣州:華南理工大學(xué),2008.
【5】李軍.精密定位伺服控制系統(tǒng)的研究與應(yīng)用[D].武漢:湖北工業(yè)大學(xué),2006.
【6】孫中良.光柵檢測及定位控制技術(shù)的研究[D].南京:東南大學(xué),2005.
【7】趙從福,陳安,胡躍明.基于STM32的點對點運動控制器設(shè)計[J].計算機測量與控制,2012,20(4):994 -995.
【8】楊雷,激光微加工系統(tǒng)中若干關(guān)鍵技術(shù)的研究[D].鄭州:鄭州大學(xué),2003.
【9】但永平,楊雷.基于 FPGA的光柵尺信號智能接口模塊[J].國外電子元器件,2004(12):4-6.
【10】金鋒,盧楊,王文松,等.光柵四倍頻細(xì)分電路模塊的分析與設(shè)計[J].北京理工大學(xué)學(xué)報,2006,26(12):1703-1076.
【11】吳煥榮.基于msp430單片機的多功能tig焊控制器[D].北京:北京工業(yè)大學(xué),2005.
【12】李艷,李華,謝鷗.基于ARM的精密內(nèi)圓磨床嵌入式數(shù)控系統(tǒng)結(jié)構(gòu)研究[J].機電產(chǎn)品開發(fā)與創(chuàng)新,2008,21(4):171-173.