高偉 王云龍 金勇
(南京理工大學 機械工程學院,江蘇 南京 210094)
目前使用光電編碼器常用的測速方法有M法、T法以及M/T法。M法適用于高速測量場合,低速測量時,檢測誤差較大;T法適用于低速場合,高速測量時,檢測誤差大,并且更新速度太快,系統不停地計算更新轉速;M/T法可適用于測量高、低速場合,且具有較高的測量精度。光電編碼器在實際工作過程中,干擾和抖動總是客觀存在,忽視它們系統的將會計數錯誤,測量系統就無精度而言。本文在基于TMS320F28335對輸入A、B、Z相信號進行輸入限制,濾除干擾,采用M/T法進行測速,通過并口或串口輸出給控制機。
本文采用的是長春禹衡光學有限公司的A-ZKD-13-200BM-G05LH光電編碼器。詳細參數為:電源電壓DC5 V;分辨率2 000 P/R;最大機械轉速為5 000 r/min。
TI公司的數字信號處理器TMS320F28335有增強型QEP接口,用于增量式光電編碼器測速。TMS320F28335所有IO口的電平均為3.3 VLVTTL電平,5 VTTL電平不能直接輸入到DSP的輸入口。如圖1所示,因此使用一片74LVC245A與光電編碼器A、B、Z相相連,并擴展2路通用輸出I/O口和2個通用輸入I/O口,以便和上位機通訊的握手信號74LVC245A起到電平轉換和緩沖隔離的作用。外擴16路輸出并口使用一片74LVTH16245A和5 V系統兼容。一片MAX3232外擴一路串口和上位機進行通訊[1]。
理論上,光電編碼器的輸出波形如圖2.。在實際交流伺服系統中,存在著很強的電磁干擾以及光電編碼器本身的擾動,用示波器多次觀察A、B相脈沖,有很多很尖的干擾脈沖,時間持續很短,如圖3所示(為了便于觀看,圖為示意圖),但DSP的IO口采樣周期更短。如果不進行輸入信號處理,QEP是無法完成計數測速的,在實際系統中運行時,當電機勻速運轉時,通過觀察口觀察正交方向標志(正反轉的狀態標志位)時高時低,即eQEP位置計數寄存器QPOSCNT時增時減,測速就沒有意義了。
本文所用的光電編碼器最大轉速為5000r/min,故A相輸出最大頻率為5 000×2 000/60=0.167 Mhz。通過對DSP的輸入限制寄存器進行設置,使輸入信號需要先與SYSCLKOUT同步,然后在特定的周期進行采樣。采樣周期是由A口控制寄存器GPACTRL寄存器的值決定的,本文設置為輸入限制寄存器QUALPRD2=10,信號的采樣次數可以是三個信號寬度或者是六個信號寬度,由輸入A口量化選擇寄存器GPAQSEL2確定。本文將QEP的輸入引腳的量化選擇寄存器GPAQSEL2設置為2,即輸入信號只有在6個被采樣的信號相同時才發生變化,如圖4所示(圖中量化寄存器 QUALPRD=1)[2]。

采樣頻率為1.5 MHz>>0.167 Mhz。故不會丟失信號。
M/T法測速原理如圖5所示[3]。使能1 ms周期中斷,使能eQEP邊沿捕獲模塊。當周期中斷發生且捕獲鎖存模式QCLM為1時,則位置計數器GPOSCNT、捕獲計數器QCTMR的值分別鎖存到GPOSLAT和捕獲時間鎖存寄存器QCTMRLAT中;每當捕獲到一個計數脈沖,則使單位位置溢出標志置位,捕獲計數器QCTMR的值鎖存到捕獲周期寄存器QCPRD中。捕捉計數器QCTMR的最大計時周期為27.96 ms(0xFFFF×64/150 000 000),當轉速很小時,也需捕捉到一個脈沖,捕獲計數器QCTMR最多只能溢出一次,則最小轉速

圖1 系統原理圖


圖4 輸入限制時鐘周期

當轉速很快時,測量周期略大于1 ms,能滿足一般伺服控制系統的實時性要求。
當進入周期中斷時,首先清除單元位置捕獲事件狀態標志UPEVNT為1,然后等待單元位置捕獲事件再次發生將位置捕獲狀態標志再次置位(即使等待時間大于1ms,周期中斷也不會發生,因為上次的周期中斷還沒有結束,中斷標志位還沒有清除),讀捕獲周期寄存器QCPRD值,如果捕獲計數器QCTMR沒有溢出即溢出標志位COEF為0,則測量時間為

反之,測量時間

重新初始化位置計數器GPOSCNT和單位定時寄存器QUTMR,即軟件初始化位置計數器SWI=1,單位定時寄存器 QUTMR=0。如果計數方向標志位COEF為0即反轉,則計數脈沖為

反之,計數脈沖為1

位置計數器QPOSCNT不可能下溢或上溢,只有轉速大于6 000 r/min才可能溢出,已超過光電編碼器的最大轉速。故轉速

周期中斷發生時,位置計數器GPOSCNT,捕捉計數器QCTMR是自動裝載到位置計數鎖存寄存器GPOSLAT和捕獲時間鎖存寄存器QCTMRLAT中,單元位置捕獲再次發生時,捕獲計數器QCTMR的值自動裝載到周期寄存器QCPRD中,故沒有進中斷和讀計數寄存器值的時間消耗。理論上,在極端情況下,時間的檢測會產生±1個時鐘周期即為64/150 μs,在高速時最少的測量周期為1 ms,故速度的理論最大誤差為0.43‰。
程序流程圖如圖6,程序運行時,首先進行系統、PIE控制寄存器、GPIO、SCI、eQEP等初始化,然后進入for循環,判斷采用哪種方式輸出速度值,等待觸發中斷,實時更新速度值。

為了驗證測量方法的測量精度和響應特性,搭建實驗平臺,采用美國Kollmorgen公司的交流伺服電機,最大轉速為3200 r/min,上位機通過DA輸出電壓值到伺服放大器(范圍-2.5 V~2.5 V),以控制交流伺服電機轉速,光電編碼器裝在輸出軸的下一級上,在減速器輸出端裝有旋轉變壓器(16位)與光電編碼器所在級的傳動比為(100∶1)。上位機每10 ms更新一次電壓值,然后發出讀信號,測速板檢測到信號后通過并口發出轉速值,并向上位機發出可讀信號,上位機保存時間、輸出電壓值、旋轉變壓器的絕對位置值以及并口讀取的速度數據。如圖7所示,圖7(a)輸入電壓為幅值為2 V,周期為4 s的正弦波;圖 7(b)為 2.5 V的階躍信號;圖7(c)為輸入正弦電壓時測量轉速值,周期相同,幅值約為700的正弦波;圖7(d)為輸入階躍電壓時測量的轉速值;圖7(e)為輸入正弦電壓時根據旋轉變壓器兩次采樣位置值差計算出來的轉速值;圖7(f)為輸入階躍電壓時根據旋轉變壓器兩次采樣位置值差計算出來的轉速值。從圖中可以看出,根據 M/T法測量出來的轉速和旋轉變壓器計算出來的轉速趨勢完全吻合,但更加平滑,測速效果明顯優于旋轉變壓器根據位置計算出來的速度值。

圖7 測量結果圖
本文使用TMS320F28335的片上資源和光電編碼器可實現精確測量電機轉速,充分利用DSP的系統資源,發送速度數據,簡化系統軟硬件設計,如不需要硬件濾除噪聲、正交脈沖的鑒相電路以及倍頻電路,以及濾波程序,提高了系統的穩定性和可靠性。采用M/T法測速,能保證在很寬的測速范圍的測量精度,在高速時,響應時間快(略大于1ms),能夠滿足一般的伺服系統的速度反饋要求。
[1]TMS320f28× × 和 TMS320f28× × × DSCs的硬件設計指南[R].TEXAS INSTRUMENTS應用報告,2008.
[2]TMS320×2833×,2823× System Control and Interrupts[S].TEXAS INSTRUMENTS Reference Guide,2010.
[3]TMS320×2833×,2823× Enhanced Quadrature Encoder Pulse(eQEP)Module[S].TEXAS INSTRUMENTS Reference Guide,2008.