Kysymys:
Manchesterin koodaus
Adan Sh
2012-04-24 13:36:32 UTC
view on stackexchange narkive permalink

Kuten ymmärrän, Manchesterin koodauksessa tunnetut bitit lähetetään ennen siirtämisen aloittamista.

Mutta en ymmärtänyt miksi - Yksi Manchesterin tärkeimmistä eduista on tosiasia, että synkronointi kummankin osapuolen välillä on helpompaa. Joten miksi minun täytyy lähettää bittiä ennen siirtoa?

@mazurnification: Poistan linkityksen. Se on Manchesterin protokolla
Sanoisin, että "Manchesterin protokolla" on huono alias samalle kuin "Manchester code". Wikipedia ohjaa sinut protokollasta koodiin.
Adan Sh: kunnioitettu laittaa linkki takaisin; se, mitä @Telaclvo sanoi, on oikein.
Kuusi vastused:
Olin Lathrop
2012-04-24 18:09:36 UTC
view on stackexchange narkive permalink

Johdanto-osan käyttämisellä manchesteri-koodatun datapaketin aloittamiseen on kaksi pääasiallista syytä:

  1. Anna datanleikkaimen asettua. Manchesteria käytetään usein radiolinkkien ja fyysisten linkkien kautta, joissa ei ole suoraa yhteyttä ja korkean ja matalan tason välistä eroa ei nimenomaisesti tiedetä etupuolella. Tämä tarkoittaa yleensä, että anlogisignaali esitetään datanleikkurille , joka havaitsee ja välittää digitaalisten ylä- ja alamäiden sekvenssin.

    Yksi manchester-koodauksen ominaisuus, joka tekee siitä hyödyllisen tällainen linkki on, että se on keskimäärin 1/2 korkea ja 1/2 matala lyhyin väliajoin. Jokaisella bitillä on sama keskimääräinen taso 1/2. Tämä tekee tietojen viipaloinnista suhteellisen helppoa, koska se voi olla yksinkertainen vertailija 1/2 tasoon nähden. Tämä tarkoittaa kuitenkin, että sinun on tiedettävä, mikä on 1/2 taso. Vanhat vastaanottimet tekisivät tämän laitteistossa suodattamalla alipäästösuodatin manchester-virtaa. Tällaiset suodattimet eivät tarkoituksella reagoi paljon yhden bitin aikana, joten ota muutama bitti laskeutumaan. Johdanto sisältää heittää bittiä, joita vastaanottimen ei ole tarkoitus havaita oikein, kun sen tiedonsiirtäjä löytää 1/2 tason.

  2. Ilmoita paketin alku. Koska useimmilla manchester-vastaanottimilla on olennaisesti automaattinen vahvistuksen hallinta 1/2 tason kautta, jota käytetään datan viipaloimiseen, kuten edellä on kuvattu, vastaanotin tulkitsee taustakohinan sarjana korkeita ja matalia tasoja aivan kuten todellinen signaali. Yleensä ei ole signaalia vastaanottimen digitaalisen virran tulkintaosalle, vain että virralla on merkitystä, kun on todellista signaalia.

    Manchester sisältää joitain tarpeettomia tietoja, jotta jotkut tasosekvenssit voivat havaitaan virheellisiksi suoraan ilman korkeamman tason tulkintaa. Esimerkiksi jokaisen bitin keskellä on oltava transistio. Kolme saman tason puolibittiä on laitonta, kuten esimerkiksi kaksi-yksi-kaksi.

    Vaikka paketin alkuasetusten palauttaminen aina, kun yllä olevan kaltainen rikkomus havaitaan, auttaa, satunnaisella roskapostilla on silti riittävästi mahdollisuuksia tehdä siitä edelleen paketti, johon useimmissa tapauksissa on puututtava. Et halua, että korkeammat tasot ovat syvällä pakettien dekoodauslogiikassa melusta, kun tulee todellinen paketti, joka näyttää vain enemmän tietoa väärältä paketilta. Lopulta väärä paketti todennäköisesti epäonnistuu paketin tarkistussummatestissä, mutta löysit silti todellisen paketin.

    Hyvä strategia on sitten tehdä johdannosta ainutlaatuinen sekvenssi, joka ei ole voimassa muussa paketissa . Kun tämä sekvenssi havaitaan, ylemmän tason pakettien tulkintalogiikka palautetaan paketin alkuun riippumatta siitä, mitä se ajatteli tekevänsä tuolloin.

    Teen tämän yleensä tavarabittimen avulla. Jos todelliset tiedot sisältävät esimerkiksi 7 0s peräkkäin, lähettimen on lisättävä 1 tavarabitti 0s jälkeen. Vastaanotin tietää tämän ja kuorii 1 bitin 7 peräkkäisen 0 bitin jälkeen. Tämä tarkoittaa, että koskaan ei ole 8 peräkkäistä 0 bittiä, mikä olisi hieman täyte-rikkomusta. Jos havaitaan vähän täytteen rikkomista, pakettien tulkintalogiikka voidaan palauttaa turvallisesti paketin alkuun, koska se ei todellakaan ollut kelvollisessa paketissa tuolloin. Johdanto sisältää tarkoituksellisesti tällaisen tavarabittirikkomuksen pakottaakseen tulkintalogiikan palauttamaan paketin alkuun.

    Tämä tavarabittimalli ja paketin alkuun palauttaminen ei ole tavallinen manchester, mutta jotain, jota haluan käyttää tehdä manchesteristä luotettavampi radion kaltaisissa linkeissä.

Manchester-koodauksessa on enemmän, kun ajattelet yksityiskohtia todella. Voit tehdä paljon nopeammin vastaavan datanleikkurin esimerkiksi digitaalisessa prosessorissa, jolloin voit käyttää muita keinoja kuin bittitäytteitä paketin alun luotettavan havaitsemiseen, mutta se on koko aihe itselleen.

Kaksi vaihtoehtoa bittitäytölle, joita käytetään tietyissä tilanteissa: (1) sisältää pariteettibitin muutaman bitin välein. Tätä lähestymistapaa käytetään magneettinauhakorteissa, jolloin peräkkäisten nollien enimmäismäärä 5-bittisessä datavirrassa on 8 (10000 00001); (2) käyttää BCD-tietoja. Tätä lähestymistapaa käytetään SMPTE-aikakooditietojen kanssa, vaikka BCD-kuplat vaihtelevat muun kuin BCD: n kanssa, joten peräkkäisten "1" -määrien enimmäismäärä on 8 (0111 1111 1001, jos se on big-endian). Olen utelias, olisiko "1101100100" hyvä johdanto-osa, koska se olisi ainutlaatuinen myös ilman pureskelua.
@supercat: Kyllä, järjestelmiä on paljon. Esimerkiksi pitkän, lyhyt, pitkä, lyhyt jne. Johdanto toimii ilman täyttöä, koska se rikkoo yksinomaan manchesteriä. Se ei ole keskimäärin 1/2, mutta se on hieno, jos tiedonsiirtäjäsi tekee jotain muuta kuin vertaa viimeaikaiseen keskiarvoon. Se toimisi hyvin esimerkiksi digitaalisen datan viipaloinnin toteutuksissani, koska ne käyttävät epälineaarisia suodattimia viipalointitason johtamiseen.
Mielestäni on tärkeää, että johdanto-osassa on sama ja pitkä sekä korkea että matala; muuten, jos lähetyskanava on ollenkaan "analoginen", pitkät ajat voivat olla lyhyempiä kuin ne todellisuudessa ovat ja lyhyet kertaa pidemmät. Tasapainotettuja Manchester-tietoja on mahdollista purkaa mittaamalla vain nousevan reunan nousun ja laskevan reunan ajat ilman, että joudutaan mittaamaan nousevasta reunasta laskevaan reunaan tai päinvastoin, mutta johdanto on 100 tai 110 vain lukisi yhtenäisenä nousevien reunojen sekvenssinä ja yhtenäisenä putoavien reunojen jaksona.
@supercat: Mitä todella sanot, on se, että tyypillisissä analogisissa tiedonsiirtäjissä vaaditaan, että datavirran keskiarvo on 1/2. Se on totta, mutta kuten sanoin, on muitakin tyyppejä, joilla ei ole tätä vaatimusta. En ole tehnyt analogista tiedonsiirtolaitetta vuosien ajan. Kaikilla digitaalisilla laitteillani olisi hieno jotain pitkä-lyhyt-pitkä-lyhyt sarja. Ne asettuvat myös nopeammin, tavallisesti hieman yli yhdessä ajassa.
Paljon riippuu väliaineesta, jonka läpi data kulkee. Jos käyttäytyminen nousevilla ja laskevilla reunoilla voidaan olettaa olevan symmetristä tai jos tiedonsiirtonopeus tunnetaan, korkea-matala-matala voi olla täysin hieno johdanto. Jos tällaiset oletukset eivät pidä paikkansa, korkea-matala-matala saattaa näyttää pitkien tai lyhyiden jaksoista, joissa matala pulssi on "venytetty" suhteessa korkeaan pulssiin.
@Supercat: Sen ei tarvitse olla kyse nousu- ja laskuaikoista. Itse asiassa digitaaliset viipaleet eivät välitä niistä.
Telaclavo
2012-04-24 14:20:31 UTC
view on stackexchange narkive permalink

Yksi Manchesterin tärkeimmistä eduista on se, että synkronointi molempien osapuolten välillä on helpompaa.

Manchesterin koodauksen helpottama synkronointityyppi on synkronointi bittitasolla , ei sana- tai pakettitasolla . Itse asiassa se ei auta lainkaan jälkimmäisessä. Ja siksi sinun on ehkä siirrettävä joitain tunnettuja bittejä ennen tietobittejäsi.

Se auttaa edellisessä (bittitason synkronointi), koska se helpottaa kellon palautusta.

Miksi minun on siis lähetettävä bittiä ennen siirtoa?

Joten ne auttavat sinua synkronoinnissa sana- / pakettitasolla. Manchesterin koodaus ei auta sinua tällä tasolla.

Kiitos vastauksestasi. Joten kuten ymmärsin sinulta, minun on lähetettävä bittiä ennen sanaa tai pakettia merkitsemään, että aloitan sanan / paketin siirron (toisin sanoen, kaksi puolta päätetään sovitusta merkistä, joka symboloi paketin / sanan alkua). Tämä tehdään netword acsses -kerroksessa?
@AdanSh Kyllä, sinun on lähetettävä bittejä sen takia, ja sanoisin, että se tehdään Data link -kerroksessa. Katso tämä http://fi.wikipedia.org/wiki/Frame_(networking)
stevenvh
2012-04-26 16:08:18 UTC
view on stackexchange narkive permalink

Manchester on koodausmenetelmä, ei protokolla, joka kuvaa paljon enemmän viestinnästä. Ethernet on protokolla, joka käyttää Manchesterin koodausta.

Manchesterin koodaus toimii bittitasolla, se näkee vain yhden yksittäisen bitin, se ei välitä edellisistä tai peräkkäisistä biteistä. Sillä ei ole väliä onko se ensimmäinen vai viides bitti, ja sellaisenaan se ei voi sanella lähettämään ylimääräisiä bittejä ennen siirron alkua.

Tarkoitat todennäköisesti sitä, että protokolla aloittaa paketin / sanan siirron tunnetulla sekvenssillä (myös Manchesterin koodatulla tavalla, joten tästä tulee ensimmäinen bitti).

Harkitse seuraavaa neljän negatiivisen menevän pulssin sarjaa:

\ $ \ mbox {1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1} \ $

Ei ole mitään tapaa tietää, onko kyseessä 0x0000 vai 0x1111 , eikä Manchester välitä siitä. Sinun on määriteltävä ylimääräisiä bittejä tietoihin, jotta voit purkaa ne. Esimerkiksi, jos protokollasi sanoo, että jokainen viesti alkaa 1 -bit johdannolla, sen on oltava 0x1111 . Useiden bittien johdanto helpottaa synkronointia, mutta heikentää myös kanavan tehokkuutta.
BTW, tällaiset sekvenssit, vain 1 s tai 0 s, ovat ainoat, jotka voivat Älä purkaa. Mikä tahansa sekvenssi, jolla on vähintään 1 1 ja 1 0 , voidaan dekoodata. Bittitäyte voi auttaa välttämään kaikkia 1 -merkkejä tai kaikkia 0 -malleja.
Jopa silloin johdanto on hyödyllinen, koska dekooderi pystyy tuottaa bittiä, kun ne vastaanotetaan. Ilman johdantoa data, kuten 0x0000001 , voidaan purkaa vain, kun 1 -bitti vastaanotetaan.

Johdanto ei kuitenkaan ole Manchesterin koodausvaatimus!

Federico Russo
2012-04-24 13:47:08 UTC
view on stackexchange narkive permalink

Manchesterin koodaus johtaa kaksivaiheiseen signaaliin: joko puoli bittiä aika matala, jota seuraa puoli vähän aikaa korkea (esimerkiksi looginen 1 ), tai puoli vähän aikaa korkea, jota seuraa puolibittinen aika matala (looginen 0 ). Se ei vaadi ylimääräisiä bittiä.

enter image description here

On mahdollista, että seuraava korkeampi protokollataso vaatii johdannon ennen todellisen hyötykuorman siirtämistä, mutta Manchester ei ole määritellyt sitä. Manchester vain käsittelee yksittäisten bittien koodausta, se ei tunne käsitteitä, kuten viestejä tai paketteja.

Oletko varma? Luin kirjan seuraavan lauseen, joka käsittelee tätä asiaa: "kahden osapuolen tuntemat bitit lähetetään ennen tiedonsiirron aloittamista". Käännän sen englanniksi, mutta toivon ymmärtävän sen merkityksen.
@AdanSh: positiivinen! Manchester koskee vain kuvaamani koodausta. Lisabittien on oltava osa korkeamman tason protokollaa. Muuten, miten nämä ylimääräiset bitit koodataan?
Kirjassa ei mainita miten, siinä vain mainitaan nämä tiedot.
MikeJ-UK
2012-04-24 14:17:35 UTC
view on stackexchange narkive permalink

Tavallinen syy on antaa vastaanottimelle kellonaika synkronointiin / lukitsemiseen ennen varsinaisen datan saapumista. Tyypillisesti käytetään peräkkäisten ykkönen tai nollia.

Kun MIL-STD 1553 (avioniikkaväyläprotokolla) lähetetään 1,5-bittisiä jaksoja kestävä looginen (tai nolla). loogisella nollalla (tai yhdellä), joka kestää 1,5 bittiä. Tämä on itse asiassa Manchesterin koodin vastaista, mutta vastaanotin on helposti havaittavissa.

EM 4100 -protokollaa käyttävissä matalataajuisissa RFID-tunnisteissa datakehys alkaa otsikolla 9 Manchesteria. Synkronointi ei ole tässä kysymys, koska vastaanottimessa on jo kello (koska se säteilee sitä lähettävään tagiin). Data voi kuitenkin kääntyä, joten vastaanottimen on määritettävä napaisuus. Koska 9 peräkkäistä samaa polariteettia olevaa bittiä ei koskaan voi esiintyä todellisissa tiedoissa (pariteettibittien takia), otsikko voidaan havaita yksiselitteisesti yhtenä sarjana.

Tony Stewart Sunnyskyguy EE75
2012-04-24 23:25:44 UTC
view on stackexchange narkive permalink

Nimeä vähintään 3 Manchester Code- tai Bi-Phase-menetelmää, a) Mark, Space, Transition

Nimeä vähintään 3 synkronointitasoa viestinnässä;

a) bittisynkronointi , b) sanasynkronointi (~ tavu) c) kehyssynkronointi

Mikä on optimaalinen kehyssynkronoinnille?

Ristikorrelaatiokoodi, jossa koodisanoilla on suuri ainutlaatuisuus synkronoituna vs. synkronointi. eli kuvion tunnistusjärjestelmä, joka on myös vähiten todennäköistä dataa.

Tämä on välttämätöntä, kun sarjabitit muunnetaan rinnakkaisiksi sanoiksi ja kehyssynkronoinniksi.Tämä tiesin 35 vuotta sitten, kun otin ensimmäisen kerran käyttöön SCADA-järjestelmän 70-luvun puolivälissä. Se on saattanut muuttua nyt. Kellon synkronointi voi olla yhtä yksinkertaista kuin XOR, jossa on 1 kuvan viive siirtymissä, jotta voidaan luoda ei-uudelleenkäynnistettävä kello, tai parempi PLL, jossa siirtymät näytteistävät erittäin vakaan VCXO: n käyttämällä sahanterän kellosignaalia ja datareunoja vaihevirran jännitteen ottamiseksi. Tietysti Bandpass-suodattimesi ja väliaineesi vievät värinää, joten sinun on opittava käyttämään korotettuja kosini-suodattimia, joissa bittisiirtymä on nolla. Bittivirhesuhde tai BER on kellosihottimen, kellon jitter & -vaihevirheen ja tietojesi värinän epäsymmetrian funktio. BER on suoraan ennustettavissa SNR: stä, ja vaihemarginaalitestit auttavat eristämään BER-ongelmiesi syyn käyttämällä pienennettyjä ja siirrettyjä aikaikkunoita pakottaaksesi kellosi pois keskuksesta ja tarkistamaan, ovatko tiedot edelleen kelvollisia.

Tämä on salainen menetelmä minkä tahansa marginaalisen viestintäjärjestelmän analysointiin. Hakeuduin SCADA-tietoliikenteeseen, telemenetelmään ilmailuun, kiintolevyn tietojen palauttamiseen ja Telecom T1 -päiviin.

(jos haluat lisätietoja sahahammasten VCO-näytteestä &-näytteen pitovirheestä tiedonsiirrosta .. kysy vain: p) yli 30 vuotta sitten suunnittelin, mutta luulen voivani tehdä sen vielä.

Se oli tietysti synkroninen kommunikointikanava .. Voit käyttää sitä myös ASYNC-kommunikointiin. ja ehkä sitä tarkoitit alustusosilla. . Käytin viipaleiden seurantasuodattimessa +/- huippu- ja pitotunnistimia.

Jos mikään näistä vastauksista ei toimi sinulle, kokeile toista kysymystä ....

Huh? Pienellä tällä näennäisesti tavoitteettomalla röyhkeydellä on paljon järkeä.
Näyttää siltä, ​​ettet tiedä mitään Manchesterin koodista. Olen suunnitellut monia menestyksekkäästi vuodesta 1976. Biphase vaatii esivahvistuksen kellosynkronoinnin vaiheiden mahdollistamiseksi. Koska IEEE on määrittänyt 3 vaiheprotokollaa, Mark, Space ja Inverse, et voi arvata, että tämä tiedetään. Sitten kellon poisto on helppoa. Minulle tulee aina mieleen, että ne, jotka eivät tiedä mitään, eivät voi ymmärtää järkeä ja logiikkaa ja tehdä kommentteja kuten sinun .. Pls vetäytyä. BTW, koska sitä käytetään asynkronointiin. -tilassa. pre-amble on välttämätön synkronoinnin ylläpitämiseksi sanojen jälkeen. kuten kehyssynkronointi, tavujen synkronointi jne., joita käytetään T1-toistimissa ja Biø: ssä
aina, kun muodostat synkronisen tai asynkronisen tiedonsiirron yhden kanavan kanssa (kello on upotettu koodattuihin tietoihin), tietojen palauttaminen vaatii vakiintuneen ennalleen asettamisen .. Manchesterin koodi tai BIPHASE tai modeemit tarvitsevat kaikki valmiiksi, mutta toisin kuin UARTS, joka on keskinäytteinen Nx kellot aloituskärjen etureunassa.


Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...