陳 強,朱 娜
(北京航天控制儀器研究所,北京100039)
基于可編程邏輯器件的增量式編碼器信號去抖方法的實現
陳強,朱娜
(北京航天控制儀器研究所,北京100039)
在伺服系統中,實時、準確地獲得編碼器反饋信號對伺服閉環控制至關重要。從增量式編碼器的結構原理出發,分析引起其輸出信號抖動的可能原因。根據D觸發器邏輯功能,設計了一種基于可編程邏輯器件的增量式編碼器信號去抖方法。實驗結果表明,該方法能有效濾除信號的邊沿抖動和干擾毛刺。
增量式編碼器;D觸發器;去抖方法;可編程邏輯器件
在運動控制領域,常常需要測量角度、速度、位移等信息,光電編碼器是常用的測量裝置之一。光電編碼器是一種通過光電轉換將輸出軸上的機械(幾何)位移量轉換為電脈沖或數字量的傳感器[1]。根據光電編碼器產生脈沖的方式不同,可分為增量式、絕對式和復合式3種;根據編碼器運動部件的運動方式不同,又可分為旋轉式和直線式2種。本文主要討論增量式旋轉光電編碼器(簡稱:增量式編碼器)。
增量式編碼器碼盤的基本結構如圖1所示,碼盤上的開孔能夠使其在旋轉過程中對光電發送和接收裝置產生通斷變化,從而可以產生相應的脈沖信號[2]。每產生1個輸出脈沖信號就對應于1個位移增量,可檢測某個時間段的相對位置增量,不能直接檢測絕對位置信息。輸出的A、B兩相脈沖信號相位差90°。當逆時針運動時,A相比B相超前90°;當順時針運動時,A相比B相滯后90°。

圖1 增量式編碼器碼盤基本結構及輸出信號波形Fig.1 Incremental encoder basic structure and output signal waveform
由于自身和使用環境等諸多因素影響,增量式編碼器輸出信號在進入處理電路前無法避免會混有或多或少的干擾脈沖,引起錯誤計數。本文分析其產生原因,提出一種基于可編程邏輯器件的增量式編碼器信號去抖方法。
常見的增量式編碼器信號抖動主要有兩種原因,一種是編碼器自身輸出的誤碼脈沖,一種是在信號傳輸環節引入的干擾。
1.1編碼器自身輸出的誤碼脈沖
在實際應用中,由于機械振動、工作環境、電機負載等都無可避免地會產生振動,編碼器會在某點位置附近往復振動,在輸出信號的脈沖邊緣出現抖動,產生誤碼。增量式編碼器自身誤碼波形如圖2所示[3-5]。

圖2 增量式編碼器自身誤碼波形Fig.2 Incremental encoder self bit error waveform
1.2信號傳輸環節引入的干擾
編碼器通過電纜、接插件等傳輸環節與處理電路相連,在傳輸過程中難免受到外部電磁干擾的影響。干擾程度與干擾源強弱、離干擾源距離、電纜長度、走線方式、屏蔽好壞等因素有關。增量式編碼器傳輸環節受到干擾波形圖如圖3所示。

圖3 增量式編碼器傳輸環節受到干擾波形圖Fig.3 Incremental encoder transmission interference waveform
在伺服系統中,編碼器反饋信號是閉環控制的關鍵,不論是速度控制,還是位置控制,實時、準確地獲取編碼器反饋信號對整個閉環系統的控制精度、響應速度和可靠性至關重要。
在數字電路中輸入高、低電平有2個極限值,分別為有效低電平的最大輸入值Va,有效高電平的最小輸入值Vb。例如:TTL電平,Va≤0.8V,Vb≥ 2.0V;CMOS電平,
增量式編碼器的邊沿抖動和干擾毛刺會使數字電路脈沖計數值大于實際值,使采集的角度值與實際值產生偏差,造成后續邏輯錯誤或控制運算偏差,對閉環控制系統性能產生很大危害。為了更準確地測量位移或角度值,必須在處理電路中通過有效的方法去除脈沖信號的邊沿抖動和干擾毛刺。
邊沿抖動和干擾毛刺的維持時間相比正常脈沖信號具有持續時間短、數量多的特征。去抖方法的基本思想是:在一定時間內對信號電平多次采樣,比較采樣值;當電平值保持一致時,則認為不是抖動,正常輸出;當電平值前后不一致時,則認為是抖動,濾除掉。
D觸發器具有以下邏輯功能:輸出端Q的狀態隨輸入端D的狀態而變化;但總比輸入端狀態的變化慢1個時鐘周期。本文在不改變硬件電路的前提下,在可編程邏輯器件芯片中使用VHDL語言,利用多個D觸發器和邏輯判斷去除增量式編碼器信號中包含的邊沿抖動和干擾毛刺。
如圖4所示,編碼器脈沖信號進入可編程邏輯器件后經過4個串聯的D觸發器,對第2、第3、第4個D觸發器的輸出信號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保持上一狀態值。

圖4 增量式編碼器信號去抖原理圖Fig.4 Incremental encoder signal anti-jitter principle diagram
由此可見,信號經過以上電路處理后,脈沖信號必須保持4倍以上時鐘信號寬度時才能正常輸出。編碼器脈沖信號中混入的邊沿抖動和干擾毛刺的維持時間比正常脈沖信號短很多,設定合適的時鐘頻率,通過該去抖電路將可以基本濾出邊沿抖動和干擾毛刺,獲得準確的計數值。
使用時需要根據所采集增量式編碼器脈沖信號的最高頻率來確定合適的時鐘頻率。時鐘頻率設定過高則無法消除頻率較寬的邊沿抖動和干擾毛刺;設定過低則可能濾除實際的脈沖值。另外,電路中的D觸發器和JK觸發器會使輸出信號產生延時,設計控制系統時也需要考慮延時產生的影響。
本文采用Altera公司的MAX II系列CPLD芯片EPM570T100,使用Quartus II 7.2軟件作為集成綜合開發工具。
以采集一個12位分辨率的增量式旋轉編碼器為例,進行仿真和實驗,驗證該去抖方法的效果。該編碼器旋轉1圈共產生脈沖數為212=4096p/r,假設系統伺服控制的最高轉速為0.5rad/s,則1s時間內產生的脈沖數最多為4096p/r×0.5rad/s=2048p/s,A、B兩相信號最大頻率約為f=2KHz,周期約為T=0.5ms。
根據香農采樣定理,采樣頻率要遠高于信號頻率,一般取10倍以上,但不能過高。過高會將邊沿抖動和干擾毛刺當作實際信號采集。通過圖3可知增量式編碼器邊沿抖動和干擾毛刺的維持時間在4μs(250KHz)以下,經綜合考慮,該電路選擇時鐘頻率為fclk=50KHz。
設計完成后的仿真結果如圖5所示,該方法可以有效濾除脈沖上的抖動和毛刺,獲得規則的脈沖波形。在實際應用過程中也可以起到顯著的去抖效果,如圖6所示。

圖5 仿真結果Fig.5 Simulation result

圖6 實際信號防抖處理前后對比Fig.6 Comparison of actual signal image before and after anti-jitter treatment
本文設計的信號去抖方法在不增加硬件電路的前提下,利用可編程邏輯器件的硬件描述語言成功去除增量式編碼器信號的邊沿抖動和干擾毛刺,保證了脈沖計數值的準確。同時,只需根據實際信號脈寬,合理選取時鐘頻率,該方法還可以擴展應用于鍵盤、按鍵、開關等信號的防抖處理。
[1]楊立溪.慣性技術手冊[M].北京:中國宇航出版社,2009. YANG Li-xi.Handbook of inertial technology[M].Beijing: China Aerospace Press,2009.
[2]蘇奎峰,呂強,鄧志東.TMS320x28xxx原理與開發[M].北京:電子工業出版社,2009. SU Kui-feng,LV Qiang,DENG Zhi-dong.Principle and development of TMS320x28xxx[M].Beijing:Electronics Industry Press,2009.
[3]方華松,丁望來.基于FPGA的抗編碼器抖動干擾的高精度編碼技術[J].船電技術,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的光電編碼器測量系統[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]王鵬,杜衛東,呂志剛,等.基于FPGA與FSM的高精度測角系統設計與實現[J].電子技術應用,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的智能寬帶去邊沿抖動技術[J].電子測量與儀器學報,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
陳強,男,碩士,工程師,研究方向為慣性技術應用。
2015-07-23