劉海成,賀 亮
(黑龍江工程學院 電氣與信息工程學院,黑龍江 哈爾濱150050)
光電編碼器是一種集光、機、電為一體的數(shù)字化檢測裝置,具有分辨率高、精度高、結(jié)構(gòu)簡單、體積小、使用可靠、易于維護、性價比高等優(yōu)點,廣泛應(yīng)用于運動測量及控制系統(tǒng)。光電編碼器定義為:一種通過光電轉(zhuǎn)換,將輸至軸上的機械、幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器,主要用于速度或位置(角度)的檢測[1]。光柵是光電編碼器的核心部件。在玻璃或金屬等上面進行刻劃或打孔,可得到一系列密集刻線或孔,這種有周期性刻線或孔分布的光學元件稱為光柵[2]。光柵傳感器具有較強的抗干擾能力,對環(huán)境條件的要求不像激光干涉?zhèn)鞲衅髂菢訃栏瘢蝗绺袘?yīng)同步器和磁柵式傳感器的適應(yīng)性強,油污和灰塵影響它的可靠性,主要適用于在較好環(huán)境中使用[3-4]。
典型的光電編碼器由碼盤(也稱為動片光柵)、檢測光柵(也稱為靜片光柵)、光電轉(zhuǎn)換電路(包括光源、光敏器件、信號轉(zhuǎn)換電路)、機械部件等組成。一般來說,根據(jù)光電編碼器產(chǎn)生脈沖的方式不同,可以分為增量式、絕對式以及復合式三大類。其中,增量式編碼器又稱為正交編碼器,在長度、位移、角度和角位移測量有關(guān)的精密儀器中經(jīng)常使用正交編碼器,此外,也可用于速度和加速度等物理量測量。
正交編碼器的系統(tǒng)結(jié)構(gòu)及模型如圖1所示,碼盤均勻排布著柵孔,孔的多少稱為線數(shù),檢測光柵有A,B和C 3個柵孔。其中,A,B和Z與碼盤柵孔距圓心的半徑相同,孔Z為檢測整圈位移,作為索引信號用于校正整圈計數(shù)誤差[5]。當電動機等旋轉(zhuǎn)時,碼盤隨之轉(zhuǎn)動,通過光柵開放與封閉光通路,在接收裝置輸出端便得到頻率與轉(zhuǎn)速的方波脈沖序列。如圖1所示,A和B要有1個柵孔(90°)的偏差。為實現(xiàn)電子測量,A、B、Z柵孔分別設(shè)置光電傳感器電路,如圖2所示,透光時輸出1,否則輸出0,信號分別稱為QEA、QEB和INDX。如圖1所示,當碼盤恰好處于與檢測光柵的柵孔A完全不遮擋時,碼盤若向左轉(zhuǎn)需要α/4,B孔完全不被遮擋;若向右轉(zhuǎn)需要3α/4,B孔完全不被遮擋,從而通過判斷A,B脈沖相位差α/4或3α/4來識別正反轉(zhuǎn),也就是所謂的鑒相。光電檢測及整形電路輸出時序如圖3所示,QEA和QEB這兩個通道間的關(guān)系是惟一的:如果A相超前B相,那么旋轉(zhuǎn)方向被認為是正向的;如果A相滯后B相,那么旋轉(zhuǎn)方向則被認為是反向的;INDX索引脈沖通道每轉(zhuǎn)1圈產(chǎn)生1個脈沖,作為基準用來確定絕對位置。
圖1 正交編碼器的系統(tǒng)結(jié)構(gòu)及機械結(jié)構(gòu)模型
由于具有α/4和3α/4的正反關(guān)系,鑒相采用D觸發(fā)器實現(xiàn),基本的鑒相電路如圖4所示。UPDN輸出為1表示正轉(zhuǎn),UPDN輸出為0表示反轉(zhuǎn)。
圖4 正交編碼器基本鑒相電路
這樣正交編碼器就有三種工作方式:
1)X1模式,根據(jù)UPDN的狀態(tài),運用計數(shù)器對QEA進行加(UPDN=1)減(UPDN=0)計數(shù);
2)X2模式,根據(jù)UPDN的狀態(tài),運用計數(shù)器對QEA的上升沿和下降沿進行加(UPDN=1)減(UPDN=0)計數(shù),如圖5所示。信號的倍頻有利于提高測量精度,X2模式解碼測量精度是X1模式的兩倍。
3)X4模式,根據(jù)UPDN的狀態(tài),運用計數(shù)器對QEA和QEB的上升沿和下降沿進行加(UPDN=1)減(UPDN=0)計數(shù),如圖6所示。解碼測量精度相比X1模式提高到4倍。
3種模式中,計數(shù)器都要采用加減計數(shù)器,且X2和X4模式都需要雙邊沿加減計數(shù)器,但精度好,且X4模式具有最高精度,當然解碼電路也最復雜。
圖5 X2模式的正交解碼器信號(計數(shù)時鐘的下降沿計數(shù))
圖6 X4模式的正交解碼器信號(計數(shù)時鐘的下降沿計數(shù))
觀察圖5和圖6,在正反轉(zhuǎn)切換時,UPDN信號要異步切換,因此,圖4修正為如圖7所示電路。當QEB為低時的QEA計數(shù)脈沖作為異步信號。
圖7 基于D觸發(fā)器的正交編碼器鑒相電路
觀察圖5和圖6,采用單穩(wěn)態(tài)觸發(fā)器在QEA、QEB的相應(yīng)邊沿處觸發(fā)高脈沖,形成加減計數(shù)的時鐘脈沖。但是,單穩(wěn)態(tài)觸發(fā)器還需要電容等器件,計數(shù)時鐘脈寬控制精度差,且不易集成,一般采用計數(shù)器實現(xiàn)計數(shù)脈沖。X2和X4模式的正交編碼器解碼電路分別如圖8和圖9所示。其中,在多次的實驗過程中發(fā)現(xiàn),雖然信號經(jīng)過了前期的處理,但是多數(shù)情況下仍然會產(chǎn)生噪聲信號,從而嚴重影響了計數(shù)的準確性,降低了整個系統(tǒng)的精度。為了消除噪聲信號,要有相應(yīng)電路濾除抖動,防止計數(shù)器的誤計數(shù)[6]。為此,QEA和QEB都以D觸發(fā)器形式輸入,濾除干擾。而HCLK是高速時鐘,以形成16個HCLK的解碼器的計數(shù)時鐘的脈沖寬度,根據(jù)實際情況調(diào)整HCLK時鐘速度和CNT4的位數(shù),電路通過CPLD等實現(xiàn)。
圖8 X2模式的正交編碼器解碼電路
圖9 X4模式的正交編碼器解碼電路
如圖9所示,X4模式的正交編碼器解碼電路的Verilog HDL描述如下:
module X4_decoder(QEA,QEB,Q,CLR,HCLK);
input QEA,QEB;
input CLR; //CNT32clear
input HCLK;
output[31:0]Q; //CNT32output
reg[3:0] CNT4A ,CNT4B;
reg QA1,QA2,QB1,QB2;
wire orA ,orB;
wire UPDNclr,UPDNset;//phase
reg[31:0] CNT32;
reg UPDN;
wire nCNT32clk;
//-------X2-EQA-------
always@(posedge QEA,posedge CNT4A[3])begin//DFF
if(CNT4A[3]==1'b1)QA1<=1'b0;
else QA1<=1'b1;
end
always@(negedge QEA,posedge CNT4A[3])begin//DFF
if(CNT4A[3]==1'b1)QA2<=1'b0;
else QA2<=1'b1;
end
assign orA=QA1|QA2;
always@(posedge HCLK,negedge orA)begin//CNT4A
if(orA==1'b0)CNT4A<=4'b0000;
else CNT4A<=CNT4A+1'b1;
end
//-------X2-EQB-------
always@(posedge QEB,posedge CNT4B[3])begin//DFF
if(CNT4B[3]==1'b1)QB1<=1'b0;
else QB1<=1'b1;
end
always@(negedge QEB,posedge CNT4B[3])begin//DFF
if(CNT4B[3]==1'b1)QB2<=1'b0;
else QB2<=1'b1;
end
assign orB=QB1|QB2;
always@(posedge HCLK,negedge orB)begin//CNT4B
if(orB==1'b0) CNT4B<=4'b0000;
else CNT4B<=CNT4B+1'b1;
end
//---phase----
assign UPDNset=QA1&(~QEB);
assign UPDNclr=QA2&(~QEB);
always@(posedge QEB,posedge UPDNclr,posedge UPDNset)begin
if(UPDNclr) UPDN<=1'b0;
else if(UPDNset) UPDN<=1'b1;
else UPDN<=QEA;
end
//--CNT32-----
assign nCNT32clk=orA|orB;
always@(negedge nCNT32clk,posedge CLR)begin
if(CLR)CNT32<=0;
else begin
if(UPDN==1'b1)
CNT32<=CNT32+1'b1;
else CNT32<=CNT32-1'b1;
end
end
assign Q=CNT32;
endmodule
綜合后的RTL圖與圖9完全一致。經(jīng)100線正交編碼器實際測試,測試結(jié)果與圖6的編解碼時序圖一致,相位判斷準確。
基于上述對正交編碼器原理的分析和基于Verilog HDL的解碼系統(tǒng)設(shè)計,實際運行切實可行,為正交編碼器的應(yīng)用提供了新的方案。在PLD器件廣泛應(yīng)用的今天,解碼電路很方便地即可集成到系統(tǒng)中,在幾乎不增加成本的情況下獲得了優(yōu)秀的X4模式解碼,以最大精度進行運動參數(shù)測量。
[1]Tan,K K,Zhou,H X,Tong Heng Lee.IEEE Transactions on Instrumentation and Measurement EI SCI[J].[出版者不詳],2002,51(5).
[2]王群京,陳麗霞,李爭,等.基于光電傳感器編碼的永磁球形步進電機運動控制[J].中國電機工程學報,2005,25(13):113-117.
[3]高偉,王云龍,金勇.增量式光電編碼器在交流伺服系統(tǒng)中的應(yīng)用[J].電氣自動化,2011,33(6):36-38.
[4]任作新.提高對增量編碼器讀數(shù)的準確性[J].自動化儀表,1995,15(12):24-26.
[5]秦進平,劉海成.基于MCU和光柵的高精度位移傳感器的研制[J].制造業(yè)自動化,2005,27(4):14-15.
[6]閆莎莎,朱世強.基于CPLD的光電編碼器測量系統(tǒng)[J].機電工程,2009,1(1):77-79.