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