編碼器及其應用概述
編碼器(encoder)是將信號(如比特流)或數據進行編制、轉換為可用以通訊、傳輸和存儲的信號形式的設備。編碼器把角位移或直線位移轉換成電信號,前者成為碼盤,后者稱碼尺。按照讀出方式編碼器可以分為接觸式和非接觸式兩種。接觸式采用電刷輸出,一電刷接觸導電區或絕緣區來表示代碼的狀態是"1"還是"0";非接觸式的接受敏感元件是光敏元件或磁敏元件,采用光敏元件時以透光區和不透光區來表示代碼的狀態是"1"還是"0",通過"1"和"0"的二進制編碼來將采集來的物理信號轉換為機器碼可讀取的電信號用以通訊、傳輸和儲存。
旋轉編碼器是用來測量轉速的裝置,光電式旋轉編碼器通過光電轉換,可將輸出軸的角位移、角速度等機械量轉換成相應的電脈沖以數字量輸出(REP)。它分為單路輸出和雙路輸出兩種。技術參數主要有每轉脈沖數(幾十個到幾千個都有),和供電電壓等。單路輸出是指旋轉編碼器的輸出是一組脈沖,而雙路輸出的旋轉編碼器輸出兩組A/B相位差90度的脈沖,通過這兩組脈沖不僅可以測量轉速,還可以判斷旋轉的方向。
線性編碼器同樣使用磁柵編碼陣列和霍爾編碼陣列協調工作,線性編碼器的霍爾編碼陣列叫作"閱讀器", 磁柵編碼陣列叫作"感應標尺".但是線性編碼器采用的霍爾元件是線性霍爾,當霍爾元件保持一定間隙沿磁柵軸線表面移動時,線性霍爾感測出類似正弦波信號的位移量信息。信號分割器重分正弦波微電流信號,可以得到精度非常高的位置信息。理論上講,只要信號分割器分割的足夠細,系統的分辨率可以非常高。在實際工況下,由于雜散磁場、電磁干擾等因素影響,系統分辨率只能達到0.17毫米的水平。由于霍爾編碼陣列元件工作在線性狀態,系統受外界溫度、濕度、雜散磁場、電磁干擾等因素的影響比較大。
僅有一路脈沖輸出的編碼器不能確定旋轉的角度,所以用處不大。如果使用兩路碼道,其扇區之間的相位差為90度(如圖2所示),那么通過該正交編碼器的兩路輸出通道就可以確定位置和旋轉的方向兩個信息。例如,如果通道A相位超前,碼盤就以順時針旋轉。如果通道B相位超前,那么碼盤就是以逆時針旋轉。因此,通過監控脈沖的數目和信號A、B之間的相對相位信息,就可以同時獲得旋轉的位置和方向信息。
除此之外,有些正交編碼器還包含被稱為零信號或者參考信號的第三個輸出通道。這個通道每旋轉一圈輸出一個單脈沖。你可以使用這個單脈沖來精確計算某個參考位置。在絕大多數編碼器中,這個信號稱為Z軸或者索引。
為止,本文之前介紹了單端增量式正交編碼器。由于A和B信號都以地作為參考信號,所以被稱作為單端,并且每個信號只有一根線(或者說只有一端)。而另外一種常用的編碼器為差分編碼器,它的A和B信號都有兩根線。A信號的兩根線分別是A'和A,B信號的兩根線分別是B'和B.因為這四根線總是輸出某個已知電平(0V或者Vcc),所以這種結構也被稱為推挽結構。當A是Vcc時A'就是0V,反之,當A是0V時A'就是Vcc.而在單端編碼器的情況下,A或者是Vcc或者懸空。采用差分檢測可以保證信號的準確性,所以差分編碼器通常可以用在電噪聲較大的環境中。
采用增量式編碼器僅能測量出位置的變化信息(從中可以計算出運動速度和加速度),但卻無法確定目標的絕對位置。在這里,我們將介紹第三種編碼器:絕對式編碼器,該類編碼器能夠獲得目標的絕對位置。這種編碼器同增量式編碼器一樣,具有交替變化的不透光扇區和透光扇區。但是絕對式編碼器在編碼器的碼盤上,采用了多組分區形成同心碼道,如同靶環一樣。同心碼道從編碼器碼盤的中心出發,向外擴展直到碼盤外部,每一層碼道都比其內層多了一倍的分區。第一層,即最內層的碼道,只有一個透光扇區和一個不透光扇區;位于中心的第二層就具有兩個透光扇區和兩個不透光扇區;而第三層碼道的透光扇區和不透光扇區就各有四個。如果編碼器有10層碼道,那么最外圍的碼道就有512個扇區;如果有16層碼道,那么最外圍的碼道就有32,767個扇區。
因為絕對式編碼器的每層碼道都比它里面一層的碼道多了一倍數目的扇區,所以扇區的數目就形成了二進制計數系統。在這種編碼器中,碼盤上的每個碼道都對應一個光源和一個接收器。這意味著10層碼道的編碼器就需要10組光源和接收器,而16層碼道的編碼器就需要16組光源和接收器。
絕對式編碼器的優勢在于您可以降低編碼器的轉速,可以使編碼器的碼盤在整個機器運動周期中只轉一圈。如果機器運動距離為10英寸,而編碼器具有16位精度,那么機器位置的精度就是10/65,536,即0.00015英寸。如果機器的行程更長譬如6英尺,那么粗旋轉編碼器可以保證跟蹤每一英尺距離;第二級稱為細旋轉編碼器可以跟蹤1英尺以內的距離。這就意味著,你可以調整粗編碼器,使其在整個6英尺距離內旋轉一圈;也可以調整細編碼器,使其能夠分辨的范圍為1英尺(即12英寸)。
怎樣使用編碼器進行測量
要使用編碼器進行測量,必需有一個基本的電子設備即計數器。基本的計數器是通過其幾個輸入通道,產生一個數值,來表示檢測到的邊沿(即波形中從低到高或高到低的變化)數目。大多數計數器都有三個相互關聯的輸入--門限、源和升/降選擇。計數器記錄源輸入中的事件數目,并且根據升/降選擇線的狀態進行加計數或者減計數。例如:如果升/降狀態位"高",那么計數器加計數;如果升/降狀態位"低",那么計數器就減計數。圖3顯示了一個簡化的計數器框圖。
編碼器通常有5根線需要連接。不同的編碼器,這些線的顏色是不一樣的。你可以使用這些線來給編碼器提供電源,并且讀入A、B和Z信號。圖4顯示了一個增量式編碼器的典型接口定義。
接下來一步就要決定這些線應該接到什么位置。如上文所述,將信號A接到源接線端上,對其信號中的脈沖進行計數。信號B連接到升/降選擇端口上。將任意+5V的直流電源接到電源和地接線端口上--大多情況下,一個數據采集設備只需一根數字線就足夠了。
既然對信號邊沿計數了,接下來你需要考慮的就是這些數值應如何轉換成位置信息。這個由邊沿數值轉換為位置信息的過程,取決于所采用的編碼類型。總共有三種基本的編碼類型:X1、X2和X4.
X1編碼
圖5顯示了一個正交周期和其相應的X1編碼類型下的計數值的加減數目。當通道A引導通道B時,增量發生在通道A的上升沿。當通道B引導通道A時,減量發生在通道A的下降沿。
X2編碼
X2編碼與上述過程類似,只是計數器A通道的每個邊沿計數是增加還是減少,取決于由哪個通道引導哪個通道。計數器的數值每個周期都會增加2個或減少2個,如圖6所示。
X4編碼
X4編碼模式下,計數器同樣也在通道A和B的每個沿上發生增加或者減少。計數器的數目是增加還是減少,取決于哪個通道引導哪個通道。計數器的數目每個周期都會增加4個或減少4個,如圖7所示。