陳 強,朱 娜
(北京航天控制儀器研究所,北京100039)
基于可編程邏輯器件的增量式編碼器信號去抖方法的實現(xiàn)
陳強,朱娜
(北京航天控制儀器研究所,北京100039)
在伺服系統(tǒng)中,實時、準(zhǔn)確地獲得編碼器反饋信號對伺服閉環(huán)控制至關(guān)重要。從增量式編碼器的結(jié)構(gòu)原理出發(fā),分析引起其輸出信號抖動的可能原因。根據(jù)D觸發(fā)器邏輯功能,設(shè)計了一種基于可編程邏輯器件的增量式編碼器信號去抖方法。實驗結(jié)果表明,該方法能有效濾除信號的邊沿抖動和干擾毛刺。
增量式編碼器;D觸發(fā)器;去抖方法;可編程邏輯器件
在運動控制領(lǐng)域,常常需要測量角度、速度、位移等信息,光電編碼器是常用的測量裝置之一。光電編碼器是一種通過光電轉(zhuǎn)換將輸出軸上的機械(幾何)位移量轉(zhuǎn)換為電脈沖或數(shù)字量的傳感器[1]。根據(jù)光電編碼器產(chǎn)生脈沖的方式不同,可分為增量式、絕對式和復(fù)合式3種;根據(jù)編碼器運動部件的運動方式不同,又可分為旋轉(zhuǎn)式和直線式2種。本文主要討論增量式旋轉(zhuǎn)光電編碼器(簡稱:增量式編碼器)。
增量式編碼器碼盤的基本結(jié)構(gòu)如圖1所示,碼盤上的開孔能夠使其在旋轉(zhuǎn)過程中對光電發(fā)送和接收裝置產(chǎn)生通斷變化,從而可以產(chǎn)生相應(yīng)的脈沖信號[2]。每產(chǎn)生1個輸出脈沖信號就對應(yīng)于1個位移增量,可檢測某個時間段的相對位置增量,不能直接檢測絕對位置信息。輸出的A、B兩相脈沖信號相位差90°。當(dāng)逆時針運動時,A相比B相超前90°;當(dāng)順時針運動時,A相比B相滯后90°。
圖1 增量式編碼器碼盤基本結(jié)構(gòu)及輸出信號波形Fig.1 Incremental encoder basic structure and output signal waveform
由于自身和使用環(huán)境等諸多因素影響,增量式編碼器輸出信號在進入處理電路前無法避免會混有或多或少的干擾脈沖,引起錯誤計數(shù)。本文分析其產(chǎn)生原因,提出一種基于可編程邏輯器件的增量式編碼器信號去抖方法。
常見的增量式編碼器信號抖動主要有兩種原因,一種是編碼器自身輸出的誤碼脈沖,一種是在信號傳輸環(huán)節(jié)引入的干擾。
1.1編碼器自身輸出的誤碼脈沖
在實際應(yīng)用中,由于機械振動、工作環(huán)境、電機負(fù)載等都無可避免地會產(chǎn)生振動,編碼器會在某點位置附近往復(fù)振動,在輸出信號的脈沖邊緣出現(xiàn)抖動,產(chǎn)生誤碼。增量式編碼器自身誤碼波形如圖2所示[3-5]。
圖2 增量式編碼器自身誤碼波形Fig.2 Incremental encoder self bit error waveform
1.2信號傳輸環(huán)節(jié)引入的干擾
編碼器通過電纜、接插件等傳輸環(huán)節(jié)與處理電路相連,在傳輸過程中難免受到外部電磁干擾的影響。干擾程度與干擾源強弱、離干擾源距離、電纜長度、走線方式、屏蔽好壞等因素有關(guān)。增量式編碼器傳輸環(huán)節(jié)受到干擾波形圖如圖3所示。
圖3 增量式編碼器傳輸環(huán)節(jié)受到干擾波形圖Fig.3 Incremental encoder transmission interference waveform
在伺服系統(tǒng)中,編碼器反饋信號是閉環(huán)控制的關(guān)鍵,不論是速度控制,還是位置控制,實時、準(zhǔn)確地獲取編碼器反饋信號對整個閉環(huán)系統(tǒng)的控制精度、響應(yīng)速度和可靠性至關(guān)重要。
在數(shù)字電路中輸入高、低電平有2個極限值,分別為有效低電平的最大輸入值Va,有效高電平的最小輸入值Vb。例如:TTL電平,Va≤0.8V,Vb≥ 2.0V;CMOS電平,
增量式編碼器的邊沿抖動和干擾毛刺會使數(shù)字電路脈沖計數(shù)值大于實際值,使采集的角度值與實際值產(chǎn)生偏差,造成后續(xù)邏輯錯誤或控制運算偏差,對閉環(huán)控制系統(tǒng)性能產(chǎn)生很大危害。為了更準(zhǔn)確地測量位移或角度值,必須在處理電路中通過有效的方法去除脈沖信號的邊沿抖動和干擾毛刺。
邊沿抖動和干擾毛刺的維持時間相比正常脈沖信號具有持續(xù)時間短、數(shù)量多的特征。去抖方法的基本思想是:在一定時間內(nèi)對信號電平多次采樣,比較采樣值;當(dāng)電平值保持一致時,則認(rèn)為不是抖動,正常輸出;當(dāng)電平值前后不一致時,則認(rèn)為是抖動,濾除掉。
D觸發(fā)器具有以下邏輯功能:輸出端Q的狀態(tài)隨輸入端D的狀態(tài)而變化;但總比輸入端狀態(tài)的變化慢1個時鐘周期。本文在不改變硬件電路的前提下,在可編程邏輯器件芯片中使用VHDL語言,利用多個D觸發(fā)器和邏輯判斷去除增量式編碼器信號中包含的邊沿抖動和干擾毛刺。
如圖4所示,編碼器脈沖信號進入可編程邏輯器件后經(jīng)過4個串聯(lián)的D觸發(fā)器,對第2、第3、第4個D觸發(fā)器的輸出信號Q2、Q3、Q4進行邏輯判斷,有以下3種情況:
若Q2=Q3=Q4=1時,J1=1,K1=0,則OUTPUT=1;
若Q2=Q3=Q4=0時,J1=0,K1=1,則OUTPUT=0;
若Q2、Q3、Q4不完全相等時,J1=0,K1= 0,則OUTPUT保持上一狀態(tài)值。
圖4 增量式編碼器信號去抖原理圖Fig.4 Incremental encoder signal anti-jitter principle diagram
由此可見,信號經(jīng)過以上電路處理后,脈沖信號必須保持4倍以上時鐘信號寬度時才能正常輸出。編碼器脈沖信號中混入的邊沿抖動和干擾毛刺的維持時間比正常脈沖信號短很多,設(shè)定合適的時鐘頻率,通過該去抖電路將可以基本濾出邊沿抖動和干擾毛刺,獲得準(zhǔn)確的計數(shù)值。
使用時需要根據(jù)所采集增量式編碼器脈沖信號的最高頻率來確定合適的時鐘頻率。時鐘頻率設(shè)定過高則無法消除頻率較寬的邊沿抖動和干擾毛刺;設(shè)定過低則可能濾除實際的脈沖值。另外,電路中的D觸發(fā)器和JK觸發(fā)器會使輸出信號產(chǎn)生延時,設(shè)計控制系統(tǒng)時也需要考慮延時產(chǎn)生的影響。
本文采用Altera公司的MAX II系列CPLD芯片EPM570T100,使用Quartus II 7.2軟件作為集成綜合開發(fā)工具。
以采集一個12位分辨率的增量式旋轉(zhuǎn)編碼器為例,進行仿真和實驗,驗證該去抖方法的效果。該編碼器旋轉(zhuǎn)1圈共產(chǎn)生脈沖數(shù)為212=4096p/r,假設(shè)系統(tǒng)伺服控制的最高轉(zhuǎn)速為0.5rad/s,則1s時間內(nèi)產(chǎn)生的脈沖數(shù)最多為4096p/r×0.5rad/s=2048p/s,A、B兩相信號最大頻率約為f=2KHz,周期約為T=0.5ms。
根據(jù)香農(nóng)采樣定理,采樣頻率要遠(yuǎn)高于信號頻率,一般取10倍以上,但不能過高。過高會將邊沿抖動和干擾毛刺當(dāng)作實際信號采集。通過圖3可知增量式編碼器邊沿抖動和干擾毛刺的維持時間在4μs(250KHz)以下,經(jīng)綜合考慮,該電路選擇時鐘頻率為fclk=50KHz。
設(shè)計完成后的仿真結(jié)果如圖5所示,該方法可以有效濾除脈沖上的抖動和毛刺,獲得規(guī)則的脈沖波形。在實際應(yīng)用過程中也可以起到顯著的去抖效果,如圖6所示。
圖5 仿真結(jié)果Fig.5 Simulation result
圖6 實際信號防抖處理前后對比Fig.6 Comparison of actual signal image before and after anti-jitter treatment
本文設(shè)計的信號去抖方法在不增加硬件電路的前提下,利用可編程邏輯器件的硬件描述語言成功去除增量式編碼器信號的邊沿抖動和干擾毛刺,保證了脈沖計數(shù)值的準(zhǔn)確。同時,只需根據(jù)實際信號脈寬,合理選取時鐘頻率,該方法還可以擴展應(yīng)用于鍵盤、按鍵、開關(guān)等信號的防抖處理。
[1]楊立溪.慣性技術(shù)手冊[M].北京:中國宇航出版社,2009. YANG Li-xi.Handbook of inertial technology[M].Beijing: China Aerospace Press,2009.
[2]蘇奎峰,呂強,鄧志東.TMS320x28xxx原理與開發(fā)[M].北京:電子工業(yè)出版社,2009. SU Kui-feng,LV Qiang,DENG Zhi-dong.Principle and development of TMS320x28xxx[M].Beijing:Electronics Industry Press,2009.
[3]方華松,丁望來.基于FPGA的抗編碼器抖動干擾的高精度編碼技術(shù)[J].船電技術(shù),2009,29(7): 15-18. FANG Hua-song,DING Wang-lai.A high performance encodingtechnologywithtwitter-interferenceelimination based on FPGA[J].Marine Electric&Electronic Engineering,2009,29(7):15-18.
[4]閆莎莎,朱世強,劉華山,等.基于CPLD的光電編碼器測量系統(tǒng)[J].機電工程,2009,26(1):77-79. YANSha-sha,ZHUShi-qiang,LIUHua-shan,et al.Photoelectrical encoder system based on CPLD[J].Journal of Mechanical&Electrical Engineering,2009,26(1):77-79.
[5]王鵬,杜衛(wèi)東,呂志剛,等.基于FPGA與FSM的高精度測角系統(tǒng)設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2012,38(2):15-18. WANG Peng,DU Wei-dong,LV Zhi-gang,et al.The design and implementation of high precision angle measuring system based on FPGA&FSM[J].Application of Electronic Technique,2012,38(2):15-18.
[6]游志剛,李小波,孫志勇.一種基于CPLD的智能寬帶去邊沿抖動技術(shù)[J].電子測量與儀器學(xué)報,2005,19(4):15-17. YOU Zhi-gang,LI Xiao-bo,SUN Zhi-yong.A CPLD-based intelligent elimination technique for edge trembling of wideband signals[J].Journal of Electronic Measurement and Instrumentation,2005,19(4):15-17.
Realization of Anti-jitter Method for Incremental Encoder Signal Based on PLD
CHEN Qiang,ZHU Na
(Beijing Institute of Aerospace Control Devices,Beijing 100039)
In servo system,real-time and accurate access to the encoder signal is the key to the servo closed-loop control.According to the construction and principle of the incremental encoder,the possible reasons of the jitter in the output signals are analyzed.A anti-jitter method for incremental encoder signal based on PLD was designed according to the logical function of the D trigger.The experiment result shows that the edge jitter and interference burr can be filtered out effectively.
incremental encoder;D trigger;anti-jitter method;programmable logic device(PLD)
TN762
A
1674-5558(2016)03-01166
10.3969/j.issn.1674-5558.2016.05.014
陳強,男,碩士,工程師,研究方向為慣性技術(shù)應(yīng)用。
2015-07-23