基于FPGA的增量型光電編碼器抗抖動(dòng)二倍頻電路設計
2.2.1 濾除編碼器抖動(dòng)的原理
采用二倍頻技術(shù)濾除抖動(dòng)脈沖。所謂二倍頻技術(shù)即對A相或者B相每個(gè)脈沖的上升沿和下降沿分別計數。光電編碼器經(jīng)過(guò)二倍頻后正常輸出波形如圖3所示,A相脈沖O→1跳變時(shí),B為O,則編碼器正轉;B為1,則編碼器反轉。A相脈沖1→O跳變時(shí),B為1,則編碼器正轉;B為0,則編碼器反轉。編碼器正常輸出波形時(shí),A、B兩相交替跳變,如果A相發(fā)生跳變后,B相沒(méi)有發(fā)生跳變A相又發(fā)生跳變,此時(shí)認為是干擾脈沖,反之同樣視為干擾脈沖。本文引用地址:http://dyxdggzs.com/article/191645.htm
分析圖4,對A相的跳變沿進(jìn)行二倍頻計數,B相的高低電平用來(lái)判斷編碼器的正反轉。B相邊沿的抖動(dòng)脈沖對二倍頻計數沒(méi)有影響,如圖4(b)所示。分析圖4(a),A相邊緣的抖動(dòng)認為是干擾脈沖被濾除掉。圖4(c),圖4(d)中的a,b標記的位置是編碼器物理地址,如圖4(d)標記的a,b表示編碼器在此處反復振動(dòng)。圖4(c)、圖4(d)(1)、(2)標記處跳變沿視為抖動(dòng)脈沖,應濾除,A相的正轉脈沖數據數和反轉脈沖數據數相減后就是A相實(shí)際二倍頻后的脈沖數據。
2.2.2 FPGA濾除編碼器抖動(dòng)及仿真結果
根據以上分析,本文采用FPGA濾除增量型光電編碼器輸出抖動(dòng)脈沖。編譯環(huán)境采用QuartusⅡ8.O。在FPGA中使用圖形和語(yǔ)言結合的方法設計邏輯模塊。內部的邏輯子模塊采用Verilog語(yǔ)言來(lái)實(shí)現。頂層模塊的結構圖如圖5所示。A和B輸入引腳連接增量型編碼器A相和B相信號。Acount為16位的數據寄存器,輸出當前編碼器的位置。頂層設計中包含兩個(gè)模塊,一個(gè)是根據編碼器的B相跳變沿記錄來(lái)濾除編碼器A相抖動(dòng)脈沖的BlockA模塊,該模塊根據濾除后的A相脈沖數據個(gè)數并記錄脈沖數據。Verilog的主要程序如下:
評論