編輯注:本文介紹了一種針對人們將旋轉編碼器用于控制時經常遇到的“粗/細”問題的靈活解決方案。誰說必須使用微處理器才能增加智能? 與普通面板安裝式電位計的尺寸和形狀相仿,增量式旋轉編碼器提供了一種模擬電位計的“數字”廉價替代品。這種編碼器通常用在音視頻設備、環境控制、消費類電器、實驗室設備、科學儀器等設備中完成電平控制、調諧和定時器設置。 增量型編碼器的輸出一般由兩個相位上正交(即相移為四分之一周期)的信號組成,軸每旋轉一次會產生固定數量的脈沖,每個脈沖對應旋轉的增量。編碼器內部有兩個開關連接到公共端。這個公共端通常連接到地,如圖1所示,而兩個正交輸出連接到上拉電阻(R1和R2)。 圖1:自適應接口電路響應編碼器的快速旋轉,并據此增加輸出脈沖速率。 圖1陰影部分電路是用于實現正交編碼的典型編碼器接口。其中R3-C1和R4-C2提供噪聲濾除和觸點去抖,同時由施密特NAND IC1a和IC1b在A點和B點產生“完整的”數字信號。與編碼器輸出一樣,這些信號的相位差也是90度:當編碼器順時針旋轉時,信號A的上升沿領先信號B上升沿四分之一周期;當編碼器逆時針旋轉時,信號B領先信號A四分之一個周期。 將信號A發送至觸發器IC2a的D輸入端,用信號B的上升沿作為觸發器的觸發時鐘,那么當編碼器順時針旋轉時,Q端的輸出信號變高;當編碼器逆時針方向旋轉時,Q端的輸出信號變低,從而指示旋轉的方向。信號A或B都可以用作增量脈沖。例如,如果編碼器是20增量類型,那么軸每轉360度A或B點的信號都會產生20個脈沖。 轉到第2頁 在任一時刻只有少量編碼器旋轉的應用中簡單接口電路可以工作的很好。然而,在要求數百甚至上千的增量脈沖情況下這種接口電路是遠遠不夠的。例如,考慮1000個脈沖要通過時鐘進入計數器的應用。20增量型編碼器需要旋轉50次才能產生這么多脈沖,這是非常耗時和費力的任務! 然而,只需增加另外一個集成電路(IC3,一個雙路可重觸發單穩態多諧振蕩器)和少量的低價元件,電路就能識別編碼器為了信號B處的每個增量脈沖產生多個輸出脈沖而正在快速旋轉。這個附加電路顯示在圖中的陰影區外,工作原理如下: 單穩態多諧振蕩器IC3a和觸發器IC2b組成了一個簡單的速率檢測器,它能監視B點信號的頻率。編碼器更快速度的旋轉將增加該信號頻率,縮短信號周期。速率檢測器能夠判斷什么時候信號周期小于由單穩態電路的定時元件R5和C3設定的閾值。 第二個單穩態器件IC3b與增加的R6、C4和Q1一起工作在非穩態。定時元件R6-C4和R8-C5決定了從引腳12采集到的非穩態輸出信號的頻率和占空比。 第一個單穩態器件IC3a被配置為在B信號的下降沿觸發,而觸發器IC2b的觸發時鐘是B信號的上升沿。當編碼器旋轉速度較慢時,IC3a的Q輸出端(引腳13)信號由一系列正向脈沖組成。脈沖寬度等于: t(w) = 0.45 × R5 × C3 (秒) (Vcc = 5V) 當R5 = 560kΩ并且 C3 = 100nF時,t(w)標稱值是25ms。當編碼器旋轉很慢時,信號B的頻率很低,其周期相對較長,(在被信號B的下降沿作為時鐘觸發后)IC3a的Q輸出端信號在信號B再次變高之前已經返回到低電平。現在,由于Q驅動IC2b的/RESET輸入,信號B在觸發器時鐘輸入端(引腳11)的正跳變對輸出沒有影響,Q端(引腳9)保持低電平。繼而使IC3b的/RESET輸入端(引腳11)置低,IC3b周圍形成的非穩態電路保持在復位狀態,最終使/Q輸出端(引腳12)處于高電平。最終結果是IC3a的Q輸出端的25ms脈沖經選通穿過IC1d,然后被IC1c反向,電路輸出包含一系列恒定寬度的正向脈沖,每個脈沖對應編碼器的增量旋轉。因此,當編碼器慢速旋轉時,電路每個增量只產生一個25ms的輸出脈沖。 轉到第3頁 如果編碼器相對較快的旋轉,信號B的周期會相應縮短,直到該信號下面部分(“空”)的寬度剛好小于t(w)(IC3a的輸出脈沖時長)。由于引腳13的Q端在信號B變高時是高電平,因此IC2b的觸發器由B的上升沿作時鐘觸發,其引腳9的Q輸出變高。這種低到高的轉變將使IC3b從復位狀態釋放,同時觸發非穩態電路,使之開始以R6-C4和R8-C5確定的頻率振蕩。結果除了IC3a的Q輸出端脈沖外,在IC3b的/Q輸出端產生的一個或多個脈沖也會經選通經過IC1d。詳見圖2a的底部軌跡。 圖2a:電路從單個脈沖逐步過渡到多個脈沖。 最后,當編碼器旋轉速度非常快時,B點信號的下降沿將在其Q輸出有可能變低之前重新觸發IC3a。在這些條件下,IC3a和IC2b的Q輸出端都保持在高電平,從而允許非穩態電路自由運行。結果IC1c輸出端的信號是一連串非穩態頻率的脈沖,如圖2b的底部軌跡所示。 圖2b:當編碼器旋轉速度很快時,輸出以非穩態頻率“自由運行”。 圖2細節:頂部軌跡:信號A;中間軌跡:信號B;底部軌跡:IC1c的電路輸出。 電路從單脈沖變為多脈沖的轉折點取決于IC3a的定時元件。用戶合理期待的編碼器最快轉速大約是每秒兩轉。對于每轉20個增量的編碼器來說,這相當于每秒40個脈沖,或25ms的信號周期。因此,當編碼器的轉速超過每秒兩轉時,電路將變為產生多個輸出脈沖。 非穩態頻率應選擇適合你的要求。當采用圖1所示的R6、C4、R8和C5值時,非穩態頻率約600Hz,脈沖寬度標稱值為1ms。注意,為了使電路能夠正常工作,IC3a必須是可重觸發的單穩態器件。正常情況下,通過將IC1c的未用輸入接到高可以使IC1c用作反相器。然而,通過將這個輸入端連接到IC2a的Q輸出端,電路將只在編碼器以順時針方向旋轉時才會產生輸出脈沖。相反,通過將NAND輸入端連接到IC2a的/Q輸出端,電路只在編碼器逆時針旋轉時產生輸出脈沖。當你只需要編碼器以特定方向旋轉時產生輸出脈沖的情況下這種行為就非常有用。 原文作者:Anthony Smith |