碼盤參考設計

單道偽隨機碼碼盤的版圖引數:碼元寬、讀數窗與增量配對

單道偽隨機碼碼盤的版圖引數:碼元寬、讀數窗與增量配對

單道偽隨機碼碼元寬 w = 2πr/M。本文只講版圖:M 與增量線數 N = k·M 的閉合、截短序列的整圈迴圈檢查、讀數窗 (n + c + 1)·w 與直線陣列弦高、碼元與增量週期對齊、曼徹斯特編碼的代價,並給出 r = 15 mm 的引數算例。

單道偽隨機碼用一條碼道代替 n 條格雷碼道,讀數頭沿切向讀出連續 n 個碼元,就能確定是第幾個碼元。序列怎樣生成、怎樣解碼和糾錯,本文庫已有專文;直線碼帶的長度規劃也有專文。本文只討論把它畫到碼盤上時要定的幾組數:碼元數與增量線數怎樣閉合、讀數窗多長、碼元與增量週期怎樣對齊、曼徹斯特編碼要付出什麼,最後以讀數半徑 r = 15 mm 給出一組引數。

單道偽隨機碼與增量道並排旋轉(示意:n = 6,64 個碼元,增量節距等於碼元寬):讀數窗寬 n + 1 個碼元,取樣點由增量相位選在完整碼元的中心,查表得首碼元號,再加增量相位得到細位置
圖1 單道偽隨機碼與增量道並排旋轉(示意:n = 6,64 個碼元,增量節距等於碼元寬):讀數窗寬 n + 1 個碼元,取樣點由增量相位選在完整碼元的中心,查表得首碼元號,再加增量相位得到細位置

一圈閉合:碼元數與增量線數

碼盤上 M 個碼元正好鋪滿一圈,碼元角為 360°/M,讀數半徑處的碼元寬

w = 2πr / M

為了用增量道給碼元定相位,碼元寬通常取增量節距的整數倍 k,於是增量線數

N = k·M

M 有三種取法:

序列Mk = 1 時線數特點
M 序列2ⁿ − 1,如 10231023線數為奇數,不便二進位制輸出和極對數整除
de Bruijn 擴充套件2ⁿ,如 10241024在 n − 1 個連續 0 處補一個 0,二進位制友好
截短序列任意,如 10001000十進位制解析度,但要逐個起點搜尋

截短序列在直線碼帶上沒有問題,在碼盤上卻多了一個條件:序列首尾相接,接縫處會新產生 n − 1 個跨接縫的視窗,它們不能與段內已有的視窗重複。我們用 10 階序列(遞推 a[k] = a[k−3] ⊕ a[k−10],即 x¹⁰ + x⁷ + 1)逐個起點檢查,截成 1000 個碼元后迴圈視窗仍全部互不相同的起點,1023 箇中只有 19 個。截短方案必須用程式做整圈迴圈檢查,不能隨便截一段。

讀數窗:n 個碼元加餘量

讀數頭與碼元的相對相位任意,要保證窗內總有 n 個完整碼元,窗長至少 (n + 1)·w;若多讀 c 位用於檢錯或糾錯,窗長為 (n + c + 1)·w。按漢明界,糾 1 位的 c 在 n = 9–11 時至少為 4,n ≥ 12 時至少為 5,實際能否達到取決於多項式的選擇(詳見本文庫糾錯一文)。

碼盤與直線碼帶的區別在於碼道是圓弧,而探測器陣列通常是直的。陣列在視窗中心與碼道相切時有兩項幾何偏差:

  • 弦高:陣列兩端偏離碼道中線 s = L²/(8r),L 為窗長;
  • 切向投影誤差:兩端碼元在陣列上的位置偏差約 L³/(48r²)。

n = 10、c = 4、r = 15 mm 時 L ≈ 1.38 mm,弦高約 16 μm,切向誤差約 0.24 μm,與 92 μm 的碼元寬相比可以忽略。弦高只需計入碼道徑向寬度;只有 n 較小、視窗較長時才需要把陣列做成弧形。

讀數半徑的偏差會讓碼元在陣列上的節距變化 Δr/r。以視窗中心為相位參考、要求窗端累積錯位不超過 w/4,可得 Δr ≤ r/(2(n + c)),n = 11、c = 4 時約 0.5 mm,比碼道寬度要求寬鬆得多。

碼元與增量週期對齊

k = 1 時碼元寬等於增量節距,碼元邊界與增量刻線邊沿在同一張光罩上對齊,讀數頭用增量相位把取樣點放在碼元中心,見圖1。取樣點離碼元邊沿的餘量為 w/4,要吃掉它的有:讀數頭內碼道探測器與增量探測器的切向錯位、碼道與增量道的半徑差帶來的偏心差分、碼元邊沿的線寬誤差。碼道在 15.0 mm、增量道在 15.6 mm、偏心 20 μm 時,偏心差分在碼道處只有約 0.77 μm,主要餘量留給讀數頭裝配。

k > 1 時,絕對碼只能給出碼元號,還要判斷當前處於碼元內的第幾個增量週期,碼元邊沿的定位誤差須小於 w/(2k)。k 越大越難,版圖上一般取 k = 1 或 2。

曼徹斯特編碼的版圖代價

普通編碼中,n 位視窗裡 1 的比例可以從 0 變到全部,窗內平均穿透率隨位置大幅起伏,各位只能各自和一個絕對閾值比較,照明不均和直流偏置直接變成判讀錯誤。曼徹斯特編碼把每一位拆成兩個半碼元,“亮暗”為 1,“暗亮”為 0:

  • 每位的平均穿透率恆為 50%,判讀只比較兩半的差,與照明梯度和偏置無關;
  • 每位中間都有一次跳變,碼道自帶位時鐘;
  • 兩半差值太小可判為“擦除”,提高糾錯能力。

代價是最細圖形從 w 變成 w/2,探測器數加倍。若保持最細圖形不變,位寬要加倍,同一半徑上少一位(M 減半)。另一種做法是在徑向再加一條互補碼道做差分,碼元寬不變,但多佔一條碼道的徑向空間。

r = 15 mm 引數算例

方案M碼元角碼元寬 w增量線數(k = 1)增量道影像式最大間隙(n + 1)·w(n + c + 1)·w曼徹斯特最細圖形
n = 10102421.1′92.0 μm1024約 2.0 mm1.01 mm1.38 mm46.0 μm
截短 1000100021.6′94.2 μm1000約 2.1 mm1.04 mm1.41 mm47.1 μm
n = 11204810.5′46.0 μm2048約 0.49 mm0.55 mm0.74 mm23.0 μm
n = 1240965.3′23.0 μm4096約 0.12 mm0.30 mm0.41 mm11.5 μm

增量道最大間隙按 0.205·p²/λ(λ = 0.88 μm)估算。以 n = 11 為例:2048 個碼元,碼元寬 46.0 μm,配 2048 線增量道,讀數窗 0.55–0.74 mm;若用曼徹斯特編碼,最細圖形降到 23.0 μm,或改為 n = 10、位寬 92 μm。圖2給出碼元寬和窗長隨 n 的變化。

r = 15 mm 時碼元寬、曼徹斯特最細圖形(左)和讀數窗弧長(右)隨序列位數 n 的變化,右圖示出直線陣列的弦高
圖2 r = 15 mm 時碼元寬、曼徹斯特最細圖形(左)和讀數窗弧長(右)隨序列位數 n 的變化,右圖示出直線陣列的弦高

工程要點

  • 先定 M 再定線數:N = k·M,需要二進位制解析度時用 de Bruijn 的 2ⁿ,需要十進位制時用截短序列。
  • 截短序列必須做整圈迴圈檢查:示例中 1023 個起點只有 19 個截成 1000 後視窗仍互不重複。
  • 讀數窗按 (n + c + 1)·w 設計,r = 15 mm、n = 11、c = 4 時約 0.74 mm;直線陣列的弦高 L²/(8r) 計入碼道徑向寬度。
  • 優先取 k = 1:碼元邊界與增量刻線同版對齊,取樣點餘量 w/4,n = 11 時約 11.5 μm。
  • 照明不均或偏置大時用曼徹斯特編碼或互補碼道,前者把最細圖形減半,後者多佔一條碼道。
  • 碼元寬同時就是增量節距(k = 1),要按增量道的間隙視窗複核,n = 12 時最大間隙只剩約 0.12 mm。

小結

單道偽隨機碼的版圖由 w = 2πr/M 和 N = k·M 兩個關係串起來:M 決定碼元寬和線數,k 決定粗細拼接的難度,n 和冗餘位決定讀數窗。碼盤相對直線碼帶多出整圈閉合和跨接縫視窗不重複的要求;曼徹斯特編碼用一半的最細圖形換來對照明和偏置的免疫。r = 15 mm 時 n = 11、k = 1 是一組兼顧節距和窗長的取值。

延伸閱讀:ENC7 編碼器碼盤生產廠家(中文首頁) · 碼盤技術文庫


關於我們:晶正光電專注編碼器碼盤研發製造,玻璃、金屬、PC 碼盤均可按圖客製。

官網:https://enc7.com

© 廊坊晶正光電技術有限公司 版權所有,未經書面許可不得轉載、摘編。本文藉助 AI 輔助創作。

Have a drawing? Get an engineer's review.

Send your outer diameter, bore, line count or bit count, substrate and readhead wavelength. Our engineers check manufacturability and reply with a quotation and sample lead time.

WhatsApp