Manchester kódolás [ 1 ____]3[kódbipulzusabszolút,]2[kódII-Manchester,] információhordozóra .
A Manchester kóddal kódolt jel önszinkronizáló, azaz nincs szükség további órajeles átviteli vonalra az adatátvitelhez , mivel egy adatbit átvitele során, függetlenül attól, hogy 1 vagy 0, egy Az egyik szintről a másikra átmenet biztosított, ami lehetővé teszi a vevő számára, hogy belső óráját vagy időzítőjét szinkronizálja az adó órájával.
A Manchester kóddal kódolt jelnek nincs állandó komponense még hosszú nullák és egyesek sorozatai átvitele esetén sem, ezért a jelet továbbító elektromos kapcsolatok galvanikusan leválaszthatók , például transzformátor segítségével [5] .
A kódolás elnevezése a Manchesteri Egyetemről származik, ahol először használták ezt a kódolást a Manchester Mark I számítógép mágneses dobjának tárolására .
Különböző konvenciók léteznek az egyes bitek kódolására a Manchester kódban:
Óraszint _
_ |
Adatbit _ |
IEEE 802.3 Manchester kódszint [ 6] |
Thomas
Manchester kódszint |
---|---|---|---|
0 | 0 | 0 | egy |
egy | egy | 0 | |
egy | 0 | egy | 0 |
egy | 0 | egy
|
A manchesteri kód kódolása viszonylag egyszerű - IEEE 802.3 szerinti kódolás esetén az " EXCLUSIVE OR " (addition modulo two, XOR ) logikai művelettel hajtják végre az aktuális kódolt biten és az óragenerátor biten keresztül (példák). pszeudokódban ) :
Kimenet := Adat_bit XOR Óragenerátor ;vagy inverzióval a Thomas szerinti kódolásnál:
Kimenet := NEM (Data_bit XOR Clock_generator );Talán a kódoló hardveres és szoftveres megvalósítása.
A hardveres megvalósításban egy 2-es munkaciklusú és a kódolási periódussal megegyező ismétlési periódusú órajelgenerátort használnak, az eltolási regisztert , amelyből a kódolt adatbit és az EXCLUSIVE OR logikai elem minden periódusban kinyomódik .
Szoftverben való megvalósításkor egy virtuális óragenerátor jön létre szoftveres időzítővel, amelynek expozíciós időtartama a periódus felével egyenlő:
HA az időzítő_félidőszaka aktiválva AKKOR indítsa újra az időzítőt; Óragenerátor := Óragenerátor XOR 1 ; VÉGE HA ;Lehetséges és előnyösebb egy óragenerátor megvalósítása hardveres időzítő megszakításokkal.
Továbbá a végső kimeneti kód kialakításához egy KIZÁRÓLAGOS VAGY műveletet hajtunk végre egy adatbittel, például abból a regiszterből, ahol az aktuális kódolt szó található.
Két lehetőség van a dekódolásra:
Továbbá az összes szintet és frontot az IEEE 802.3 kódolási konvencióval kapcsolatban írjuk le, G. E. Thomas egyetértésével minden szintet és frontot inverzekkel helyettesítünk.
Ismert kódolási periódussalAz első esetben a dekódolás során először bitszinkronizálást hajtanak végre - a periódus közepét határozzák meg. Ennek érdekében a dekóder figyeli a jel emelkedését és süllyedését, két szomszédos, különböző irányú, 1 periódussal elválasztott csepp annak a jele, hogy az adatfolyamban egymás után 0 és 1 vagy 1 és 0 lép, és ha az első ezek a cseppek emelkedő (front), a második pedig esik (esik), akkor ez azt jelenti, hogy az adatfolyamban két bit 1 és 0 vagy 0, 1 kombinációja leszálló él esetén, továbbá a a második él a kódolási periódus közepét jelzi. E két bit kombinációja kerül a dekódolt adatbitfolyamba. Ezután a dekóder körülbelül a periódus 3/4-ével egyenlő ideig vár, és elkezdi figyelni az esés előfordulását, amikor megjelenik, ha csepp, ez azt jelenti, hogy a következő adatbit 0 és 1 elöl van. Ezzel egyidejűleg az időtartam 3/4-ére az expozíciós időzítő újraindul ugyanazzal a különbséggel, majd a folyamat megismétlődik.
Az időszak 3/4-e utáni esés beérkezésének ellenőrzésének megkezdését zajtűrési okok miatt választották, például a cseppek vibrálása és/vagy szétterülése (megnyúlása), a távvezetékekben fellépő additív zaj , a cseppek előfordulási pillanatai az idealizált esethez képest ingadoznak, másrészt az adatfolyamban szomszédos azonos bitek esetén ugyanazon bitek két átviteli periódusa közötti határon élek lépnek fel, és az előfordulás ellenőrzése Az élt az órák határainak mozzanatai után kell elkészíteni.
Valamint minden információs átmenet megérkezésekor lehetőség van egy segédidőzítővel mérni az időszak időtartamát, és szükség esetén az időzített expozíció időtartamát az időszak 3/4-ére beállítani. Ez lehetővé teszi a kódoló periódusának lassú változásainak nyomon követését, például a mágnesszalag előrehaladási sebességének ingadozásait mágnesszalagos meghajtókról történő olvasáskor, vagy a mágnescsíkos kártya emberi kéz általi eltérő sebességét.
A bitszinkronizálás megkönnyítése érdekében a Manchester kódban lévő adatblokkokat, különösen mágneses adathordozón tárolva, általában egy meglehetősen hosszú szinkronizálási sorozat előzi meg 1010101 ...
Információs blokk kezdetének meghatározásaA bitszinkronizálás elérése nem elegendő egy információs bitfolyam fogadásához, mivel sok esetben nem ismerjük az információs blokk kezdetét egy megkülönböztethetetlen bitfolyamban, például amikor adatokat olvasunk egy mágneses lemezmeghajtóról. Ezért a szinkronizálási szó szinkronizálását is alkalmazzák.
A kódoló, amikor az információs blokk elején kódol, beszúr egy bináris szinkronszót vagy szinkron aláírást , amelyet ismernie kell a dekódolónak. A blokk szinkronizálás elindításához a dekóder minden eltolás után folyamatosan összehasonlítja a shift regiszter bitsorozatát, ennek a regiszternek a hossza megegyezik az aláírás hosszával, amelybe az adott szinkronizálással minden periódusban a következő bit bekerül. szó. A shift regiszterben lévő szó és az aláírás illesztése vagy annak megfordítása az információs blokk kezdetének jele, majd a dekódoló a bitfolyamot információsként értelmezi. A szinkronizáló szó hossza a különböző rendszerekben eltérő, de általában legalább 2 bájt, az Ethernet protokollban például az aláírás hosszát 56 bitnek veszik.
A szinkronszó nem fordulhat elő az információáramlásban, vagy legalábbis az előfordulás valószínűsége elhanyagolható legyen. Minél hosszabb az aláírás, annál kevésbé valószínű, hogy az információáramban szerepel. Másrészt az aláírás nem hordoz hasznos információt, és a hosszú aláírás csökkenti az információátviteli sebességet. Ha az aláírás rövid, akkor a kódolás előtti információfolyamban ellenőrzik az aláírásnak megfelelő bitsorozat véletlenszerű jelenlétét, és szükség esetén az információs blokkot újrakódolják az aláírás kizárására, vagy a szinkronizálás elérése után az aláírás elején. az adatblokkot, a dekóder figyelmen kívül hagyja az adatblokkban lévő aláírásokat a teljes blokk vételének végéig.
Az információs blokk szinkronizálásának egy változatát is alkalmazzák alacsony és magas szintű (0 és 1) időtartamok segítségével, ami nyilvánvalóan lehetetlen a Manchester kódban. A „helyes” kódban ez az időtartam nem lehet több egy periódusnál, ha például két alacsony és két magas szintű periódus kerül beillesztésre a blokk elejére, akkor egy ilyen esemény nem vezet be állandó komponenst a jelbe, és jelzi az információs blokk kezdetét. A GOST 52070-2003 szerint a blokk 3 perióduson keresztül szinkronizálva van - a vonal első 1,5 periódusa magasan, a fennmaradó 1,5 periódus alacsonyan van tartva. Más szinkronizálási lehetőségek is lehetségesek, például egy jel a visszaállítási vonal mentén stb.
Sok esetben nem tudni előre, hogy a vett kódolt jelet hányszor fordították logikailag az átvitel során, például Ethernet hálózatokban a kódolt jel számos csomóponton haladhat át különböző gyártók berendezéseivel, amelyek bármikor cserélhetők. időben, vagy ugyanazon mágneses adatszalagok olvasása esetén különböző típusú szalagos meghajtókon. Ezért, amikor egy adatblokk elejét aláírással szinkronizáljuk, az adatfolyam egybeesését az aláírással és annak bitenkénti inverziójával szinte mindig ellenőrizzük. Ha invertált aláírást talál, akkor az összes következő vett adatbit megfordítja, és változatlan marad, ha nem invertált aláírást talál. Ebből következik, hogy egy ilyen szinkronizálásnál nem alapvető, hogy a kódolás eredetileg milyen megegyezés alapján készült - Thomas szerint vagy az IEEE 802.3 szerint.
Egy eleve ismeretlen kódolási periódus esetén a dekódoló kezdetben ezt az időszakot méri a szomszédos élek közötti idő mérésével. Mivel a valós jelek élpontjai idővel ingadoznak a jitter, zaj, a szoftveres kódoló szabálytalan szoftverkésleltetése stb. miatt, nem elég csak néhány szomszédos élpárt mérni. Ezért, amikor egy időszakot és egy fél periódust mérünk egy adatfolyamon, általában bizonyos statisztikai adatok halmozódnak fel .
Egy helyes, nem túl sok jitterrel rendelkező kódban a mérési hisztogram két mintacsoportból áll (4. ábra), és minél kisebb a jitter, annál szűkebbek a csoportok a hisztogramon. Az első csoport az időszak 1/2-ének, a második az egész időszaknak felel meg. A kapott hisztogram statisztikai feldolgozásának eredményei alapján a periódus meghatározása és értéke a dekóder belső órajel-generátorára vagy annak időzítőjére kerül beállításra.
A periódusok és szükség esetén a periódus felének mérési eredményei alapján az időszakbecslés számítása a súlyozott számtani átlag képlettel történik .
ahol a hisztogram intervallumok (zsebek) mintáinak időintervallumainak száma, - intervallum szélesség, a minták teljes száma a minták száma a th intervallumban.és úgy vannak megválasztva, hogy például az ms és ms ábrája szerint .
Hasonló módszerrel határozzuk meg az időszak felének a statisztikai sokaságra átlagolt értékét
A periódus meghatározása után a további dekódolás nem különbözik a fent leírt dekódolástól, előre meghatározott periódussal.
Az első háztartási számítógépekben, például Sinclair ZX80 , " Elektronika BK-0010 ", ZX Spectrum , háztartási magnetofonokat használtak külső meghajtóként. Ezekben a számítógépekben a manchesteri kód kódolása és dekódolása a magnóval történő csere során programozottan történt.
A modern rendszerekben a szoftveres kódolást és dekódolást ritkán használják, és ezeket a funkciókat speciális mikroáramkörökhöz vagy funkcionális blokkokhoz rendelik más mikroáramkörök részeként, például mikrovezérlőkben , mikroprocesszorokban .
Számos speciális chip létezik a Manchester-kód kódolására és dekódolására, például:
Mivel minden adatbitnél két változás történik a jelszintben, ez ahhoz a tényhez vezet, hogy a Manchester kód spektruma kétszer akkora sávszélességet foglal el, mint például az NZR kód ( Non-zero return , átmenet visszatérés nélkül nulla).
A Manchester kód és az NZR spektrumának összehasonlítása az ábrán látható. Mivel a Manchester kódnak nincs állandó komponense (abszolút értékben egyenlő polaritású szintekkel történő kódolás esetén), a Manchester kód teljesítményspektrális sűrűsége nulla frekvencián nullával egyenlő, ellentétben az NZR kóddal, amely mindig van állandó komponense bármilyen szinten, és spektruma véges spektrális teljesítményű nulla frekvencián.
A Manchester kódolás maximális spektrális teljesítménye a bitráta frekvenciával megegyező frekvenciára esik .
A manchesteri kódolás a bináris fáziseltolásos kulcsolás (PSK) speciális eseteként fogható fel, amelyben az adatok egy olyan vivő négyszöghullámának fázisát szabályozzák, amelynek frekvenciája a bitsebesség.
Két garantált átmenet jelenléte az 1 bites átvitel során lehetővé teszi a jel önszinkronizálását , ami lehetővé teszi a vevő (dekódoló) számára, hogy megfelelően ráhangolódjon az átviteli sebességre. Az átvitelhez nincs szükség további vonalra az órajel továbbításához. Ezenkívül a start és stop biteket nem kell beilleszteni az adatbitfolyamba, mint például az RS-232 és RS-485 protokollokban, amelyek miatt az adatsűrűség a teljes kódbitfolyamban megközelíti a 100%-ot ( például az NRZ 1-8 kódnál -0 ez egyenlő 80%-kal.
Nincs DCAz adott bitfolyamtól függetlenül egy Manchester kódoló jel nem tartalmaz DC komponenst, ha a felső és az alsó szint értékei abszolút értékben megegyeznek. Ez megkönnyíti a galvanikus leválasztás felépítését transzformátor [5] és mágneses adathordozón írás-olvasás segítségével.
A Manchester-kód átvitele kétszeres csatornasávszélességet (csatornaszélességet) igényel, mint például az NRZ kódolásnál .
jitter követelményekMagas követelményeket támaszt az előlapok időbeni stabilitásával szemben – alacsony rezgés. Vannak más kódolási módszerek is, például a 8B/10B kód szűkebb sávszélességgel rendelkezik, de a jitter csökkentése szempontjából igényesebb.
Manchester kódolást alkalmaznak: