Referenční návrhy kódových kotoučů

Absolutní kotouče s rozlišením, které není mocninou dvou: cyklické Grayovy kódy pro 360 a 1000 poloh

Absolutní kotouče s rozlišením, které není mocninou dvou: cyklické Grayovy kódy pro 360 a 1000 poloh

Pro 360 nebo 1000 absolutních poloh, kdy se i mezi posledním a prvním kódem mění jen jeden bit, se vezme symetrický střední úsek zrcadlového Grayova kódu a na každém konci se odebere (2ⁿ − M)/2 kódů. Tento článek odvozuje symetrii, vzorce pro ořez a dekódování, vysvětluje, proč je lichý počet poloh nemožný, a uvádí počet stop, šířku prvku, dekódovací tabulku a kontroly uspořádání pro 360 a 1000 poloh.

Dělicí stoly, pohony ventilů a přístroje s desítkovým zobrazením často vyžadují 360 (1° na polohu) nebo 1000 absolutních poloh na otáčku. Počet bitů Grayova kódu dává 2ⁿ kódů na otáčku a ani 360, ani 1000 není mocninou 2. Nejpřímější cestou je vzít prvních 360 kódů 9bitového Grayova kódu, jenže první kód G(0) = 000000000 a poslední kód G(359) = 111010100 se liší v 5 bitech; přepnou-li se bity při průchodu spojem v trochu jiném pořadí, může se přečíst mezilehlý kód daleko od skutečné polohy. Článek uvádí konstrukci, v níž se i první a poslední kód liší jen v jednom bitu, dekódovací vzorec a body, na které je třeba dát pozor v uspořádání.

512 kódů 9bitového zrcadlového Grayova kódu; na každém konci odebráno 76, ponechány indexy 76…435; při průchodu kotouče spojem 359 → 0 se mění jen MSB b8; červeně je bit, který se mění v každém kroku.
Obrázek 1 – 512 kódů 9bitového zrcadlového Grayova kódu; na každém konci odebráno 76, ponechány indexy 76…435; při průchodu kotouče spojem 359 → 0 se mění jen MSB b8; červeně je bit, který se mění v každém kroku.

Symetrie zrcadlového Grayova kódu

n-bitový zrcadlový Grayův kód je G(i) = i XOR (i » 1), i = 0…2ⁿ − 1. Nahradíme-li i jeho zrcadlovým obrazem i′ = 2ⁿ − 1 − i, tedy bitovým doplňkem n bitů čísla i:

i′ = i XOR (2ⁿ − 1), i′ » 1 = (i » 1) XOR (2^(n−1) − 1)

Operace XOR obou výrazů dává

G(2ⁿ − 1 − i) = G(i) XOR 2^(n−1)

Dva kódy symetrické podle středu se tedy liší jen v MSB. Odtud pochází slovo „zrcadlový“: ve druhé polovině zrcadlí dolních n − 1 bitů první polovinu a MSB se mění z 0 na 1.

Podmínka ořezu a dekódování

Pro cyklický kód s M polohami se ponechají střední indexy i = s … 2ⁿ − 1 − s a na každém konci se odebere

s = (2ⁿ − M) / 2

kódů. První kód úseku G(s) a poslední kód G(2ⁿ − 1 − s) tvoří přesně zrcadlovou dvojici a liší se jen v MSB, takže i uzavření z posledního na první mění jen jeden bit; uvnitř úseku mění každý krok jen jeden bit už ze své podstaty. Počet bitů je n = ⌈log₂M⌉; s musí být celé číslo, takže M musí být sudé.

Dekódování má dva kroky: nejprve převod z Grayova kódu na binární, b(n−1) = g(n−1), b(k) = b(k+1) XOR g(k); poté odečtení offsetu, p = B − s. Je-li B < s nebo B > 2ⁿ − 1 − s, byl přečten odebraný kód a lze jej přímo označit jako chybu čtení. Má-li být mechanická nula jinde, přičte se konstanta modulo M.

Symetrický ořez není jediný možný řez. Prohledáním 9bitového kódu od každého počátečního bodu najdeme 4 souvislé úseky délky 360, jejichž první a poslední kód se liší v jednom bitu, s počátky 76, 204, 332 a 460; poslední tři přecházejí přes spoj 511 → 0, takže dekódování vyžaduje navíc operaci modulo. Symetrický úsek má souvislé binární hodnoty a dekóduje se jediným odečtením, což je nejpohodlnější.

Proč je lichý počet poloh nemožný

Chápejme n-bitové kódy jako vrcholy n-rozměrné krychle; „změna jen jednoho bitu“ je krok po hraně a každý krok obrátí paritu počtu bitů s hodnotou 1 v kódovém slově. Po úplném cyklu zpět na začátek se musí parita obnovit, takže počet kroků – tedy počet poloh M – musí být sudý. Tento závěr nezávisí na konstrukci: žádný cyklický kód měnící jeden bit na krok nemůže mít lichý počet poloh.

Je-li potřeba lichý počet poloh (například 125), existují dvě cesty: vytvořit cyklický kód s 2M polohami a na výstupu dělit 2 – pro 125 poloh úsek délky 250 z 8bitového kódu s s = 3; nebo připustit, že se na spoji mění dva bity současně, a čtení zajistit synchronizací s inkrementální stopou, což vyžaduje dodatečnou analýzu tolerance čtení na spoji.

Parametry pro 360 a 1000 poloh

Položka360 poloh1000 poloh
Počet stop n910
Offset s7612
Ponechané indexy76…43512…1011
Úhel na polohu1°0,36° (21,6′)
Příkladový poloměr LSB15 mm18 mm
Délka oblouku prvku 2πr/M261,8 μm113,1 μm
Šířka nejužšího proužku (2 prvky)523,6 μm226,2 μm
První kód / poslední kód001101010 / 1011010100000001010 / 1000001010
Podíl neplatných kódů152/512 = 29,7 %24/1024 = 2,3 %

Dekódovací tabulka pro 360 poloh (výňatek):

Poloha pIndex iKódové slovo b8…b0Binární BB − 76
076001101010760
177001101011771
179255010000000255179
180256110000000256180
359435101101010435359

Vzory stop ukazuje obrázek 2. Po ořezu se počet přechodů každé stopy odpovídajícím způsobem sníží: při 360 polohách má b0 celkem 180 přechodů, b1 celkem 90, a b8 je stále půl otáčky světlý a druhou půlku tmavý.

Rozvinutý pohled na 9 stop ořezaného Grayova kódu pro 360 poloh: vlevo celá otáčka, vpravo zvětšení u spoje; na spoji se mění jen b8 a průsvitný úsek b4 přecházející přes spoj je široký jen 8 poloh.
Obrázek 2 – Rozvinutý pohled na 9 stop ořezaného Grayova kódu pro 360 poloh: vlevo celá otáčka, vpravo zvětšení u spoje; na spoji se mění jen b8 a průsvitný úsek b4 přecházející přes spoj je široký jen 8 poloh.

Dva body, na které dát pozor v uspořádání

Nepravidelné šířky proužků na spoji. Po ořezu se úsek každé stopy, který přechází přes spoj, skládá ze dvou kusů – jednoho ze začátku a jednoho z konce úseku – takže jeho šířka už není pravidelnou hodnotou této stopy. Při 360 polohách je pravidelná šířka proužku b4 32 poloh, ale průsvitný úsek přes spoj má jen 8 poloh; také b6 a b7 mají nepravidelné úseky o 232 a 104 polohách. Nejmenší šířka čáry je stále dána 2 prvky b0, takže vyrobitelnost není dotčena, ale ověření uspořádání a pravidla AOI nelze psát jako „pevná šířka proužku na stopu“; je třeba je porovnávat s tabulkou kódů poloha po poloze po celé otáčce.

Omezená detekce chyb pomocí neplatných kódů. Odebrané kódy se při normálním čtení nikdy neobjeví, takže přečtení některého z nich lze označit jako chybu. Při jednom chybném bitu však do neplatného kódu padne při 360 polohách jen asi 9,9 % případů a při 1000 polohách jen asi 1,4 %; chybný MSB změní kód na jeho zrcadlový kód, který je vždy platný a nikdy jej nelze odhalit. Je-li potřeba diagnostika čteného kódu, je stále nutná další kontrola.

Hlavní body z praxe

  • Vzorec ořezu: n = ⌈log₂M⌉, s = (2ⁿ − M)/2, ponechat i = s…2ⁿ − 1 − s; pro 360 poloh s = 76, pro 1000 poloh s = 12.
  • Dekódování potřebuje jen převod z Grayova kódu na binární a následné odečtení s; binární hodnota mimo s…2ⁿ − 1 − s se označí jako chyba čtení.
  • Nebrat prostě prvních M kódů: při 360 polohách se první a poslední liší v 5 bitech a na spoji se může přečíst kód daleko od skutečné polohy.
  • Pro lichý počet poloh neexistuje jednokrokový cyklický kód; vytvořit 2M poloh a dělit 2, nebo na spoji synchronizovat s inkrementální stopou.
  • Ověřovat uspořádání poloha po poloze proti tabulce kódů celé otáčky, ne podle „pevné šířky proužku na stopu“: při 360 polohách má b4 na spoji úsek široký jen 8 poloh.
  • Odebrané kódy zachytí jen asi 10 % nebo méně jednobitových chyb a chyby MSB nikdy; diagnostika vyžaduje dodatečná opatření.

Shrnutí

V zrcadlovém Grayově kódu se dva kódy symetrické podle středu liší jen v MSB; vzetím symetrického středního úseku se získá cyklický Grayův kód pro libovolný sudý počet poloh a dekódování vyžaduje jen jedno odečtení navíc. Lichý počet poloh nelze kvůli paritě realizovat jako jednokrokový cyklický kód. 360 a 1000 poloh vyžaduje 9, resp. 10 stop a nepravidelné šířky proužků na spoji je třeba v uspořádání zvlášť kontrolovat.


Překlad čínského originálu (0303). ENC7 – výrobce kódových kotoučů (poptávka) · Odborné články · https://enc7.com

© Langfang Jingzheng Optoelectronic Technology Co., Ltd. Všechna práva vyhrazena. Článek vznikl s pomocí 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