摘? 要: 旋轉(zhuǎn)編碼器" title="旋轉(zhuǎn)編碼器">旋轉(zhuǎn)編碼器應(yīng)用于角度定位或測(cè)量時(shí),,由于旋轉(zhuǎn)軸的晃動(dòng)可能引起編碼器輸出波形的抖動(dòng),從而引發(fā)誤計(jì)數(shù)現(xiàn)象,。介紹了一個(gè)抗抖動(dòng)計(jì)數(shù)電路,,濾除了旋轉(zhuǎn)編碼器因抖動(dòng)而造成的誤計(jì)數(shù),。
關(guān)鍵詞: 旋轉(zhuǎn)編碼器? 抗抖動(dòng)電路? 數(shù)字電路
旋轉(zhuǎn)編碼器應(yīng)用于角度定位或測(cè)量時(shí),通常有A,、B,、Z三相輸出。旋轉(zhuǎn)編碼器的輸出波形見圖1,。A相和B相輸出占空比為50%的方波,。編碼器每轉(zhuǎn)一周,A相和B相輸出固定數(shù)目的脈沖(如100個(gè)脈沖),。當(dāng)編碼器正向旋轉(zhuǎn)時(shí),,A相比B相超前四分之一個(gè)周期;當(dāng)編碼器反向旋轉(zhuǎn)時(shí),,B相比A相超前四分之一個(gè)周期。A相和B相輸出方波的相位差為90±45°,。編碼器每轉(zhuǎn)一周,,Z相輸出一個(gè)脈沖。由于編碼器每轉(zhuǎn)一周,,A相和B相輸出固定數(shù)目的脈沖,,則A相或B相每輸出一個(gè)脈沖,表示編碼器旋轉(zhuǎn)了一個(gè)固定的角度,。當(dāng)Z相輸出一個(gè)脈沖時(shí),,表示編碼器旋轉(zhuǎn)了一周。因此旋轉(zhuǎn)編碼器可以測(cè)量角位移及位移方向,。
?
?
問題出在伺服系統(tǒng)停止工作時(shí),,若無(wú)鎖定,則旋轉(zhuǎn)軸受外力(如風(fēng)力影響)可能自由晃動(dòng),,因而引起編碼器輸出波形抖動(dòng),,如圖2所示,從而引起誤計(jì)數(shù),。在這種情況下,,就不能對(duì)波形進(jìn)行正確計(jì)數(shù)。雖然可以通過軟件設(shè)置標(biāo)志狀態(tài),,用記錄歷史狀態(tài)的變化來(lái)濾除誤計(jì)數(shù),,但是程序耗費(fèi)頗大。因此,,本人設(shè)計(jì)了一個(gè)抗抖動(dòng)計(jì)數(shù)電路,,它能夠自動(dòng)消除抖動(dòng)造成的誤計(jì)數(shù)。
?
?
1 抗抖動(dòng)計(jì)數(shù)電路原理圖
圖3是抗抖動(dòng)計(jì)數(shù)電路原理圖,。此電路濾除了旋轉(zhuǎn)編碼器輸出波形的抖動(dòng)現(xiàn)象,。該電路分為四個(gè)部分:譯碼電路U4A;互鎖電路U5A、U5B;正旋計(jì)數(shù)鏈J1,、J3,、J5和反旋計(jì)數(shù)鏈J2、J4,、J6,。U4A為二四譯碼器" title="譯碼器">譯碼器,U5A,、U5B為與門" title="與門">與門,,J1~J6為D觸發(fā)器。正旋計(jì)數(shù)鏈負(fù)責(zé)對(duì)編碼器正向旋轉(zhuǎn)的計(jì)數(shù),,反旋計(jì)數(shù)鏈負(fù)責(zé)對(duì)編碼器反向旋轉(zhuǎn)的計(jì)數(shù),。
?
?
2 抗抖動(dòng)計(jì)數(shù)電路工作分析
圖4為二四譯碼器輸出的波形,。譯碼器產(chǎn)生d、a,、b,、c四種不同的狀態(tài),。在圖3中當(dāng)B=0,、A=0時(shí),譯碼器 Q0輸出為d狀態(tài),,d狀態(tài)為高電平" title="高電平">高電平,。當(dāng)B=0、A=1時(shí),,譯碼器Q1輸出為a狀態(tài),,a狀態(tài)為高電平。當(dāng)B=1,、A=1時(shí),,譯碼器 Q2輸出為b狀態(tài),b狀態(tài)為高電平,。b狀態(tài)不影響計(jì)數(shù)和方向確定,,在圖3電路中沒有使用。當(dāng)B=1,、A=0時(shí),,譯碼器Q3輸出為c狀態(tài),c狀態(tài)為高電平,。
?
?
當(dāng)旋轉(zhuǎn)編碼器正向旋轉(zhuǎn)時(shí),,譯碼器輸出的狀態(tài)順序?yàn)閐、a,、b,、c、d,、a,、b、c……,。如圖4所示,。當(dāng)B=0、A=0時(shí),,進(jìn)入d狀態(tài),,與門U5A的Pin2=a=0(Pin是管腳的意思),于是U5A的輸出Pin3=0,。D觸發(fā)器J1的R=d=1,、S=0,,因此J1被清0。與門U5B的Pin5=c=0,,于是U5B的輸出Pin4=0,。D觸發(fā)器J2的R=d=1、S=0,,因此J2也被清0,。這時(shí)J1、J2的端都為1,,與門U5的 Pin1=Pin6=1,,U5A和U5B都處于等待開門狀態(tài)。當(dāng)進(jìn)入狀態(tài)a時(shí),,Q1=a=1,,U5A的Pin2=a=1。由于c=0,,所以J2的
端仍為1,,U5A的Pin1=1,U5A的輸出Pin3=1,。J1的R=d=0,、S=1,因此J1被置1,。J1的Q=1,,
=0。J1的Q=1,,正旋標(biāo)志送到了J3的D端,。同時(shí)J1的
端關(guān)閉了U5B。在下一個(gè)d出現(xiàn)之前,,所有的c脈沖都不會(huì)改變J2的狀態(tài),。這就是說(shuō),J1,、J3,、J5組成的正旋計(jì)數(shù)鏈被打開,J2,、J4,、J6組成的反旋計(jì)數(shù)鏈被阻斷。U5A,、U5B,、J1、J2完成互鎖的功能,。在進(jìn)入狀態(tài)a時(shí),,J3的R=a=1,、S=0,J3被清0,,J5的R=a=1,、S=0,J5被清0,。在進(jìn)入狀態(tài)c前,,J3的R=a=0、S=0,、D=1,,J3處于待觸發(fā)狀態(tài)。J3的CLK=c,,當(dāng)c脈沖上升沿過后,D=1被打入J3的Q端,,正旋標(biāo)志送到了J5的D端,。在進(jìn)入狀態(tài)d前,J5的R=a=0,、S=0,,J5處于待觸發(fā)狀態(tài)。J5的CLK=d,,當(dāng)d脈沖上升沿過后,,D=1被打入J5的Q端,,正旋標(biāo)志送到了正旋計(jì)數(shù)輸出端。正旋計(jì)數(shù)輸出端由低電平變?yōu)楦唠娖健5酱藶橹?,完成了一次正旋?jì)數(shù)。當(dāng)由狀態(tài)d進(jìn)入狀態(tài)a時(shí),,J5的R=a=1,、S=0,J5被清0,,正旋計(jì)數(shù)輸出端由高電平變?yōu)榈碗娖?。由此可知,?dāng)旋轉(zhuǎn)編碼器正向旋轉(zhuǎn)時(shí),,對(duì)應(yīng)A相和B相的每一個(gè)完整周期,,正旋計(jì)數(shù)輸出端都會(huì)產(chǎn)生相應(yīng)的一個(gè)脈沖。
a的出現(xiàn)搶到了正旋計(jì)數(shù)權(quán),。只有在d重新出現(xiàn)后,,脈沖c才可能有機(jī)會(huì)搶到反旋計(jì)數(shù)權(quán)。從而保證了一旦進(jìn)入正旋計(jì)數(shù)狀態(tài),,不全完成這一過程,,就進(jìn)入不了反旋計(jì)數(shù)狀態(tài),。運(yùn)行時(shí)有可能從狀態(tài)a返回狀態(tài)d,結(jié)果這只不過釋放正旋計(jì)數(shù)權(quán),。因這時(shí)正旋標(biāo)志還只在J3輸入端上,,a出現(xiàn)時(shí)已把J3清0。d狀態(tài)只會(huì)把0送給J5的Q端,,因此不會(huì)產(chǎn)生誤計(jì)數(shù),。
當(dāng)旋轉(zhuǎn)編碼器反向旋轉(zhuǎn)時(shí),譯碼器輸出的狀態(tài)順序?yàn)閐,、c,、b、a,、d,、c、b,、a……,。這種情況的分析方法與正向旋轉(zhuǎn)的分析方法相同,這里不再敘述,。
這就好比接力賽,。在一個(gè)只允許上一個(gè)人的封閉的環(huán)形跑道上依次均勻設(shè)d、a,、b,、c四個(gè)站,立四個(gè)裁判員,。d點(diǎn)為起止點(diǎn),、出入口,持棒運(yùn)動(dòng)員沿環(huán)形跑道一站站往下跑,。d裁判長(zhǎng)的職責(zé)是:運(yùn)動(dòng)員往a去(順行),,告示:“有人,正向”;往c去(逆行),,告示:“有人,,反相”。其他裁判員的職責(zé)是給到達(dá)本站的運(yùn)動(dòng)員發(fā)簽證(計(jì)數(shù)標(biāo)志),,往回跑,,撤銷簽證。d裁判長(zhǎng)的計(jì)分規(guī)則是:憑其他裁判的簽證齊全加牌示,,正,,加一分,反,減一分,,然后撤銷簽證,。簽證不齊到d,則不計(jì)分,,撤銷簽證,。運(yùn)動(dòng)員在跑道內(nèi)來(lái)回跑或坐時(shí),d裁判視而不見,。
例如在圖2中,,當(dāng)從狀態(tài)d進(jìn)入狀態(tài)a時(shí),正旋標(biāo)志送到J3的D端,。此后的a,、b、a,、b,、a、b都不起作用,,只是把J3和J5反復(fù)清0,。當(dāng)從狀態(tài)b進(jìn)入狀態(tài)c時(shí),正旋標(biāo)志送到J5的D端,。當(dāng)從狀態(tài)c進(jìn)入狀態(tài)d時(shí),正旋標(biāo)志送到正旋計(jì)數(shù)輸出端,,同時(shí)J1和J2被清零,。在從狀態(tài)d進(jìn)入狀態(tài)c后,反旋標(biāo)志送到J4的D端,。同時(shí),,D=0被打入J3的Q端,這時(shí)J5的D端為零,。在從狀態(tài)c回到狀態(tài)d后,,反旋計(jì)數(shù)權(quán)被釋放。但是,,由于J5的D端為零,,雖然這里再次出現(xiàn)狀態(tài)d,該d脈沖不會(huì)發(fā)生計(jì)數(shù),,這就是抗抖動(dòng),。
圖5為抗抖動(dòng)計(jì)數(shù)電路的輸出波形。此電路計(jì)數(shù)頻率可達(dá)10MHz,。A相和B相輸入前應(yīng)予整形,,必要時(shí)還要進(jìn)行光電隔離。
?
?
本人把此電路用于對(duì)天線云臺(tái)" title="云臺(tái)">云臺(tái)角度的定位與測(cè)量,。天線云臺(tái)有兩個(gè)旋轉(zhuǎn)角度,,俯仰角從0~90度,,方位角從0~354度。旋轉(zhuǎn)編碼器用的是OMRON公司的E6A2,。此編碼器每轉(zhuǎn)一周,,A相或B相輸出一百個(gè)脈沖。由此可得,,抗抖動(dòng)計(jì)數(shù)電路每輸出一個(gè)脈沖,,編碼器旋轉(zhuǎn)的角度是3.6度。如果加上變速齒輪將會(huì)提高角度測(cè)量精度,。把抗抖動(dòng)電路的正旋計(jì)數(shù)輸出和反旋計(jì)數(shù)輸出接到單片機(jī)的中斷管腳上,,其下降沿時(shí)給單片機(jī)發(fā)中斷。單片機(jī)把處理的角度信息送到顯示屏上顯示出來(lái),,從而完成了對(duì)天線云臺(tái)角度的定位與測(cè)量,。這套天線角度顯示系統(tǒng)在實(shí)際使用中運(yùn)行一直很穩(wěn)定,沒有出現(xiàn)過誤計(jì)數(shù)現(xiàn)象,。
?
參考文獻(xiàn)
1 王毓銀.脈沖與數(shù)字電路.北京:高等教育出版社,,1992
2 Victor P. Nelson. 數(shù)字邏輯電路分析與設(shè)計(jì).北京:清華大學(xué)出版社,1997
4 John M. Yarbrough(美).李書浩譯.數(shù)字邏輯應(yīng)用與設(shè)計(jì).北京:機(jī)械工業(yè)出版社,,2000
5 陸 坤,,奚大順,李之權(quán).電子設(shè)計(jì)技術(shù)[M]. 成都:電子科技大學(xué)出版社,,1997