Manchester-kodning

Manchester -kodning [ 1 -____]3[bipulskodabsolut,]2[- kodII-Manchester,] informationsbärare .

Signalen som kodas av Manchester-koden är självsynkroniserande, det vill säga en extra klocköverföringslinje krävs inte för dataöverföring , på grund av det faktum att under överföringen av en databit, oavsett om den är 1 eller 0, en övergång från en nivå till en annan tillhandahålls, vilket gör att mottagaren kan synkronisera sin interna klocka eller timer med sändarens klocka.

En signal kodad i enlighet med Manchester-koden har inte en konstant komponent även vid sändning av långa sekvenser av nollor och ettor, därför kan elektriska anslutningar som överför signalen vara galvaniskt isolerade , till exempel med hjälp av en transformator [5] .

Namnet på kodningen kommer från University of Manchester , där sådan kodning först användes för att lagra data på den magnetiska trumman på Manchester Mark I -datorn .

Beskrivning

Bitkodningskonventioner

Det finns olika konventioner för att koda enskilda bitar i Manchester-kod:

Datakodning med EXCLUSIVE OR och dess inversion
Klocknivå _
_
Databit
_
IEEE 802.3 Manchester kodnivå
[ 6 ]

Thomas
Manchester kodnivå
0 0 0 ett
ett ett 0
ett 0 ett 0
ett 0 ett


Principen för kodning

Kodningen av Manchester-koden är relativt enkel - den utförs av den logiska operationen " EXCLUSIVE OR " (addition modulo two, XOR ) över den aktuella kodade biten och klockgeneratorbiten, i fallet med kodning enligt IEEE 802.3 (exempel i pseudokod ):

Utdata := Data_bit XOR Clock_generator ;

eller med inversion vid kodning enligt Thomas:

Output := NOT (Data_bit XOR Clock_generator );

Kanske både hård- och mjukvaruimplementering av kodaren.

I hårdvaruimplementeringen används en klockgenerator med en arbetscykel på 2 och en repetitionsperiod lika med kodningsperioden, skiftregistret från vilket den kodade databiten och EXKLUSIVT ELLER logikelementet trycks ut vid varje period .

När den är implementerad i mjukvara skapas en virtuell klockgenerator med hjälp av en mjukvarutimer med en exponeringslängd lika med halva perioden:

OM timer_half_period avfyras SÅ starta om timern; Clock_generator := Clock_generator XOR 1 ; SLUT OM ;

Det är möjligt och att föredra att implementera en klockgenerator med hjälp av hårdvarutimeravbrott.

Vidare, för att bilda den slutliga utgångskoden, utförs en EXKLUSIV ELLER -operation med en databit, till exempel, frammatad från registret där det aktuella kodade ordet finns.

Principen för avkodning

Det finns två alternativ för avkodning:

Vidare beskrivs alla nivåer och fronter i förhållande till IEEE 802.3-kodningskonventionen, med avtalet enligt G. E. Thomas ersätts alla nivåer och fronter av omvända.

Med en känd kodningsperiod

I det första fallet, vid avkodning, utförs först bitsynkronisering - mitten av perioden bestäms. För att göra detta övervakar avkodaren signalens höjningar och fall, två angränsande fall i olika riktningar, separerade med 1 punkt, är ett tecken på att sekventiellt går 0 och 1 eller 1 och 0 i dataströmmen, och om den första av dessa droppar stiger (framtill), och den andra faller (faller), då betyder det att i dataströmmen är det en kombination av två bitar 1 och 0 eller 0, 1 i fallet med en fallande flank, också andra av dessa kanter indikerar mitten av kodningsperioden. En kombination av dessa två bitar skrivs till den avkodade databitströmmen. Därefter väntar avkodaren en tid som är ungefär lika med 3/4 av perioden och börjar övervaka förekomsten av ett fall, när ett fall uppträder, om det är ett fall, betyder detta att nästa databit är 0, och 1 är längst fram. Samtidigt startas exponeringstimern för 3/4 av perioden om med samma differential, och sedan upprepas processen.

Starten av kontroll av droppens ankomst efter 3/4 av perioden valdes av skäl för bullerimmunitet, till exempel som ett resultat av jitter och/eller spridning (förlängning) av dropparna, additivt brus i transmissionsledningarna, momenten för förekomsten av dropparna fluktuerar i förhållande till det idealiserade fallet, å andra sidan, med angränsande identiska bitar i dataströmmen, uppstår kanter vid gränsen mellan två perioder av överföring av samma bitar, och kontrollen av förekomsten av kanten bör göras efter ögonblicken av gränserna för klockorna.

Vid ankomsten av varje informationsövergång är det också möjligt att mäta varaktigheten av perioden med en extra timer och justera, om nödvändigt, varaktigheten av timerexponeringen till 3/4 av perioden. Detta gör att du kan spåra långsamma förändringar i kodarperioden, till exempel fluktuationer i hastigheten för magnetbandets frammatning vid avläsning från magnetbandsenheter, eller olika hastigheter på ett magnetremskort av en mänsklig hand.

För att underlätta bitsynkronisering föregås datablock i Manchester-koden, särskilt när de lagras på magnetiska media, vanligtvis av en ganska lång synksekvens 1010101 ...

Bestämma början av ett informationsblock

Att uppnå bitsynkronisering är inte tillräckligt för att ta emot en ström av informationsbitar, eftersom början av ett informationsblock i en ström av oskiljbara bitar i många fall inte är känd, till exempel vid läsning av data från en magnetisk diskenhet. Därför tillämpas dessutom synkronisering på synkroniseringsordet.

Kodaren, vid kodning i början av informationsblocket, infogar ett binärt synkord eller synksignatur , som måste vara känd för avkodaren. För att starta blocksynkronisering jämför avkodaren hela tiden sekvensen av bitar i skiftregistret efter varje skift, längden på detta register är lika med längden på signaturen, i vilken nästa bit infogas vid varje period, med den givna synkroniseringen ord. Matchningen av ordet i skiftregistret och signaturen eller dess invertering är ett tecken på början av informationsblocket, och sedan tolkar avkodaren bitströmmen som information. Längden på synkroniseringsordet i olika system är olika, men vanligtvis minst 2 byte, i Ethernet- protokollet , till exempel, tas signaturens längd till 56 bitar.

Synkordet får inte förekomma i informationsflödet, eller åtminstone måste sannolikheten för en sådan förekomst vara försumbar. Ju längre signaturen är, desto mindre sannolikt är det att den finns i informationsströmmen. Å andra sidan innehåller signaturen inte användbar information och en lång signatur minskar informationsöverföringshastigheten. Om signaturen är kort kontrolleras informationsströmmen före kodning med avseende på den slumpmässiga närvaron av en bitsekvens som matchar signaturen, och, om nödvändigt, kodas informationsblocket om för att utesluta signaturen, eller efter att ha uppnått synkronisering i början av datablocket ignorerar avkodaren eventuella signaturer i datablocket till slutet av mottagandet av hela blocket.

En variant av synkronisering av informationsblocket används också med hjälp av varaktigheter på låga och höga nivåer (0 och 1), vilket uppenbarligen är omöjligt i Manchester-koden. I den "rätta" koden kan denna varaktighet inte vara mer än en period; om till exempel två lågnivåperioder och två högnivåperioder infogas i början av blocket, så introducerar en sådan händelse inte en konstant komponent in i signalen och indikerar början av informationsblocket. Enligt GOST 52070-2003 synkroniseras blocket under 3 perioder - de första 1,5 perioderna på linjen hålls höga och de återstående 1,5 perioderna - låga. Andra synkroniseringsalternativ är också möjliga, till exempel genom en signal längs återställningslinjen, etc.

I många fall är det inte känt i förväg hur många gånger den mottagna kodade signalen har inverterats logiskt under överföringen, till exempel i Ethernet-nätverk kan den kodade signalen passera genom ett flertal noder med utrustning från olika tillverkare som kan bytas ut vid valfri tid, eller när det gäller att läsa samma magnetiska databand på olika modeller av bandenheter. Därför, när början av ett datablock synkroniseras med en signatur, kontrolleras nästan alltid överensstämmelsen mellan dataströmmen och signaturen och dess bitvisa invertering. Om en inverterad signatur hittas, inverteras alla efterföljande mottagna databitar och lämnas oförändrade om en icke-inverterad signatur hittas. Därav följer att med sådan synkronisering är det inte grundläggande enligt vilken överenskommelse kodningen ursprungligen gjordes - enligt Thomas eller enligt IEEE 802.3.

Avkodning med en förutbestämd period

Med en a priori okänd kodningsperiod mäter avkodaren initialt denna period genom att mäta tiden mellan intilliggande kanter. Eftersom kantpunkterna för verkliga signaler fluktuerar över tiden på grund av jitter, brus, oregelbundna mjukvarufördröjningar i mjukvarukodaren, etc., räcker det inte med att endast mäta ett fåtal par intilliggande flanker. Därför, när man mäter en period och en halv period över en dataström, ackumuleras vanligtvis viss statistik .

I en korrekt kod med inte för mycket jitter kommer mäthistogrammet att bestå av två grupper av sampel (Figur 4), och ju mindre jitter, desto smalare grupper på histogrammet. Den första gruppen motsvarar varaktigheten av 1/2 av perioden, den andra - till hela perioden. Enligt resultaten av statistisk bearbetning av det mottagna histogrammet bestäms perioden och dess värde ställs in på avkodarens interna klockgenerator eller dess intervalltimer.

Beräkningen av perioduppskattningen baserat på resultaten av mätningar av perioder och, om nödvändigt, halva perioden utförs med hjälp av den vägda aritmetiska medelvärdesformeln .

där  är antalet tidsintervall för sampel av histogramintervall (fickor),  - intervallbredd,  är det totala antalet prover  är antalet sampel i det e intervallet.

och väljs så att, till exempel, enligt figuren ms och ms.

Med hjälp av en liknande metod bestäms värdet av halva perioden i genomsnitt över den statistiska populationen

Efter bestämning av perioden skiljer sig inte ytterligare avkodning från den ovan beskrivna avkodningen med en förutbestämd period.

Implementeringar

Programvara

I de första hushållsdatorerna, till exempel Sinclair ZX80 , " Elektronika BK-0010 ", ZX Spectrum , användes hushållsbandspelare som en extern enhet. I dessa datorer utfördes kodningen och avkodningen av Manchester-koden under utbytet med bandspelaren programmatiskt.

I moderna system används sällan programvarukodning och avkodning, och dessa funktioner tilldelas specialiserade mikrokretsar eller funktionsblock som en del av andra mikrokretsar, till exempel i mikrokontroller , mikroprocessorer .

Hårdvara

Det finns ett antal specialiserade marker för kodning och avkodning av Manchester-koden, till exempel:

  • 5862IN1N4 - Manchester codec-avkodare [7]
  • K588VG3, K588VG6 - CMOS-kodare-avkodare av Manchester-koden, skapad i slutet av 80-talet [8]
  • DS8102 är en oberoende två-kanals delta-sigma-modulator som omvandlar mätningarna av två analoga ingångspar till Manchester-kod vid utgången; MAXQ3108 är en dubbelkärnig mikrokontroller som inkluderar en Manchester-kodavkodare [9]
  • 3D7501, ACT-15530, HI-15530, HD-15530, HD-15531, ST-10894 - monolitiska Manchester-codec-avkodare och andra [8] .

Spektrum av Manchester-kod

Eftersom det finns två förändringar i signalnivån för varje databit leder detta till att Manchester-kodens spektrum upptar dubbelt så mycket bandbredd jämfört med till exempel NZR-koden ( Non-zero return , transition without returning to noll).

En jämförelse av spektra för Manchester-koden och NZR visas i figuren. Eftersom Manchester-koden inte har en konstant komponent (i fallet med dess kodning med nivåer av olika polaritet lika i absolut värde), är Manchesterkodens effektspektrala täthet lika med noll vid noll frekvens, till skillnad från NZR-koden, som har alltid en konstant komponent på alla nivåer och dess spektrum har en ändlig spektraleffekt vid noll frekvens.

Den maximala spektraleffekten för Manchester-kodningen faller på en frekvens som är lika med bithastighetsfrekvensen .

Manchester-kodning som fasskiftningsnyckel

Manchester-kodning kan ses som ett specialfall av binär fasskiftnyckling  (PSK) där data styr fasen för en fyrkantsvåg hos en bärvåg vars frekvens är bithastigheten.

Fördelar och nackdelar

Fördelar

Självsynkronisering

Närvaron av två garanterade övergångar under överföringen av 1 bit gör att signalen är självsynkroniserande , vilket gör att mottagaren (avkodaren) kan ställa in överföringshastigheten korrekt. För överföring krävs ingen extra linje för att sända klocksignalen. Start- och stoppbitar behöver inte heller infogas i databitströmmen, som till exempel i RS-232- och RS-485-protokollen, på grund av vilka datatätheten i den totala kodbitströmmen närmar sig 100 % ( till exempel, för NRZ 1-8-koden -0 är det lika med 80 %).

Ingen DC

Oavsett den specifika bitströmmen, innehåller en Manchester-kodningssignal inte en DC-komponent om värdena för de övre och nedre nivåerna är lika i absoluta värde. Detta underlättar konstruktionen av en galvanisk isolering med hjälp av en transformator [5] och läs-skriv på magnetiska media.

Nackdelar

Bandbredd

Sändningen av Manchester-kod kräver dubbelt så stor kanalbandbredd (kanalbredd) jämfört med till exempel NRZ-kodning .

jitterkrav

Ställer höga krav på stabiliteten av fronterna i tid - lågt jitter. Det finns andra kodningsmetoder, till exempel har 8B/10B-kod en smalare bandbredd, men är mer krävande vad gäller jitterreduktion.

Tillämpningar av Manchester-kodning

Manchester-kodning tillämpas:

  • I Ethernet-teknik ( IEEE 802.3 ). Manchester-2-koden används till exempel i Ethernet, Token Ring , MIL-STD-1553B (GOST 52070-2003), MIL-STD-1760 och många andra nätverksprotokollstandarder [11] .
  • 10BASE-T- teknik .
  • Styrprotokoll för olika enheter via infraröd.
  • i RFID-taggar .

Anteckningar

  1. ↑ 1 2 3 4 5 6 7 Tanenbaum E. Datanätverk. - 4:e upplagan - St Petersburg. : Peter, 2003. - 992 sid. — ISBN 5-318-00492-X .
  2. ↑ 1 2 3 J. Park , S. McKay , E. Wright. Dataöverföring i styr- och ledningssystem: en praktisk guide / översättning från engelska. V. V. Savelyeva . - M. : IDT Group LLC, 2007. - 480 sid. - ISBN 978-5-94833-023-5 .
  3. ↑ 1 2 3 4 5 Berlin A. N. Omkoppling i kommunikationssystem och nätverk. - M. : Eco-Trends, 2006. - 344 sid. - ISBN 5-88405-073-9 .
  4. Abilov A.V. Kommunikationsnätverk och kopplingssystem. - M . : Radio och kommunikation, 2004. - 288 sid. — ISBN 5-256-01704-7 .
  5. ↑ 1 2 Dunsmore Brad, Skander Toby. Handbok för telekommunikationsteknik. - M. : Williams, 2004. - 640 sid. - ISBN 5-8459-0562-1 .
  6. - notes/index.mvp/id/3435 Manchester datakodning för radiokommunikation. , < https://www.maximintegrated.com/en/app-notes/index.mvp/id/3435 > 
  7. Specialiserat Manchester kodar chip . Hämtad 24 september 2020. Arkiverad från originalet 10 september 2016.
  8. 1 2 https://smekni.com/a/121807/preobrazovatel-kodov-manchester-2/ Manchester-2 kodkonverterare
  9. MAXQ3108
  10. Grundläggande datakommunikation . Hämtad 24 september 2020. Arkiverad från originalet 16 augusti 2021.
  11. Nätverksprotokoll . Hämtad 24 september 2020. Arkiverad från originalet 14 mars 2022.

Litteratur

  • Forster R. (2000). "Manchester-kodning: Motsatta definitioner lösta". Engineering Science & Education Journal. 9 (6): 278. doi:10.1049/esej:20000609.
  • Tanenbaum, Andrew, S. (2002). Datornätverk (4:e upplagan). Prentice Hall. pp. 274-275. ISBN 0-13-066102-3
  • Stallings, William (2004). Data och datorkommunikation (7:e upplagan). Prentice Hall. pp. 137-138. ISBN 0-13-100681-9.
  • Goldstein B.S. Access nätverksprotokoll. - BHV-Petersburg. — 2005.
  • Sukhman S. M., Bernov A. V., Shevkoplyas B. V.  Synkronisering i telekommunikationssystem: Analys av tekniska lösningar. - M .: Eco-Trenz, - 2003, 272 sid. ISBN 5-88405-046-1

Länkar