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