信号トラブル事例集
症状:グレイコードの最下位ビットだけ頻繁に誤り、上位ビットは正常——細いコードトラックのコントラスト

グレイコードの最下位ビットはコード要素が最も細く、影像式読取りではコントラストがギャップとともに最も速く低下する。p²/λの基準で、20 μmと640 μmのコード要素では感度が約千倍違う。本記事では各ビットトラックのコントラストのギャップ依存と最下位ビットのマージンをシミュレーションし、しきい値ドリフトがビット誤りをどう増幅するかを説明し、ビットごとの振幅測定とギャップ再確認の手順を示す。
グレイコードのアブソリュートエンコーダが、現場でときどき位置飛びやチェックエラーを報告する。読み出したコード値は決まって最下位ビット(LSB)で誤っており、上位ビットは一度も問題がない。コード板を替えると良くなることがあり、読取りヘッドを替えるとかえって悪くなることもある。グレイコードの利点は、LSBを読み誤っても一位置しかずれないことである(詳しくは本ライブラリのグレイコードと擬似ランダム符号の比較編を参照)。そのため大きな飛びにはならないが、ジッタ、チェック不良、インクリメンタルトラックとの不一致として現れる。なぜLSBがいつも最初に問題を起こすのか。コード要素が最も細く、影像式読取りのコントラストのギャップ感度がコード要素幅の二乗に応じて変わるからである。

なぜLSBが最も敏感か
交番2進グレイコードのLSBは2位置ごとに反転し、トラックは周期4位置の矩形波、コード要素幅は2位置である。上位ビットに行くごとにコード要素幅は2倍になる。LSBのコード要素をw0 = 20 μmとすると、6ビットのコード要素は順に20、40、80、160、320、640 μmで、周期P = 2wは40~1280 μmに対応する。
影像式読取りでは、トラックの影がギャップgを越えて受光素子に落ち、二種類のぼけが生じる。
- 回折:特性長はP²/λ。λ = 0.88 μmのときLSBで約1.8 mm、最上位ビットで約1.9 mとなり、(1280/40)² = 1024倍、すなわち「約千倍」違う。基本波の変調度はcos(πλg/P²)に従って低下し(導出は本ライブラリのタルボ効果編を参照)、LSBではg = P²/(2λ) ≈ 0.9 mmでゼロになる。
- 半影:照明の角度幅Δαにより影のエッジがg·Δαだけぼけ、基本波はsinc(g·Δα/P)に従って低下する。Δα = 40 mrad、g = 0.5 mmでぼけは20 μmとなり、すでにLSBのコード要素幅に等しい。こちらはコード要素幅に対して一乗の関係で、LSBと最上位ビットの差は32倍である。
どちらのメカニズムでもLSBが最初にコントラストを失い、上位ビットのトラックは同じギャップでもほぼくっきりした矩形の影を落とす。
数値例:各ビットトラックのコントラスト
シミュレーション条件(仮定):ほぼ平行な照明、λ = 0.88 μm、スペクトル幅40 nm、角度幅40 mrad。各トラックのデューティ比50%。検出窓の幅はコード要素幅の半分で、コード要素の中央に置く。光強度はパターンなしのときを1に正規化。波長と入射角で平均した後の「明コード要素」と「暗コード要素」中央の光強度と、コントラストC = (I明 − I暗)/(I明 + I暗)は次のとおり。
| ギャップg | ビット0 明/暗 | ビット0 コントラスト | ビット1 コントラスト | ビット2 コントラスト |
|---|---|---|---|---|
| 100 μm | 1.17 / 0.06 | 0.90 | 0.97 | 0.99 |
| 300 μm | 1.00 / 0.16 | 0.73 | 0.91 | 0.98 |
| 500 μm | 0.72 / 0.27 | 0.45 | 0.85 | 0.96 |
| 600 μm | 0.60 / 0.34 | 0.28 | 0.82 | 0.95 |
| 700 μm | 0.52 / 0.39 | 0.14 | 0.76 | 0.94 |
ギャップが小さいとき明コード要素中央の光強度が1を超えるのは、細いスリットのフレネル回折が光を中央に集めるためで、判定には影響しない。しきい値を0.5とし、明・暗両側に0.15のマージンを求めると、LSBの許容最大ギャップは約0.52 mmで、ビット1以上はシミュレーション範囲の1 mm以内ですべて満たす(図2右)。
しきい値ドリフトがビット誤りを増幅するしくみ
判定マージン = min(I明 − T, T − I暗)、Tはしきい値である。LSBの明・暗レベルはもともとしきい値近くに詰まっており、どんなドリフトもまずそのマージンを食う。
- 光量ドリフトでしきい値固定:LEDの光出力が温度と劣化で20%下がっても、しきい値は初期値どおり0.5のまま。上位ビットの明レベルは約1.0から0.8に下がってもまだ十分余裕がある。LSBはg = 500 μmで明レベルが0.72から0.58に下がり、マージンは0.22から0.08に減り、600 μmではしきい値を直接下回る。許容ギャップは約0.52 mmから約0.40 mmに縮む。
- しきい値オフセット:コンパレータのオフセットや基準レベルのずれΔTがあると、LSBのエッジはΔTを信号の傾きで割った分だけ動く。LSBはコントラストが低く傾きが小さいので、同じΔTでもエッジが最も大きく動き、コード値の切替わり位置で1読み誤る区間が増える。
- ノイズ:エッジ付近でノイズによって行き来する区間の幅は、ノイズを傾きで割った程度になり、LSBで最も広い。ある位置で静止しているときにLSBが行き来するという形で現れる。
したがってしきい値は光量に追従させるべきである。参照フォトダイオードや相補トラックで比例しきい値をつくれば、光量ドリフトの影響はほぼ打ち消せる。

調査手順
- ビットごとに振幅を測る:テストポイントや診断出力があれば低速で回し、各ビットの明・暗レベルを記録してコントラストとしきい値に対するマージンを求める。LSBだけが明らかに低ければコントラストの問題、各ビットが同じ割合で下がっていればまず光源と汚れを調べる。
- ギャップを再確認する:読取りギャップを実測し、読取り半径での面振れとコード板の平面度を加えて最大ギャップを求め、許容値と比べる。シムでギャップを0.1~0.2 mm小さくして再測定し、LSBのコントラストが予測どおり回復すれば確定できる。
- 誤りと回転角の関係を見る:誤りが特定の角度範囲に集中していれば、面振れによる最大ギャップの位置と照合する。一様に分布していれば全体のギャップとしきい値を見る。
- 照明としきい値を調べる:LEDの形式、発光面の大きさ、コリメートレンズの位置を確認する。照明の角度幅が大きくなるのはギャップが大きくなるのと同等である。しきい値が光量に比例して変わるかを確認する。
- トラック自体を調べる:LSBコード要素の線幅ずれは明・暗コード要素を非対称にし、片側のマージンが先に尽きる。このトラック上の汚れや欠陥も最初に現れる。
実務のポイント
- グレイコード各ビットのギャップ感度はコード要素幅の二乗(回折)または一乗(半影)に応じて変わり、LSBがギャップの上限を決める。
- 設計ではLSBで最大ギャップを検討し、面振れ、平面度、組立て誤差を含める。例の条件では約0.5 mm以内。
- しきい値は光量に比例して追従させる。そうしないと光量が20%下がっただけでLSBの許容ギャップが約四分の一縮む。
- 照明の角度幅はギャップと等価である。コリメートが悪化したり発光面の大きいLEDに替えたりすると、LSBが最初に影響を受ける。
- ビットごとの明・暗レベル測定が最も速い診断である。LSBだけマージンが足りないなら、コード板を替える前にまずギャップと照明を調べる。
- レイアウトではLSBを外周に置く。コード要素幅は半径とともに大きくなり、回折感度はその二乗で下がる。外周は面振れがやや大きいので、合わせて検討する。
まとめ
グレイコードのLSBで誤りが頻発するのは、コード要素が最も細く、影のコントラストがギャップとともに最も速く低下するからである。回折の特性長P²/λは最上位ビットと約千倍違い、半影の影響も数十倍大きい。例の条件ではLSBの許容ギャップは約0.52 mmで、光量がドリフトしてしきい値が追従しなければさらに縮む。ビットごとにレベルを測り、ギャップを再確認し、比例しきい値を採用すれば、問題を特定して解消できる。
中国語原文記事の翻訳 (0239). ENC7 コード板メーカー(お問い合わせ) · 技術記事 · https://enc7.com
© 廊坊晶正光電技術有限公司(Langfang Jingzheng Optoelectronic Technology Co., Ltd.)無断転載を禁じます。本記事はAIの支援を受けて作成されています。