码盘参考设计

单道伪随机码码盘的版图参数:码元宽、读数窗与增量配对

单道伪随机码码盘的版图参数:码元宽、读数窗与增量配对

单道伪随机码码元宽 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