基于FPGA的旋鈕編碼器的辨向狀態(tài)機(jī)設(shè)計與實現(xiàn)
引言
本文引用地址:http://www.ex-cimer.com/article/128900.htm旋鈕是一種非常常用的器件,多用于設(shè)備或儀器的面板來進(jìn)行參數(shù)的調(diào)節(jié)。由于旋鈕本身的機(jī)械特性,在旋轉(zhuǎn)的過程中產(chǎn)生的波形信號會有噪聲存在,這些不確定的噪聲會影響到對旋鈕旋轉(zhuǎn)方向的判斷,也會導(dǎo)致轉(zhuǎn)動次數(shù)不準(zhǔn)確的情況。常用的消除機(jī)械噪聲的方法有硬件方法和軟件方法。硬件方法一般包括RC濾波方法和RS雙穩(wěn)態(tài)觸發(fā)器方法,這兩種方法實時性較好,但需要較多的附加電路。軟件方法一般都采用延遲法,雖然這種方法可以節(jié)省硬件電路,但實時性不好。本文介紹了一種狀態(tài)機(jī)的方法來消除噪聲,即不需要太多的附加電路又能保證較好實時性。FPGA的集成度很高,可完成極其復(fù)雜的時序和組合邏輯電路功能,適用于高速、高密度的高端數(shù)字邏輯電路設(shè)計領(lǐng)域。
旋鈕編碼器
旋鈕是在旋柄連接到中心的凸輪上同時操作兩個開關(guān),并且開關(guān)連接有上拉電阻,當(dāng)旋鈕向某一個方向轉(zhuǎn)動時總有一個開關(guān)先于另一個開關(guān)先斷開,兩個開關(guān)上產(chǎn)生兩個有相位差的信號。當(dāng)旋鈕處在穩(wěn)定位置的時候,A和B兩個開關(guān)都是閉合的,此時A和B都為低電平。旋鈕編碼器的基本結(jié)構(gòu)如圖1所示。
辨向的電路設(shè)計與實現(xiàn)
由于旋鈕轉(zhuǎn)動時A和B斷開有一定的時間差,所以A和B開關(guān)的波形會有相應(yīng)的相位差。旋鈕左旋時開關(guān)B先斷開,此時B的電平為高電平,即B先產(chǎn)生一個上升沿,隨后A的上升沿到來。旋鈕右旋時A和B的波形上升沿的先后順序與左旋相反。旋鈕左旋和右旋時A和B的波形如圖2所示。
評論