Manchester kódování [ 1 ____]3[kódbipulzníabsolutní,]2[kódII-Manchester,] nosič informací .
Signál kódovaný kódem Manchester se samosynchronizuje, to znamená, že pro přenos dat není vyžadována další hodinová přenosová linka , protože během přenosu jednoho datového bitu, bez ohledu na to, zda je 1 nebo 0, je jeden je zajištěn přechod z jedné úrovně do druhé, což umožňuje přijímači synchronizovat své vnitřní hodiny nebo časovač s hodinami vysílače.
Signál zakódovaný v souladu s Manchesterským kódem nemá konstantní složku ani v případě přenosu dlouhých sekvencí nul a jedniček, proto lze elektrická spojení přenášející signál galvanicky izolovat např. pomocí transformátoru [5] .
Název kódování pochází z University of Manchester , kde bylo toto kódování poprvé použito k ukládání dat na magnetický buben počítače Manchester Mark I.
Existují různé konvence pro kódování jednotlivých bitů v kódu Manchester:
Úroveň hodin _ |
Datový bit |
Úroveň kódu IEEE 802.3 Manchester [6] |
Úroveň kódu
Thomas Manchester |
---|---|---|---|
0 | 0 | 0 | jeden |
jeden | jeden | 0 | |
jeden | 0 | jeden | 0 |
jeden | 0 | jeden
|
Kódování Manchester kódu je poměrně jednoduché - provádí se logickou operací " EXCLUSIVE OR " (addition modulo two, XOR ) nad aktuálním kódovaným bitem a bitem generátoru hodin, v případě kódování podle IEEE 802.3 (příklady v pseudokódu ):
Výstup := Data_bit XOR Clock_generator ;nebo s inverzí při kódování podle Thomase:
Výstup := NOT (Datový_bit XOR Clock_generator );Možná jak hardwarová, tak softwarová implementace kodéru.
V hardwarové implementaci je použit generátor hodin s pracovním cyklem 2 a periodou opakování rovnou periodě kódování, posuvný registr , ze kterého je v každé periodě vytlačen kódovaný datový bit a logický prvek EXCLUSIVE OR .
Když je implementován v softwaru, je pomocí softwarového časovače vytvořen generátor virtuálních hodin s dobou expozice rovnající se polovině periody:
POKUD je spuštěn timer_half_period THEN restart timer; Generátor_hodin := Generátor_hodin XOR 1 ; END IF ;Je možné a výhodné implementovat generátor hodin pomocí hardwarových přerušení časovače.
Dále, aby se vytvořil konečný výstupní kód, je provedena operace EXCLUSIVE OR s datovým bitem, například posunutým z registru, kde se nachází aktuální kódované slovo.
Existují dvě možnosti dekódování:
Dále jsou všechny úrovně a fronty popsány ve vztahu ke kódovací konvenci IEEE 802.3, se souhlasem G. E. Thomase jsou všechny úrovně a fronty nahrazeny inverzními.
Se známou periodou kódováníV prvním případě se při dekódování nejprve provede bitová synchronizace - určí se střed periody. Za tímto účelem dekodér sleduje vzestupy a poklesy signálu, dva sousední poklesy různých směrů, oddělené 1 periodou, jsou znakem postupného přechodu 0 a 1 nebo 1 a 0 v datovém toku, a pokud první z tyto poklesy stoupají (přední) a druhé klesají (klesají), pak to znamená, že v datovém toku jde o kombinaci dvou bitů 1 a 0 nebo 0, 1 v případě sestupné hrany také druhý z těchto okrajů označuje střed období kódování. Kombinace těchto dvou bitů je zapsána do dekódovaného datového bitového toku. Dále dekodér čeká dobu přibližně rovnající se 3/4 periody a začne sledovat výskyt poklesu, kdy se kapka objeví, pokud se jedná o pokles, znamená to, že další datový bit je 0 a 1 je vepředu. Současně se časovač expozice na 3/4 periody restartuje pomocí stejného diferenciálu a poté se proces opakuje.
Začátek kontroly příchodu poklesu po 3/4 periody byl zvolen z důvodů odolnosti proti šumu, například v důsledku jitteru a/nebo šíření (prodlužování) kapek, aditivního šumu v přenosových vedeních, momenty výskytu kapek vzhledem k idealizovanému případu kolísají, na druhou stranu u sousedních identických bitů v datovém toku se hrany vyskytují na hranici mezi dvěma periodami přenosu stejných bitů a kontrola výskytu okraje by měly být provedeny po momentech hranic hodin.
Po příchodu každého informačního přechodu je také možné změřit dobu trvání periody pomocným časovačem a v případě potřeby upravit dobu trvání expozice časovače na 3/4 periody. To umožňuje sledovat pomalé změny v periodě kodéru, například kolísání rychlosti posunu magnetické pásky při čtení z magnetopáskové mechaniky nebo různé rychlosti karty s magnetickým proužkem lidskou rukou.
Aby se usnadnila bitová synchronizace, datovým blokům v kódu Manchester, zejména pokud jsou uloženy na magnetickém médiu, obvykle předchází poměrně dlouhá synchronizační sekvence 1010101 ...
Určení začátku informačního blokuDosažení bitové synchronizace pro příjem proudu informačních bitů nestačí, protože v mnoha případech není znám začátek informačního bloku v proudu nerozlišitelných bitů, například při čtení dat z magnetické diskové jednotky. Proto je dodatečně aplikována synchronizace na synchronizační slovo.
Kodér při kódování na začátek informačního bloku vloží binární synchronizační slovo nebo synchronizační podpis , který musí být dekodéru znám. Pro zahájení blokové synchronizace dekodér neustále porovnává posloupnost bitů v posuvném registru po každém posunu, délka tohoto registru je rovna délce signatury, do které se v každé periodě vkládá další bit, s danou synchronizací. slovo. Shoda slova v posuvném registru a podpisu nebo jeho inverze je znakem začátku informačního bloku a poté dekodér interpretuje bitový proud jako informační. Délka synchronizačního slova v různých systémech je různá, ale obvykle nejméně 2 bajty, například v protokolu Ethernet se délka podpisu považuje za 56 bitů.
Synchronizační slovo se nesmí v informačním toku vyskytovat, nebo alespoň pravděpodobnost takového výskytu musí být zanedbatelná. Čím delší je podpis, tím menší je pravděpodobnost jeho existence v informačním toku. Na druhou stranu podpis nenese užitečné informace a dlouhý podpis snižuje rychlost přenosu informací. Pokud je podpis krátký, pak se informační tok před kódováním zkontroluje na náhodnou přítomnost bitové sekvence, která odpovídá podpisu, a v případě potřeby se informační blok překóduje, aby se podpis vyloučil, nebo po dosažení synchronizace na začátku datového bloku, dekodér ignoruje všechny podpisy v datovém bloku až do konce příjmu celého bloku.
Využívá se také varianta synchronizace informačního bloku pomocí trvání nízkých a vysokých úrovní (0 a 1), které jsou v kódu Manchester samozřejmě nemožné. Ve „správném“ kódu nemůže být tato doba delší než tečka, pokud jsou například na začátek bloku vloženy dvě tečky nízké úrovně a dvě tečky vysoké úrovně, pak taková událost nezavádí konstantní složku do signálu a označuje začátek informačního bloku. Podle GOST 52070-2003 je blok synchronizován během 3 období - prvních 1,5 období na lince je udržováno vysoko a zbývajících 1,5 období - nízké. Jsou možné i další možnosti synchronizace, např. signálem po resetovací lince atp.
V mnoha případech není předem známo, kolikrát byl přijatý kódovaný signál během přenosu logicky invertován, například v ethernetových sítích může kódovaný signál procházet četnými uzly se zařízeními různých výrobců, které lze u libovolného výrobce vyměnit. času, nebo v případě čtení stejných magnetických datových pásek na různých modelech páskových jednotek. Při synchronizaci začátku datového bloku podpisem se tedy téměř vždy kontroluje shoda datového toku s podpisem a jeho bitová inverze. Pokud je nalezen invertovaný podpis, pak jsou všechny následující přijaté datové bity invertovány a ponechány beze změny, pokud je nalezen neinvertovaný podpis. Z toho vyplývá, že u takové synchronizace není zásadní, podle jaké shody bylo kódování původně provedeno - podle Thomase nebo podle IEEE 802.3.
S a priori neznámou periodou kódování dekodér zpočátku měří tuto periodu měřením času mezi sousedními okraji. Vzhledem k tomu, že okrajové body reálných signálů v průběhu času kolísají v důsledku jitteru, šumu, nepravidelného softwarového zpoždění v softwarovém kodéru atd., nestačí měřit pouze několik párů sousedních hran. Proto se při měření periody a poloviny periody v datovém toku obvykle shromažďují určité statistiky .
Ve správném kódu s nepříliš velkým jitterem bude histogram měření sestávat ze dvou skupin vzorků (obrázek 4) a čím menší je jitter, tím užší jsou skupiny na histogramu. První skupina odpovídá trvání 1/2 období, druhá - celému období. Podle výsledků statistického zpracování přijatého histogramu se určí perioda a její hodnota se nastaví generátoru vnitřních hodin dekodéru nebo jeho intervalovému časovači.
Výpočet odhadu období na základě výsledků měření období a případně poloviny období se provádí pomocí vzorce váženého aritmetického průměru .
kde je počet časových intervalů vzorků intervalů histogramu (kapes), - šířka intervalu, je celkový počet vzorků je počet vzorků v tém intervalu.a jsou voleny tak, že např. podle čísla ms a ms.
Obdobnou metodou se určí hodnota poloviny období zprůměrovaná na statistickou populaci
Po určení periody se další dekódování neliší od výše popsaného dekódování s předem stanovenou periodou.
V prvních domácích počítačích, např. Sinclair ZX80 , " Elektronika BK-0010 ", ZX Spectrum , byly jako externí mechanika použity domácí magnetofony. V těchto počítačích bylo kódování a dekódování kódu Manchester během výměny s magnetofonem prováděno programově.
V moderních systémech se softwarové kódování a dekódování používá zřídka a tyto funkce jsou přiřazeny specializovaným mikroobvodům nebo funkčním blokům jako součást jiných mikroobvodů, například v mikrokontrolérech , mikroprocesorech .
Existuje řada specializovaných čipů pro kódování a dekódování kódu Manchester, například:
Vzhledem k tomu, že pro každý bit dat dochází ke dvěma změnám v úrovni signálu, vede to k tomu, že spektrum manchesterského kódu zabírá dvojnásobnou šířku pásma ve srovnání např. s kódem NZR ( Nenulový návrat , přechod bez návratu na nula).
Porovnání spekter Manchester kódu a NZR je na obrázku. Protože kód Manchester nemá konstantní složku (v případě jeho kódování úrovněmi různé polarity rovnými v absolutní hodnotě), je výkonová spektrální hustota kódu Manchester rovna nule při nulové frekvenci, na rozdíl od kódu NZR, který má vždy konstantní složku na jakékoli úrovni a jeho spektrum má konečnou spektrální sílu při nulové frekvenci.
Maximální spektrální výkon kódování Manchester připadá na frekvenci rovnou frekvenci bitrate .
Manchesterské kódování lze považovat za speciální případ binárního klíčování fázovým posunem (PSK), ve kterém data řídí fázi obdélníkové vlny nosné, jejíž frekvence je bitová rychlost.
Přítomnost dvou zaručených přechodů při přenosu 1 bitu umožňuje samosynchronizaci signálu , což umožňuje přijímači (dekodéru) správně se naladit na přenosovou rychlost. Pro přenos není potřeba žádná další linka pro přenos hodinového signálu. Do datového bitového toku také není nutné vkládat startovací a zastavovací bity, jako například v protokolech RS-232 a RS-485, díky nimž se hustota dat v celkovém bitovém toku kódu blíží 100 % ( například pro kód NRZ 1-8 -0 se rovná 80 %).
Žádné DCBez ohledu na konkrétní bitový tok neobsahuje signál kódování Manchester DC složku, pokud jsou hodnoty horní a dolní úrovně stejné v absolutní hodnotě. To usnadňuje konstrukci galvanického oddělení pomocí transformátoru [5] a čtení a zápisu na magnetická média.
Přenos Manchester kódu vyžaduje dvojnásobnou šířku pásma kanálu (šířku kanálu) ve srovnání například s kódováním NRZ .
požadavky na jitterKlade vysoké nároky na stabilitu čel v čase - nízký jitter. Existují i jiné způsoby kódování, například kód 8B/10B má užší šířku pásma, ale je náročnější na redukci jitteru.
Používá se kódování Manchester: