Enkoder diski referans tasarımları
İkinin kuvveti olmayan çözünürlükte mutlak diskler: 360 ve 1000 konum için döngüsel Gray kodları

Son ve ilk kod arasında yalnızca bir bitin değiştiği 360 veya 1000 mutlak konum için, yansımalı Gray kodunun simetrik orta bölümü alınır ve her iki uçtan (2ⁿ − M)/2 kod çıkarılır. Bu yazı simetriyi, kırpma ve kod çözme formüllerini türetiyor, tek sayıda konumun neden imkânsız olduğunu açıklıyor ve 360 ile 1000 konum için iz sayısı, eleman genişliği, kod çözme tablosu ve yerleşim kontrollerini veriyor.
Bölme tablaları, vana aktüatörleri ve ondalık gösterimli cihazlar çoğu zaman turda 360 (konum başına 1°) veya 1000 mutlak konum ister. Gray kodunun bit sayısı turda 2ⁿ kod verir ve ne 360 ne de 1000 2’nin kuvvetidir. En doğrudan yol 9 bitlik bir Gray kodunun ilk 360 kodunu almaktır, ama ilk kod G(0) = 000000000 ile son kod G(359) = 111010100 5 bitte farklıdır; dikiş yerinden geçerken bitler biraz farklı sırayla değişirse gerçek konumdan uzak bir ara kod okunabilir. Yazı, ilk ve son kodun da yalnızca bir bitte farklı olduğu bir yapı, kod çözme formülü ve yerleşimde dikkat edilecek noktaları veriyor.

Yansımalı Gray kodunun simetrisi
n bitlik yansımalı Gray kodu G(i) = i XOR (i » 1), i = 0…2ⁿ − 1’dir. i yerine ayna görüntüsü i′ = 2ⁿ − 1 − i, yani i’nin n bitinin bit bit tümleyeni konur:
i′ = i XOR (2ⁿ − 1), i′ » 1 = (i » 1) XOR (2^(n−1) − 1)
İki ifadenin XOR’u alındığında
G(2ⁿ − 1 − i) = G(i) XOR 2^(n−1)
Yani orta noktaya göre simetrik iki kod yalnızca MSB’de farklıdır. “Yansımalı” sözcüğü buradan gelir: ikinci yarıda alt n − 1 bit ilk yarının ayna görüntüsüdür ve MSB 0’dan 1’e geçer.
Kırpma koşulu ve kod çözme
M konumlu bir döngüsel kod elde etmek için orta indeksler i = s … 2ⁿ − 1 − s korunur, her iki uçtan
s = (2ⁿ − M) / 2
kod çıkarılır. Bölümün ilk kodu G(s) ile son kodu G(2ⁿ − 1 − s) tam olarak bir ayna çiftidir ve yalnızca MSB’de farklıdır; dolayısıyla sondan başa kapanış da yalnızca bir bit değiştirir; bölüm içinde zaten her adım yalnızca bir bit değiştirir. Bit sayısı n = ⌈log₂M⌉’dir; s tam sayı olmalıdır, bu yüzden M çift olmalıdır.
Kod çözme iki adımdır: önce Gray’den ikiliye dönüşüm, b(n−1) = g(n−1), b(k) = b(k+1) XOR g(k); sonra ofset çıkarılır, p = B − s. B < s veya B > 2ⁿ − 1 − s ise çıkarılmış bir kod okunmuştur ve doğrudan okuma hatası olarak işaretlenebilir. Mekanik sıfırın başka bir yere konması gerekiyorsa M modülünde bir sabit eklenir.
Simetrik kırpma tek olası kesim değildir. 9 bitlik kod her başlangıç noktasından tarandığında, ilk ve son kodu bir bitte farklı olan 360 uzunluğunda 4 bitişik bölüm bulunur; başlangıçları 76, 204, 332 ve 460’tır. Son üçü 511 → 0 dikiş yerini geçer, bu yüzden kod çözme ek bir modül işlemi gerektirir. Simetrik bölümün ikili değerleri bitişiktir ve tek bir çıkarmayla çözülür; en kullanışlısı budur.
Tek sayıda konum neden imkânsızdır
n bitlik kodlar n boyutlu bir küpün köşeleri olarak düşünülür; “yalnızca bir bit değiştirmek” bir kenar boyunca bir adımdır ve her adım kod sözcüğündeki 1 olan bitlerin sayısının paritesini tersine çevirir. Tam bir döngüden sonra başlangıca dönüldüğünde parite geri gelmiş olmalıdır; dolayısıyla adım sayısı, yani konum sayısı M çift olmalıdır. Bu sonuç yapıdan bağımsızdır: adım başına bir bit değiştiren hiçbir döngüsel kod tek sayıda konuma sahip olamaz.
Tek sayıda konum gerektiğinde (örneğin 125) iki yol vardır: 2M konumlu bir döngüsel kod yapıp çıkışta 2’ye bölmek (125 konum için s = 3 olan 8 bitlik bir kodun 250’lik bölümü); ya da dikiş yerinde iki bitin aynı anda değişmesine izin verip okumayı artımlı izle senkronizasyonla güvenceye almak, bu da dikiş yerindeki okuma toleransının ayrıca analiz edilmesini gerektirir.
360 ve 1000 konum için parametreler
| Kalem | 360 konum | 1000 konum |
|---|---|---|
| İz sayısı n | 9 | 10 |
| Ofset s | 76 | 12 |
| Korunan indeksler | 76…435 | 12…1011 |
| Konum başına açı | 1° | 0,36° (21,6′) |
| Örnek LSB yarıçapı | 15 mm | 18 mm |
| Eleman yay uzunluğu 2πr/M | 261,8 μm | 113,1 μm |
| En ince çubuk genişliği (2 eleman) | 523,6 μm | 226,2 μm |
| İlk kod / son kod | 001101010 / 101101010 | 0000001010 / 1000001010 |
| Geçersiz kod oranı | 152/512 = %29,7 | 24/1024 = %2,3 |
360 konum için kod çözme tablosu (alıntı):
| Konum p | İndeks i | Kod sözcüğü b8…b0 | İkili B | B − 76 |
|---|---|---|---|---|
| 0 | 76 | 001101010 | 76 | 0 |
| 1 | 77 | 001101011 | 77 | 1 |
| 179 | 255 | 010000000 | 255 | 179 |
| 180 | 256 | 110000000 | 256 | 180 |
| 359 | 435 | 101101010 | 435 | 359 |
İz desenleri Şekil 2’de gösterilmiştir. Kırpmadan sonra her izdeki geçiş sayısı buna göre azalır: 360 konumda b0’da 180, b1’de 90 geçiş vardır; b8 yine yarım tur aydınlık, diğer yarım tur karanlıktır.

Yerleşimde dikkat edilecek iki nokta
Dikiş yerinde düzensiz çubuk genişlikleri. Kırpmadan sonra her izin dikiş yerini geçen bölümü, biri bölümün başından biri sonundan gelen iki parçadan oluşur; dolayısıyla genişliği artık o izin düzenli değeri değildir. 360 konumda b4’ün düzenli çubuk genişliği 32 konumdur, ama dikiş yerini geçen saydam bölüm yalnızca 8 konumdur; b6 ve b7’de de 232 ve 104 konumluk düzensiz bölümler vardır. En ince çizgi genişliği yine b0’ın 2 elemanıyla belirlenir, bu yüzden üretilebilirlik etkilenmez; ancak yerleşim doğrulaması ve AOI kuralları “iz başına sabit çubuk genişliği” olarak yazılamaz, tam tur boyunca kod tablosuyla konum konum karşılaştırılmalıdır.
Geçersiz kodlarla sınırlı hata tespiti. Çıkarılmış kodlar normal okumada hiç görünmez, bu yüzden birinin okunması hata olarak işaretlenebilir. Ancak tek bir hatalı bitte, durumların 360 konumda yalnızca yaklaşık %9,9’u, 1000 konumda yalnızca yaklaşık %1,4’ü geçersiz bir koda düşer; hatalı bir MSB kodu ayna koduna çevirir, bu kod her zaman geçerlidir ve asla tespit edilemez. Okunan kodun tanılanması gerekiyorsa yine ek bir kontrol gerekir.
Mühendislik açısından önemli noktalar
- Kırpma formülü: n = ⌈log₂M⌉, s = (2ⁿ − M)/2, i = s…2ⁿ − 1 − s korunur; 360 konumda s = 76, 1000 konumda s = 12.
- Kod çözme yalnızca Gray’den ikiliye dönüşüm ve ardından s’nin çıkarılmasını gerektirir; s…2ⁿ − 1 − s dışındaki bir ikili değer okuma hatası olarak işaretlenir.
- İlk M kodu doğrudan almayın: 360 konumda ilk ve son kod 5 bitte farklıdır ve dikiş yerinde gerçek konumdan uzak bir kod okunabilir.
- Tek sayıda konum için tek adımlı döngüsel kod yoktur; 2M konum yapıp 2’ye bölün ya da dikiş yerinde artımlı izle senkronize edin.
- Yerleşimi “iz başına sabit çubuk genişliği” ile değil, tam tur kod tablosuna göre konum konum doğrulayın: 360 konumda b4’ün dikiş yerinde yalnızca 8 konum genişliğinde bir bölümü vardır.
- Çıkarılmış kodlar tek bit hatalarının yalnızca yaklaşık %10’unu veya daha azını yakalar ve MSB hataları hiç tespit edilmez; tanılama ek önlemler gerektirir.
Özet
Yansımalı Gray kodunda orta noktaya göre simetrik iki kod yalnızca MSB’de farklıdır; simetrik orta bölüm alınarak her çift konum sayısı için döngüsel bir Gray kodu elde edilir ve kod çözme yalnızca bir ek çıkarma gerektirir. Tek sayıda konum, parite nedeniyle tek adımlı döngüsel kod olarak gerçekleştirilemez. 360 ve 1000 konum sırasıyla 9 ve 10 iz gerektirir ve dikiş yerindeki düzensiz çubuk genişlikleri yerleşimde özel olarak kontrol edilmelidir.
Çince orijinal makalenin çevirisi (0303). ENC7 – enkoder diski üreticisi (teklif) · Teknik makaleler · https://enc7.com
© Langfang Jingzheng Optoelectronic Technology Co., Ltd. Tüm hakları saklıdır. Bu makale yapay zekâ desteğiyle hazırlanmıştır.