Kod Manchester-II lub kod Manchester jest najczęściej używany w sieci lokalne. Należy również do kodów samosynchronizujących, ale w przeciwieństwie do kodu RZ ma nie trzy, a tylko dwa poziomy, co zapewnia lepszą odporność na zakłócenia.

Logiczne zero odpowiada przejściu na wyższy poziom w środku przedziału bitowego, logiczne jedynka odpowiada przejściu na niższy poziom. Logika kodowania jest wyraźnie widoczna na przykładzie przesyłania sekwencji jedynek lub zer. Podczas przesyłania przeplatanych bitów częstotliwość powtarzania impulsów zmniejsza się o połowę.

Przejścia informacyjne pozostają w środku bitu, natomiast przejścia graniczne (na granicy przedziałów bitowych) nie występują przy naprzemiennych jedynkach i zerach. Odbywa się to za pomocą sekwencji impulsów hamujących. Impulsy te są zsynchronizowane z impulsami informacyjnymi i zapewniają, że niepożądane przejścia graniczne są zabronione.

Zmiana sygnału w środku każdego bitu ułatwia wyizolowanie sygnału zegara. Samosynchronizacja umożliwia przesyłanie dużych pakietów informacji bez strat ze względu na różnice częstotliwości zegara nadajnika i odbiornika.

Rysunek 7.3 Dwupoziomowy kod Manchester-II.

Wielką zaletą kodu Manchester jest brak stałej składowej przy przesyłaniu długiego ciągu jedynek lub zer. Dzięki temu galwaniczna izolacja sygnałów odbywa się w najprostszy sposób, na przykład za pomocą transformatorów impulsowych.

Ważną cechą kodu Manchester jest brak stałej składowej sygnału podczas transmisji długiej sekwencji jedynek lub zer. Pozwala to na galwaniczną izolację nadajników i odbiorników za pomocą transformatorów impulsowych.

widmo częstotliwości Sygnał w kodowaniu Manchester zawiera tylko dwie częstotliwości nośne. Dla protokołu dziesięciomegabitowego jest to 10 MHz przy przesyłaniu sygnału składającego się z jednego zer lub jedynki oraz 5 MMHz dla sygnału z naprzemiennymi zerami i jedynkami. Dlatego filtry pasmowe mogą z łatwością odfiltrować wszystkie inne częstotliwości.

Zalety kodu Manchester:

  • kod synchronizuje się samoczynnie, ponieważ koniecznie jest przejście w środku bitu,
  • nie ma składowej DC w sygnale kodu Manchester, dzięki czemu można go użyć do izolacji galwanicznej transformatory impulsowe (izolacja galwaniczna wykonywane przez kartę sieciową).

Wada kodu Manchester:

  • podobnie jak w przypadku kodu RZ, wymagana jest podwójna przepustowość niż w przypadku kodu NRZ przy tej samej przepływności.

Kodeks Manchester-II znalazł zastosowanie w sieciach światłowodowych i elektrycznych. Najpopularniejszy protokół Ethernet LAN 10 Mb/s używa tego kodu.

Na początek porozmawiajmy o tym, co stanowi kodowanie „Manchester”.

W kodzie „Manchester” jednostka jest zakodowana przez przejście sygnału w środku przedziału bitowego ze stanu „OFF” do stanu „ON” i zero - odwrotnie, przez przejście sygnału w środek
interwał bitowy od stanu „ON” do stanu „OFF”.

Jakie są stany „WŁ” i „WYŁ”?
Stany sygnału „ON” i „OFF” są łamigłówka państw. Generalnie „OFF” jest stanem nieaktywnym, tak samo jak w przypadku braku jakiejkolwiek wymiany, a „ON” jest stanem aktywnym, to znaczy takim, który różni się w jakiś sposób od nieaktywnego. Dlatego pomimo tego, że na zdjęciu po prawej, stan sygnału „ON” jest sygnalizowany wysokim poziomem sygnału, a stan „OFF” niskim poziomem, nie należy tego brać dosłownie (po prostu obraz jest bardziej znajomy i wyraźniejszy przy wysokich i niskich poziomach). W rzeczywistości stany „ON” i „OFF” mogą być kodowane na zupełnie różne sposoby. Na przykład piloty IR kodują te stany przez obecność lub brak impulsów o określonej częstotliwości, zintegrowane fotodetektory (które najczęściej mają nieaktywny wysoki poziom sygnału wyjściowego) wydają kod, w którym „ON” jest zakodowany przez niski poziom, oraz „OFF” jest kodowane przez wysoki poziom itp.

Czas trwania zero i jedynki w kodowaniu Manchester jest taki sam, to znaczy długość wiadomości nie zależy od liczby zer lub jedynek w wiadomości, ale zależy tylko od całkowitej liczby bitów.

Kluczową właściwością kodowania „Manchester” jest to, że podczas transmisji każdego bitu koniecznie występują oba stany sygnału: „ON” i „OFF” (ponownie spójrz na rysunek powyżej). Oznacza to, że podczas transmisji każdego bitu sygnał musi zmienić swój stan przynajmniej raz. Oznacza to, że kod „Manchester” może składać się tylko z pojedynczych interwałów, jeśli sąsiednie bity są takie same, i podwójnego, jeśli sąsiednie bity są różne (jest to pokazane na rysunku po lewej).

Opisana właściwość pozwala dodatkowo zsynchronizować odbiornik z nadajnikiem w momencie odebrania każdego bitu, określić czy odebrany kod może być w ogóle „Manchester”, zdiagnozować koniec wiadomości lub „utratę” sygnału nadajnika.

Powiedzmy, że jeśli przyjmiemy, że częstotliwość nadajnika nie może przeskoczyć więcej niż 1,5 raza, to brak zmiany stanu sygnału w ciągu 3 półbitów można bezpiecznie zinterpretować jako koniec komunikatu lub „stratę”. ” sygnału nadajnika (jeśli z góry znamy długość wiadomości). Lub np. badając jakiś nieznany kod, jeśli widzimy, że kod zawiera więcej niż dwa warianty odstępów między stanami „ON” i „OFF”, to możemy jednoznacznie stwierdzić, że badany kod nie jest „Manchesterem”. ”.

Mam nadzieję, że wszystko jest mniej więcej jasne z czym jest kod "Manchester", więc przejdźmy do kolejnego pytania - jak odebrać i zdekodować ten kod.

Otóż ​​oczywiście rozpoczęcie transmisji danych można określić zmieniając stan odbieranego przez odbiornik sygnału z „OFF” na „ON”. Jest jednak jedno zastrzeżenie. Ponieważ transfer jednego również zaczyna się od stanu „OFF”, to przy pierwszej zmianie sygnału z „OFF” na „ON” absolutnie nie będziemy w stanie zdiagnozować, czy jest to środek transferu jednego, czy początek transferu zera. Jedyne, co można tutaj zrobić, to uzgodnić z góry, który bit ma być przesyłany jako pierwszy (czyli wprowadzić specjalny bit startowy, którego wartość zawsze będzie ściśle określona).

To tyle, teraz jeśli wiemy od którego bitu zaczyna się komunikat, znamy czas trwania interwałów stanów „ON” i „OFF”, nasz odbiornik ma dokładny, stabilny generator i my
wiemy dokładnie ile bitów chcemy otrzymać, wtedy możemy skomponować pierwszy najprostszy algorytm przywracania oryginału, zakodowany kodem „Manchester” pakietu:

  1. - rozpocząć rejestrację wartości sygnału. Od tego momentu w odstępach równych czasowi trwania bitu. I tak - aż do uzyskania wymaganej liczby bitów.

Opcja druga. Wiemy od jakiego bitu zaczyna się komunikat, znamy czas trwania interwałów „ON” i „OFF”, nasz odbiornik ma stabilny generator, ale nie wiemy nic o długości komunikatu. W takim przypadku można wykorzystać właściwość kodu Manchester, że sygnał nie może pozostać stały przez 3 lub więcej półbitów. Oznacza to, że moment, w którym sygnał pozostaje w stanie „OFF” przez 3 półbity, można uznać za koniec wiadomości. Algorytm odzyskiwania kodu źródłowego w tym przypadku może wyglądać tak:

  1. - zmieniając stan sygnału z „OFF” na „ON” określamy początek transmisji
  2. - odlicz ćwiartkę czasu trwania bitu (aby dostać się do środka połowy bitu)
  3. - od tego momentu (niech będzie to moment numer 1) i dalej, w odstępach równych czasowi trwania półbitu, analizujemy wartość sygnału. Raz
    zdarzy się, że sygnał w ostatnich trzech pomiarach będzie w stanie „OFF” – zasygnalizuje to koniec komunikatu. Dodatkowo zapisując wartość sygnału przez cały czas liczbami nieparzystymi, z wyjątkiem ostatniej, przywrócimy oryginalną wiadomość.

Opcja trzecia. Wiemy, od którego bitu zaczyna się komunikat, ale nie znamy czasu trwania interwałów, w których sygnał znajduje się w stanach „ON” i „OFF”. Co powinniśmy zrobić w
ta sprawa? Jeśli szczęśliwym trafem znasz wartość nie tylko pierwszego bitu, ale i drugiego, to wiesz dokładnie w jakich odstępach (w całym bicie lub w połowie)
nastąpią 2 pierwsze przełączenia i można łatwo wykryć niezbędne interwały lub, z naukowego punktu widzenia, zsynchronizować odbiornik z nadajnikiem.
(Tak, więc zorientowaliśmy się, dlaczego mają aż 2 bity startu. Nawiasem mówiąc, w sieciach Ethernet, w których używane jest również kodowanie Manchester, do wstępnej synchronizacji używana jest cała 56-bitowa preambuła).
Wtedy możesz bez problemu skorzystać z pierwszego lub drugiego z powyższych algorytmów.

Załóżmy, że istnieje inna opcja. Znamy pierwsze dwa bity komunikatu, ale nasz generator to kompletna gówniana robota, chociaż działa (albo w kategoriach naukowych możemy zagwarantować, że w czasie równym półbitowi częstotliwość generatora nie może się zmienić o 1,5 razy lub więcej). Oto jak być?

Tak, wystarczy przeliczyć wartości ​​czasu trwania półbitu i całego bitu dla każdego nowego frontu. Innymi słowy, konieczna jest synchronizacja odbiornika z nadajnikiem nie raz na samym początku, ale na każdym nowym froncie (przez front rozumiemy przełączanie między stanami „ON” / „OFF”), ponieważ przy W kodowaniu Manchester mamy nowy front w każdym przesyłanym bicie.

Krótko mówiąc, rozważ różne kombinacje można przez długi czas pamiętać główną zaletę, za którą kod „Manchester” tak lubi wszystkich: podczas przesyłania każdego bitu następuje zmiana stanu „ON” / „OFF”, co umożliwia synchronizację nadajnik i odbiornik.

Oprócz powyższego istnieje również tak zwane kodowanie „różnicowe” lub „różnicowe” „Manchester”. W tym przypadku, gdy nadawane jest zero, przedział bitów rozpoczyna się od zmiany stanu sygnału na przeciwny, a gdy jest przesyłany jeden, stan sygnału na początku przedziału bitów nie zmienia się. W przeciwnym razie wszystko jest takie samo, jak w zwykłym kodowaniu „Manchester” - w środku przedziału bitowego stan sygnału z konieczności zmienia się na przeciwny (patrz rysunek po lewej).

Znacznik EM4100 przechowuje 64 bity danych, co oznacza, że ​​projekt musi zawierać 64-bitowy rejestr przesuwny złożony z ośmiu 8-bitowych rejestrów 74HC165. Rejestr jest resetowany po każdych 64 zmianach, aby zresetować dane i zacząć od nowa. Dane na wejściach rejestru są następujące:
  • Wzór czasowy: dziewięć jednostek
  • Identyfikator producenta/wersji: 2 bloki po 5 bitów, z czego 4 bity to dane, a 5 bit to parzystość
  • Unikalny identyfikator: 8 bloków po 5 bitów, z czego 4 bity to dane, a piąty to parzystość
  • Suma kontrolna: 4 bity parzystości liczone przez kolumny
  • Bit stopu: „0”

Nawet zaszyfrowane etykiety są podatne na wiele ataków. Ponadto coraz łatwiej jest emulować tagi na smartfonach za pomocą Obsługa NFC(które zwykle działają z częstotliwością 13,56 MHz). Po prostu napisz poprawnie aplikację do modulacji pola i możesz robić, co chcesz.

Jako standardową wymówkę przypominam, że autor (I tłumacz! - Notatka. przeł.) nie ponosi odpowiedzialności za konsekwencje wykorzystania informacji zawartych w tym artykule. Czytelnik musi być odpowiedzialny za wszystkie swoje działania.

Rama

Czasami bardzo Szczęściarz. Piękna obudowa nie zaszkodziłaby teraz, gdy prototyp jest gotowy i płytka drukowana jest zamówiona. I właśnie w tym czasie Fleming zakończył montaż i uruchomił maszynę cięcie laserowe OSAA PhotonSaw. Po roku pracy nad projektem laser jest gotowy do wycinania pierwszych części. Flemming i Rune dokonują ostatecznych poprawek i wymieniają aluminiową osłonę obudowy lasera. Możesz sobie wyobrazić, jak wszyscy byliśmy szczęśliwi, widząc, jak to działa.

Po uruchomieniu maszyny mogliśmy przetestować nasz projekt w prawdziwym życiu. Obudowa naszego tagu RFID wykonana jest z 2mm pleksi. Ten korpus jest pierwszym obiektem wykonanym na PhotonSaw, tak!

Narodził się pomysł umieszczenia cewki na zewnątrz obudowy. Początkowo zdecydowano się na wykorzystanie połowy wysokości kadłuba, ale w praktyce się to nie sprawdziło (w związku z tym nie wykorzystuje się dodatkowych otworów w długich bokach). Cewka pasuje idealnie po obwodzie całej obudowy, choć miałem wątpliwości, czy prostokątne uzwojenie (105x55 mm) byłoby za duże na normalne sprzężenie elektromagnetyczne.

Cewka testowa została nawinięta bez żadnych obliczeń drutem 0,4 mm w 66 zwojach. I oczywiście znowu mieliśmy szczęście, bo cewka wyszła dokładnie tak, jak powinna, o indukcyjności 645 μH, z podłączoną etykietą podającą częstotliwość rezonansowa 125,2 kHz. Test czytnika drzwi wykazał, że prototyp działał dobrze z tą cewką.

Dzięki cewce na zewnątrz obudowy można zmniejszyć jej grubość. Grubość wewnętrzna zależy teraz tylko od wysokości elementów na desce, a biorąc pod uwagę grubość deski powinna wynosić około 6 mm. Dodatkowo fajnie byłoby dodać grawer. Flemming zasugerował zaokrąglenie boków obudowy ze względów estetycznych i ergonomicznych. Zakrzywiony korpus będzie też lepiej chronił boki cewki, ponieważ tam, gdzie nie ma dużego naprężenia, zwoje drutu lubią się czołgać.

PhotonSaw nie jest jeszcze na równi: grawerowanie na Górna obudowa wyprowadził się znacznie. Konieczne jest jej sfinalizowanie przed wykonaniem ostatecznej wersji sprawy. Zakrzywione kontury również obarczone były błędem obliczeniowym w programie, ponieważ belka nie wracała do swojego położenia początkowego po przejściu przez zamkniętą ścieżkę. Ale i tak krzywe wyglądają naprawdę gładko.

Montaż PCB

Zamówiona tablica dotarła:

Montaż nie był bardzo trudny. Pasta lutownicza została nałożona na tabliczkę z szablonami, wszystkie detale zostały umieszczone, a następnie przylutowane w domowym piekarniku.

Poprzez pojemność rozdzielającą (47 pF mają rezystancję około 27 kOhm przy częstotliwości 125 kHz) i diody ochronne prąd płynie do szyn zasilających. Energia pochodząca z cewki wystarcza do utrzymania napięcia zasilania około 1 V. Prąd może osiągnąć 250-500 μA. Co zaskakujące, układy 74HC wydają się współpracować z tym zasilaczem. Niestety pod taką presją dzieją się dziwne rzeczy. 74HC mają wewnętrzny obwód resetowania i musisz się upewnić, że działa. Pamiętaj, że wyłączenie diod zabezpieczających nie pomaga. Na wejściach mikroukładów znajdują się wewnętrzne diody ochronne, które w tym przypadku otwierają się i wykonują tę samą pracę.

Reset zasilania jest wyzwalany tylko wtedy, gdy napięcie zasilania spadnie poniżej określonego poziomu przez określony czas. Jeśli napięcie pozostaje zbyt wysokie, wewnętrzna logika może się pomylić, ponieważ niektóre jej części mogą być w stanie nieokreślonym, podczas gdy inne działają prawidłowo. Aby ustawić wszystkie chipy w spójnym stanie, wymagany jest wewnętrzny reset. W ten sposób obwód będzie działał chaotycznie przy bardzo niskim napięciu zasilania.

Zaobserwowano następujące symptomy: tag działa przez chwilę, wysyłając poprawne dane. Jeśli cewka zostanie wyjęta z czytnika, a następnie włożona z powrotem, możesz postawić na to, czy tag się wyłączy. Czasami to działa, czasami nie. Wyłączenie PLL pogarsza sytuację. Niski pobór mocy powoduje, że czytnik od czasu do czasu odbiera dane z wyłączonego tagu. To właśnie oznacza „system energooszczędny”.

Istnieją dwa rozwiązania: 1) zmniejszyć kondensator w obwodzie odzyskiwania zegara do 15 pF i 2) dodać rezystor 22-100 kΩ między zasilaniem a uziemieniem, aby odprowadzić nadmiar energii. Druga metoda prowadzi do wzrostu wycieku podczas pracy i nie jest tak naprawdę wymagana przy zmniejszaniu pojemności kondensatora. Jest jednak dostarczany jako opcja i nadal jest lepszy niż nieokreślony stan chipów.

Modulacja prądem lub napięciem

Modulator przyniósł świeżą porcję bólu głowy. Modulacja całkowicie zniknęła, gdy cewka została umieszczona w pewnej odległości od czytnika. Może się to również zdarzyć podczas przesuwania cewki w kierunku czytnika lub od niego.

Powodem okazał się obwód modulatora. MOSFETy zamykają cewkę z rezystorem o określonej rezystancji. Jeśli jednak pobór mocy z pętli jest wysoki, rezystancja modulatora jest znacznie wyższa niż rezystancja obwodów zasilających. Prowadzi to do tego, że głębokość modulacji zależy od pobieranego prądu, a to nie jest zbyt dobre. Sytuację pogorszył wybór restrykcyjnej diody Zenera przy niższym napięciu niż w prototypie.

Postanowiono przełączyć modulator z trybu modulacji napięcia na tryb modulacji prądu. W pierwszym trybie rezystor był w obwodzie spustowym, a teraz jest podłączony między źródłem a masą. Napięcie bramka-źródło spadnie na tym rezystorze, aż wartość pozostanie nieco powyżej progu otwarcia tranzystora (0,9-1,1 V), co spowoduje przejście tranzystora w tryb liniowy. Teraz prąd płynący przez tranzystor będzie stabilny, niezależnie od napięcia drenu.

Testy prototypów wykazały, że modulacja prądu działa bardzo dobrze. Tani bezimienny czytnik już nie zawodzi (no dobrze, może raz na sto). Możemy założyć, że ta zmiana będzie działała wspaniale na innych czytelnikach, a wytwórnia prawdopodobnie będzie teraz w stanie pracować na większości z nich.

Wersja ukończona 1

Możesz zobaczyć zmiany w płytka drukowana. Nie miałem kondensatora SMD 15 pF, musiałem wlutować zwykły z nogami. Modulator jest zarośnięty dodatkowymi rezystorami przy źródłach tranzystorów. Ogólnie do przyjęcia dla pierwszej wersji.

(zdjęcia można kliknąć)





Pokaz wideo

Wniosek

Można by pomyśleć, że ten projekt, zbudowany na logice 7400, można przypisać obwodom retro, ale to nie do końca prawda. Po pierwsze, nowoczesna rodzina 74HC nie jest tak stara. Po drugie, schematy o niskim poborze mocy są zawsze aktualne. Po trzecie, pojedynczy chip elementy logiczne(takich jak używany wyzwalacz Schmitta) są często używane w nowoczesne rozwiązania. Często zapomina się, że rozwój technologii nie zatrzymuje się nawet dla starszych rodzin mikroukładów. Po prostu stały się mniej zauważalne na tle ogólnej różnorodności.

Część analogowa okazała się trudniejsza do opracowania niż część cyfrowa. Częściowo z powodu braku specyfikacji, ale głównie z powodu wielu kompromisów wymaganych do spełnienia parametrów i nieprzewidzianych skutki uboczne. Projekty cyfrowe mają stosunkowo niewiele opcji, podczas gdy projekty analogowe zwykle wymagają równowagi między różnymi (i często przeciwstawnymi) kryteriami.

Muszę przyznać, że chipy 74HC są bardzo, bardzo dobrze wykonane. Twórcy wiedzieli, co robią i osiągnęli bardzo niski pobór mocy. Początkowo miałem wątpliwości, czy tag będzie zasilany pasywnie, ale po zapoznaniu się ze specyfikacją była to tylko kwestia odpowiedniego zaprojektowania obwodu. Chociaż wciąż jest miejsce na optymalizację różnych części etykiety.

Zobaczmy teraz, jak ten projekt wypada w konkursie 7400 2012. Nabór zgłoszeń do konkursu kończy się 31 listopada. Autorowi życzymy powodzenia! - Notatka. przeł.

Tagi: Dodaj tagi

Kod Manchesteru

W sieciach lokalnych do niedawna najpopularniejszą metodą kodowania był tzw Kod Manchesteru(ryc. 2.16, d). Jest używany w technologiach Ethernet i Token Ring.

W kodzie Manchester do kodowania jedynek i zer używany jest spadek potencjału, czyli przód impulsu. W kodowaniu Manchester każdy zegar jest podzielony na dwie części. Informacja jest kodowana przez potencjalne spadki, które pojawiają się w połowie każdego cyklu. Jednostka jest kodowana przez przejście od niskiego do wysokiego, a zero jest kodowane przez odwrotną krawędź. Na początku każdego cyklu może wystąpić zbocze sygnału usługi, jeśli musisz przedstawić kilka jedynek lub zer z rzędu. Ponieważ sygnał zmienia się co najmniej raz na cykl transmisji jednego bitu danych, kod Manchester ma dobre właściwości samosynchronizujące. Szerokość pasma kodu Manchester jest węższa niż w przypadku impulsu bipolarnego. Nie ma też składowej stałej, a harmoniczna podstawowa w najgorszym przypadku (przy przesyłaniu ciągu jedynek lub zer) ma częstotliwość N Hz, a w najlepszym przypadku (przy przesyłaniu naprzemiennych jedynek i zer) jest równa do N/2 Hz, jak w kodach AMI lub NRZ. Przeciętnie szerokość pasma kodu Manchester jest półtora raza węższa niż w przypadku bipolarnego kodu impulsowego, a podstawowa harmoniczna oscyluje wokół 3N/4. Kod Manchester ma jeszcze jedną przewagę nad bipolarnym kodem impulsowym. Ten ostatni wykorzystuje do transmisji danych trzy poziomy sygnału, podczas gdy Manchester wykorzystuje dwa.

Kod potencjału 2B1Q

Na ryc. 2.16e przedstawia potencjalny kod z czterema poziomami sygnału do kodowania danych. To jest kod 2B1Q, którego nazwa odzwierciedla jego istotę - co dwa bity (2V) są przesyłane w jednym cyklu sygnałem, który ma cztery stany (1Q), parze bitów 00 odpowiada potencjał -2,5 V, parze bitów 01 odpowiada potencjałowi -0,833 V, parze 11 - potencjał +0,833 V, a parze 10 - potencjał +2,5 V. Przy tej metodzie kodowania wymagane są dodatkowe środki w celu zwalczania długich sekwencji identycznych par bitów, ponieważ sygnał jest następnie przekształcany w stały składnik. Przy losowym przeplataniu bitów widmo sygnału jest dwa razy węższe niż w kodzie NRZ, ponieważ przy tej samej przepływności czas trwania zegara jest podwojony. Tak więc, używając kodu 2B1Q, możesz przesyłać dane tą samą linią dwa razy szybciej niż przy użyciu kodu AMI lub NRZI. Jednak do jego realizacji moc nadajnika musi być wyższa, aby cztery poziomy były wyraźnie rozróżniane przez odbiornik na tle zakłóceń.

2.2.3. Kodowanie logiczne

Kodowanie logiczne służy do poprawy potencjalnych kodów typu AMI, NRZI lub 2Q1B. Kodowanie logiczne powinno zastępować długie ciągi bitów prowadzące do stałego potencjału na przeplatane. Jak wspomniano powyżej, dwie metody są charakterystyczne dla kodowania logicznego - kody nadmiarowe i szyfrowanie.

Kody nadmiarowe

Kody nadmiarowe opierają się na dzieleniu oryginalnej sekwencji bitów na części, które często nazywane są znakami. Następnie każdy oryginalny znak jest zastępowany nowym, który ma więcej bitów niż oryginał. Na przykład, kod logiczny 4V/5V, używane w technologiach FDDI i Fast Ethernet, zastępuje oryginalne 4-bitowe znaki 5-bitowymi znakami. Ponieważ wynikowe symbole zawierają nadmiarowe bity, całkowita liczba kombinacji bitów w nich jest większa niż w oryginalnych. Tak więc w kodzie 4B / 5B symbole wynikowe mogą zawierać kombinacje 32-bitowe, podczas gdy symbole oryginalne - tylko 16. Dlatego w kodzie wynikowym można wybrać 16 takich kombinacji, które nie zawierają dużej liczby zer, oraz policz resztę zabronione kody (naruszenie kodu). Oprócz usunięcia DC i samosynchronizacji kodu, nadmiarowe kody umożliwiają odbiornikowi rozpoznawanie uszkodzonych bitów. Jeśli odbiorca otrzyma zabroniony kod, oznacza to, że sygnał na linii został zniekształcony.

Poniżej przedstawiono zgodność kodów źródłowych i wynikowych 4V/5V.

Kod 4B/5B jest następnie przesyłany linią przy użyciu kodowania fizycznego w jednej z potencjalnych metod kodowania, która jest wrażliwa tylko na długie sekwencje zer. Symbole kodu 4V/5V o długości 5 bitów gwarantują, że nie więcej niż trzy zera z rzędu mogą wystąpić na linii dla dowolnej ich kombinacji.

Litera B w nazwie kodowej oznacza, że ​​sygnał elementarny ma 2 stany - z angielskiego binarny - binarny. Istnieją również kody z trzema stanami sygnału, np. w kodzie 8B/6T do kodowania 8-bitowego informacje ogólne używany jest kod 6 sygnałów, z których każdy ma trzy stany. Redundancja kodu 8B/6T jest wyższa niż kodu 4B/5B, ponieważ na 256 kodów źródłowych przypada 3 6 = 729 symboli wynikowych.

Korzystanie z tabeli przeglądowej jest bardzo prostą operacją, więc takie podejście nie komplikuje karty sieciowe oraz bloki interfejsów przełączników i routerów.

Aby zapewnić dane pasmo linii, nadajnik korzystający z kodu nadmiarowego musi działać ze zwiększoną częstotliwością taktowania. Czyli, aby transmitować kody 4V/5V z szybkością 100 Mb/s, nadajnik musi działać z częstotliwością zegara 125 MHz. W tym przypadku widmo sygnału na linii jest rozszerzone w porównaniu z przypadkiem, w którym linią przesyłany jest czysty, nieredundantny kod. Niemniej jednak widmo nadmiarowego kodu potencjału okazuje się węższe niż widmo kodu manchesterskiego, co uzasadnia dodatkowy etap kodowania logicznego, a także pracę odbiornika i nadajnika przy podwyższonej częstotliwości taktowania.

Szyfrowanie

Tasowanie danych za pomocą scramblera przed umieszczeniem ich w linii ze szczerym kodem to kolejny sposób logicznego kodowania.

Metody szyfrowania polegają na obliczaniu bit po bicie kodu wynikowego na podstawie bitów kodu źródłowego i bitów kodu wynikowego uzyskanych w poprzednich cyklach. Na przykład szyfrator może zaimplementować następującą relację:

gdzie Bi jest cyfrą dwójkową kodu wynikowego uzyskanego w i-tym cyklu skramblera, Ai jest cyfrą dwójkową kodu źródłowego, który dociera do i-tego cyklu na wejściu skramblera, Bi-3 i Bi -5 to cyfry binarne kodu wynikowego uzyskanego w poprzednich cyklach skramblera, odpowiednio 3 i 5 cykli wcześniej niż bieżący cykl, operacja XOR (dodawanie modulo 2). Na przykład dla sekwencji źródłowej 110110000001 scrambler poda następujący kod wyniku: B1 = A1 = 1 (pierwsze trzy cyfry kodu wyniku będą takie same jak oryginalne, ponieważ nie ma jeszcze niezbędnych poprzednich cyfr)

Zatem wyjściem skramblera będzie sekwencja 110001101111, która nie zawiera sekwencji sześciu zer, która była obecna w kod źródłowy.

Po otrzymaniu wynikowej sekwencji, odbiorca przekazuje ją do deszyfratora, który rekonstruuje pierwotną sekwencję na podstawie odwrotnej zależności:

Różne algorytmy szyfrowania różnią się liczbą terminów, które dają cyfrę wynikowego kodu, oraz przesunięciem między terminami. Tak więc w sieciach ISDN przy przesyłaniu danych z sieci do abonenta stosuje się transformację z przesunięciami o 5 i 23 pozycje, a przy przesyłaniu danych od abonenta do sieci z przesunięciami o 18 i 23 pozycje.

Jest więcej proste metody walka z sekwencjami jednostek, określana również klasą scramblingu.

Aby ulepszyć bipolarny kod AMI, stosuje się dwie metody oparte na sztucznym zniekształceniu ciągu zer przez niedozwolone znaki.

Na ryc. Rysunek 2.17 przedstawia użycie metody B8ZS (Bipolarna z 8-zerową substytucją) i HDB3 (High-Density Bipolar 3-Zeros) do korekcji kodu AMI. Kod źródłowy składa się z dwóch długich ciągów zer: w pierwszym przypadku - od 8, aw drugim - od 5.

Ryż. 2.17. Kody B8ZS i HDB3. V - sygnał jednostki o zakazanej polaryzacji; 1*-sygnał jednostki o prawidłowej polaryzacji, ale zastępujący 0 w kodzie źródłowym

Kod B8ZS koryguje tylko sekwencje składające się z 8 zer. W tym celu po pierwszych trzech zerach zamiast pozostałych pięciu wstawia pięć cyfr: V-1*-0-V-1*. V oznacza tutaj sygnał jedynki, zakazany dla danego cyklu polaryzacji, czyli sygnał, który nie zmienia polaryzacji poprzedniej, 1* to sygnał jednostki o prawidłowej polaryzacji, a znak gwiazdki oznacza fakt, że w kodzie źródłowym w tym cyklu nie było jednostki, ale zero . W rezultacie odbiornik widzi 2 zniekształcenia w 8 cyklach zegara - jest bardzo mało prawdopodobne, aby stało się to z powodu szumu na linii lub innych awarii transmisji. Dlatego odbiornik traktuje takie naruszenia jako zakodowanie 8 kolejnych zer i po odbiorze zastępuje je oryginalnymi 8 zerami. Kod B8ZS jest skonstruowany w taki sposób, że jego stała składowa wynosi zero dla dowolnego ciągu cyfr binarnych.

Wykład 4: Model OSI

  1. Warstwy i proces komunikacji w modelu OSI

  2. Interakcja poziomów w procesie komunikacji

W celu ujednoliconej reprezentacji danych w sieciach z heterogenicznymi urządzeniami i oprogramowaniem Międzynarodowa Organizacja Normalizacyjna (ISO) opracowała podstawowy model komunikacji systemy otwarte OSI (połączenie systemu otwartego). Model ten opisuje zasady i procedury przesyłania danych w różnych środowiskach sieciowych podczas organizowania sesji komunikacyjnej. Głównymi elementami modelu są warstwy, procesy aplikacji oraz fizyczne sposoby połączenia. Na ryc. 2.1 przedstawia strukturę modelu podstawowego. Każdy poziom modelu OSI wykonuje określone zadanie w procesie przesyłania danych przez sieć. model podstawowy jest podstawą rozwoju protokołów sieciowych. OSI dzieli funkcje komunikacyjne w sieci na siedem warstw, z których każda służy innej części procesu interoperacyjności systemów otwartych.

Ryż. 2,1 Model OSI

Model OSI opisuje tylko środki interakcji obejmujące cały system, a nie aplikacje użytkownika końcowego. Aplikacje implementują własne protokoły komunikacyjne, uzyskując dostęp do obiektów systemowych. Jeżeli aplikacja może przejąć funkcje niektórych wyższych warstw modelu OSI, to w celu komunikacji uzyskuje bezpośredni dostęp do narzędzi systemowych, które wykonują funkcje pozostałych niższych warstw modelu OSI.

Interakcja warstw modelu OSI

Model OSI można podzielić na dwa różne modele, jak pokazano na rysunku 2.2:

    model oparty na protokole poziomym, który zapewnia mechanizm interakcji programów i procesów na różnych maszynach;

    model wertykalny oparty na usługach świadczonych przez sąsiednie warstwy na tej samej maszynie.

Ryż. 2.2 Schemat interakcji komputerów w podstawowym modelu odniesienia OSI

Każda warstwa komputera wysyłającego współdziała z tą samą warstwą komputera odbierającego, jakby była bezpośrednio połączona. Taki związek nazywa się logicznym lub połączenie wirtualne. W rzeczywistości interakcja odbywa się między sąsiednimi poziomami jednego komputera.

Tak więc informacje na komputerze wysyłającym muszą przejść przez wszystkie poziomy. Następnie jest przesyłany na fizycznym nośniku do komputera odbierającego i ponownie przechodzi przez wszystkie warstwy, aż osiągnie ten sam poziom, z którego został wysłany na komputerze wysyłającym.

W model poziomy oba programy potrzebują wspólnego protokołu do wymiany danych. W modelu pionowym sąsiednie warstwy komunikują się za pomocą interfejsów programowania aplikacji (API).

Przed wprowadzeniem do sieci dane są dzielone na pakiety. Pakiet to jednostka informacji przesyłana między stacjami w sieci. Podczas wysyłania danych pakiet przechodzi sekwencyjnie przez wszystkie poziomy oprogramowanie. Na każdym poziomie do pakietu dodawana jest informacja kontrolna tego poziomu (nagłówek), która jest niezbędna do pomyślnej transmisji danych w sieci, jak pokazano na rys. 2.3, gdzie Zag- nagłówek pakietu, Kon- koniec pakietu.

Po stronie odbiorczej pakiet przechodzi przez wszystkie warstwy w odwrotnej kolejności. W każdej warstwie protokół w tej warstwie odczytuje informacje z pakietu, a następnie usuwa informacje dodane do pakietu w tej samej warstwie przez nadawcę i przekazuje pakiet do następnej warstwy. Kiedy paczka dotrze Stosowany wszystkie informacje kontrolne zostaną usunięte z pakietu, a dane powrócą do swojej pierwotnej postaci.

Ryż. 2.3 Tworzenie pakietu każdego poziomu modelu siedmiopoziomowego

Każdy poziom modelu ma swoją własną funkcję. Im wyższy poziom, tym więcej trudne zadanie on decyduje.

Oddzielne poziomy modelu OSI wygodne do rozważenia jako grupy programowe przeznaczony do wykonywania określonych Funkcje. Na przykład jedna warstwa odpowiada za zapewnienie transformacji danych z ASCII w EBCDIC i zawiera programy niezbędne do wykonania tego zadania.

Każda warstwa dostarcza usługę do warstwy wyższej, z kolei żądając usługi od warstwy niższej. Wyższe warstwy żądają usługi w podobny sposób: z reguły jest to wymóg trasowania niektórych danych z jednej sieci do drugiej. Praktyczna realizacja zasad adresowania danych jest przypisana do niższych poziomów.

Rozważany model determinuje interakcję systemów otwartych różni producenci w tej samej sieci. Dlatego wykonuje dla nich działania koordynujące w zakresie:

    interakcja stosowanych procesów;

    formularze prezentacji danych;

    jednolite przechowywanie danych;

    zarządzanie zasobami sieciowymi;

    bezpieczeństwo danych i ochrona informacji;

    diagnostyka programów i sprzętu.

Na ryc. 2.4 podane krótki opis funkcje na wszystkich poziomach.

Ryż. 2.4 Funkcje poziomu

Warstwa aplikacji

Warstwa aplikacyjna zapewnia procesom aplikacyjnym dostęp do obszaru interakcji, jest górnym (siódmym) poziomem i bezpośrednio sąsiaduje z procesami aplikacyjnymi. W rzeczywistości warstwa aplikacji to zestaw różnych protokołów, za pomocą których użytkownicy sieci uzyskują dostęp do współdzielonych zasobów, takich jak pliki, drukarki czy hipertekstowe strony WWW, a także organizują wspólną pracę, na przykład za pomocą protokołu E-mail. Specjalne elementy usług aplikacji zapewniają usługi dla określonych programów aplikacji, takich jak programy do przesyłania plików i emulacji terminali. Jeśli np. program potrzebuje przesłać pliki, to na pewno będzie używany protokół przesyłania plików, dostępu i zarządzania FTAM ( Transfer plików, dostęp i zarządzanie). W modelu OSI program aplikacyjny, który ma wykonać określone zadanie (np. zaktualizować bazę danych na komputerze), wysyła określone dane w formularzu datagramy na warstwa aplikacji. Jednym z głównych zadań tej warstwy jest określenie, w jaki sposób żądanie aplikacji powinno zostać przetworzone, czyli jaką formę powinno przyjąć żądanie.

Jednostka danych, na której działa warstwa aplikacji, jest zwykle nazywana komunikatem.

Warstwa aplikacji realizuje następujące funkcje:

Opis form i metod współdziałania stosowanych procesów.

    Wydajność różnego rodzaju Pracuje.

    transfer plików;

    zarządzanie pracą;

    zarządzanie systemem itp.

    Identyfikacja użytkowników po ich hasłach, adresach, podpisach elektronicznych;

    Identyfikacja funkcjonujących subskrybentów i możliwość dostępu do nowych procesów aplikacyjnych;

    Określenie wystarczalności dostępnych zasobów;

    Organizacja żądań połączeń z innymi procesami aplikacyjnymi;

    Przeniesienie wniosków na poziom reprezentatywny dla niezbędnych metod opisu informacji;

    Dobór procedur dla planowanego dialogu procesów;

    Zarządzanie danymi wymienianymi pomiędzy procesami aplikacyjnymi oraz synchronizacja interakcji pomiędzy procesami aplikacyjnymi;

    Określanie jakości usługi (czas dostawy bloków danych, akceptowalna stopa błędów);

    Porozumienie w sprawie korekty błędów i ustalenia wiarygodności danych;

    Koordynacja ograniczeń nałożonych na składnię (zestawy znaków, struktura danych).

Te funkcje definiują rodzaje usług, które warstwa aplikacji zapewnia procesom aplikacji. Ponadto warstwa aplikacji przenosi do procesów aplikacji usługę świadczoną przez warstwy fizyczne, łącza, sieci, transportu, sesji i prezentacji.

Na warstwa aplikacji konieczne jest dostarczenie użytkownikom już przetworzonych informacji. Może to być obsługiwane przez system i oprogramowanie użytkownika.

Warstwa aplikacji odpowiada za dostęp do aplikacji w sieci. Zadania na tym poziomie to transfer plików, wymiana wiadomości pocztowe i zarządzanie siecią.

Najczęstsze protokoły trzech warstw to:

    Protokół przesyłania plików FTP (File Transfer Protocol);

    TFTP (Trivial File Transfer Protocol) to najprostszy protokół przesyłania plików;

    e-mail X.400;

    Telnet współpracuje ze zdalnym terminalem;

    SMTP (Simple Mail Transfer Protocol) to prosty protokół wymiany poczty;

    CMIP (Common Management Information Protocol) wspólny protokół zarządzania informacjami;

    POŚLIZG ( Serial Line IP) IP dla linii szeregowych. Protokół do szeregowego przesyłania danych znak po znaku;

    SNMP (Simple Network Management Protocol) prosty protokół zarządzania siecią;

    FTAM (File Transfer, Access and Management) to protokół do przesyłania, uzyskiwania dostępu i zarządzania plikami.

Warstwa prezentacji

Warstwa prezentacji lub warstwa prezentacji reprezentuje dane przekazywane między procesami aplikacji w pożądanej formie danych.

Warstwa ta zapewnia, że ​​informacje przekazywane przez warstwę aplikacji zostaną zrozumiane przez warstwę aplikacji w innym systemie. W razie potrzeby warstwa prezentacji w momencie przesyłania informacji dokonuje konwersji formatów danych na jakiś typowy format prezentacji, aw momencie odbioru dokonuje odpowiednio konwersji odwrotnej. W ten sposób warstwy aplikacji mogą przezwyciężyć na przykład różnice składniowe w reprezentacji danych. Taka sytuacja może wystąpić w sieci LAN z heterogenicznymi komputerami ( IBM PC iProchowiec), które muszą wymieniać dane. Tak więc w polach baz danych informacje powinny być prezentowane w formie liter i cyfr, a często w formie obraz graficzny. Musisz przetwarzać te dane, na przykład, jako liczby zmiennoprzecinkowe.

Wspólna reprezentacja danych oparta jest na systemie ASN.1, który jest wspólny dla wszystkich poziomów modelu. System ten służy do opisu struktury plików, a także rozwiązuje problem szyfrowania danych. Na tym poziomie można wykonać szyfrowanie i deszyfrowanie danych, dzięki czemu poufność wymiany danych jest zapewniona natychmiastowo dla wszystkich usług aplikacyjnych. Przykładem takiego protokołu jest protokół bezpieczne Gniazdo elektryczne warstwa(SSL) który zapewnia tajne wiadomości dla protokołów warstwy aplikacji stosu TCP/IP. Ta warstwa zapewnia transformację danych (kodowanie, kompresję itp.) warstwy aplikacji w strumień informacji dla warstwy transportowej.

Warstwa reprezentatywna realizuje następujące główne funkcje:

    Generowanie żądań nawiązania sesji interakcji pomiędzy procesami aplikacji.

    Koordynacja prezentacji danych pomiędzy procesami aplikacyjnymi.

    Implementacja formularzy prezentacji danych.

    Prezentacja materiału graficznego (rysunki, rysunki, schematy).

    Szyfrowanie danych.

    Wysyłanie żądań zakończenia sesji.

Protokoły warstwy prezentacji są zwykle część integralna protokoły trzech górnych warstw modelu.

Warstwa sesji

Warstwa sesji to warstwa, która definiuje procedurę przeprowadzania sesji pomiędzy użytkownikami lub procesami aplikacji.

Warstwa sesji zapewnia kontrolę konwersacji w celu uchwycenia, która strona jest aktywna w ten moment a także zapewnia możliwości synchronizacji. Te ostatnie pozwalają na wstawianie punktów kontrolnych do długich transferów, dzięki czemu w razie niepowodzenia możesz wrócić do ostatniego. punkt kontrolny zamiast zaczynać wszystko od nowa. W praktyce niewiele aplikacji korzysta z warstwy sesyjnej i rzadko jest ona implementowana.

Warstwa sesji steruje przesyłaniem informacji pomiędzy procesami aplikacji, koordynuje odbiór, transmisję i wydawanie jednej sesji komunikacyjnej. Dodatkowo warstwa sesji zawiera dodatkowo funkcje zarządzania hasłami, kontroli konwersacji, synchronizacji i anulowania komunikacji w sesji transmisji po awarii spowodowanej błędami w niższych warstwach. Funkcje tego poziomu to w koordynacji komunikacji między dwiema aplikacjami działającymi na różnych stacjach roboczych. Ma formę dobrze zorganizowanego dialogu. Funkcje te obejmują tworzenie sesji, zarządzanie transmisją i odbiorem pakietów komunikatów podczas sesji oraz kończenie sesji.

Na poziomie sesji określa się, jaki będzie transfer pomiędzy dwoma procesami aplikacyjnymi:

    półdupleks(procesy będą kolejno wysyłać i odbierać dane);

    dupleks(procesy będą jednocześnie wysyłać i odbierać dane).

W trybie half-duplex warstwa sesji zgłasza procesowi rozpoczynającemu transmisję, token danych. Gdy nadejdzie czas odpowiedzi drugiego procesu, token danych jest do niego przekazywany. Warstwa sesji umożliwia transmisję tylko do strony, która posiada token danych.

Warstwa sesji zapewnia następujące funkcje:

    Ustanowienie i zakończenie na poziomie sesji połączenia między współpracującymi systemami.

    Wykonywanie normalnej i pilnej komunikacji pomiędzy procesami aplikacyjnymi.

    Zarządzanie interakcją stosowanych procesów.

    Synchronizacja połączeń sesyjnych.

    Powiadamianie procesów aplikacji o wyjątkach.

    Ustanowienie w procesie aplikacji etykiet, które po awarii lub błędzie pozwalają na przywrócenie jej wykonania od najbliższej etykiety.

    Przerwanie w koniecznych przypadkach procesu aplikacyjnego i jego prawidłowe wznowienie.

    Zakończenie sesji bez utraty danych.

    Przekazywanie specjalnych wiadomości o przebiegu sesji.

Warstwa sesji odpowiada za organizację sesji wymiany danych pomiędzy maszynami końcowymi. Protokoły warstwy sesji są zwykle składnikiem protokołów trzech najwyższych warstw modelu.

Warstwa transportowa.

Warstwa transportowa jest przeznaczona do przesyłania pakietów przez sieć komunikacyjną. W warstwie transportowej pakiety są dzielone na bloki.

W drodze od nadawcy do odbiorcy pakiety mogą zostać uszkodzone lub utracone. Podczas gdy niektóre aplikacje mają własną obsługę błędów, niektóre wolą od razu radzić sobie z niezawodnym połączeniem. Zadaniem warstwy transportowej jest zapewnienie, że aplikacje lub wyższe warstwy modelu (aplikacja i sesja) przesyłają dane z wymaganym stopniem niezawodności. Model OSI definiuje pięć klas usług świadczonych przez warstwę transportową. Te rodzaje usług różnią się jakością świadczonych usług: pilnością, możliwością przywrócenia przerwanej komunikacji, dostępnością urządzeń multipleksujących dla wielu połączeń między różnymi protokołami aplikacji za pośrednictwem wspólnego protokołu transportowego, a co najważniejsze, możliwością wykrywania i korygowania błędy transmisji, takie jak zniekształcenia, utrata i duplikacja pakietów.

Warstwa transportowa określa adresowanie fizycznych urządzeń (systemów, ich części) w sieci. Ta warstwa gwarantuje dostarczanie bloków informacji do odbiorców i zarządza tym dostarczaniem. Jego głównym zadaniem jest zapewnienie wydajnych, wygodnych i niezawodnych form przekazywania informacji pomiędzy systemami. Gdy przetwarzany jest więcej niż jeden pakiet, warstwa transportowa kontroluje kolejność, w jakiej pakiety przechodzą. Jeśli duplikat wcześniej otrzymanej wiadomości przejdzie, to podany poziom rozpoznaje to i ignoruje wiadomość.

Funkcje warstwy transportowej obejmują:

    Kontrola transmisji sieciowej i zapewnienie integralności bloków danych.

    Wykrywanie błędów, ich częściowa eliminacja oraz zgłaszanie niepoprawionych błędów.

    Odzyskiwanie transmisji po awariach i awariach.

    Konsolidacja lub podział bloków danych.

    Nadawanie priorytetów dla przelewów blokowych (zwykłe lub pilne).

    Potwierdzenie przelewu.

    Eliminacja blokad w sytuacjach zakleszczeń w sieci.

Począwszy od warstwy transportowej implementowane są wszystkie wyższe protokoły narzędzia programowe zwykle dołączany do sieciowego systemu operacyjnego.

Do najpopularniejszych protokołów warstwy transportowej należą:

    TCP (Transmission Control Protocol) Protokół kontroli transmisji stosu TCP/IP;

    UDP (User Datagram Protocol) to protokół datagramów użytkownika stosu TCP/IP;

    NCP (NetWare Core Protocol) podstawowy protokół dla sieci NetWare;

    SPX (Sequenced Packet eXchange) Novell Stack Sequenced Packet Exchange;

    TP4 (Transmission Protocol) - protokół transmisji klasy 4.

mankuńskikod odnosi się do samosynchronizujących kodów impulsowych i ma dwa poziomy, co zapewnia dobrą odporność na zakłócenia. Każdy cykl (przedział bitowy) podzielony jest na dwie części. Informacja jest kodowana przez potencjalne spadki, które pojawiają się w połowie każdego cyklu.

Jednostka jest kodowana przez wysoki do niskiego poziomu sygnału, a zero jest kodowane przez odwrotną krawędź. Na początku cyklu może wystąpić zbocze serwisowe sygnału (gdy kilka jedynek lub zer jest przesyłanych pod rząd).

Rozważmy specjalne przypadki kodowania, tak jak w poprzednich przypadkach.

Na Manchester W kodowaniu obowiązkowa zmiana sygnału w środku każdego przedziału bitowego ułatwia wyizolowanie sygnału zegarowego. Dlatego mankuńskikod ma dobrze samosynchronizujący nieruchomości.

Sygnał nie zawiera składowej stałej, częstotliwość podstawowej harmonicznej sygnału mieści się w zakresie od fo=N/2 Hz do fo=N Hz, zmienna w zależności od typu strumienia bitów.

Kodowanie Manchester było używane we wczesnych wersjach technologii Ethernet 10 Mb/s.

Kod różnicowy Manchester (Różnicowy Manchester)

Wartości logiczne „0” i „1” są przekazywane odpowiednio obecność lub brak zmiany poziom sygnału w wczesny interwał zegara (bitów). W środku przedziału bitowego następuje obowiązkowa zmiana wartości sygnału.

Kodowanie różnicowe Manchester

Ten kod ma te same zalety i wady, co mankuński.

Ze wszystkich rozważanych przez nas kodów kodowanie Manchester ma najlepszą samosynchronizację, ponieważ zbocze sygnału występuje co najmniej raz na zegar.

Kod Manchester jest używany w sieciach Ethernet o szybkości transmisji 10 Mb/s (10Base-T). Różnicowy kod Manchester - w sieciach z technologią Token Ring.

Obecnie twórcy doszli do wniosku, że w wielu przypadkach bardziej racjonalne jest zastosowanie potencjalnego kodowania, eliminując jego mankamenty za pomocą tzw. logiczny kodowanie (cm. poniżej w tej sekcji).

Powrót do kodu zerowego rz (powrót do zera)

Bit „1” - impuls jeden polaryzacja w pierwszej połowie przedziału bitów, w drugiej połowie przedziału bitów sygnał ma potencjał zerowy.

Bit „0” - impuls inne polaryzacja w pierwszej połowie przedziału bitów, w drugiej połowie przedziału bitów sygnał ma potencjał zerowy. Kod ma dobre właściwości synchronizacji.

Dla tego kodu interwał bitów
.

Kod z inwersją wartości kodu cmi.

Przy tej metodzie transmisji bit 1 jest reprezentowany zgodnie z regułami quasi-trójargumentowy kodowanie, a bit 0 - w postaci dwóch impulsów o przeciwnej polaryzacji ze zmianą znaku w środku. Kod ma również dobre właściwości synchronizacji.

Kod potencjału 2b1q

Jest to potencjalny kod z czterema poziomami sygnału do kodowania danych. Nazwa odzwierciedla istotę kodowania - co dwa bity (2B) są transmitowane w jednym cyklu sygnałem o określonym poziomie (1Q) . Sygnał linii ma cztery stany. Innymi słowy, szybkość informacji N w tym sposobie kodowania jest dwukrotnością szybkości modulacji B.

Kodowanie 2B1Q

Sygnał w kodzie 2B1Q

Rysunek przedstawia sygnał odpowiadający sekwencji bitowej: 01 01 10 00. Główna częstotliwość sygnału w kodzie 2B1Q nie przekracza wartości fo=N/4 Hz.

Aby jednak zaimplementować ten sposób kodowania, moc nadajnika musi być wyższa, aby cztery wartości potencjału były wyraźnie odróżnione przez odbiornik na tle szumu.

Kod MLT3 (Transmisja wielopoziomowa - 3) .

Stosowane są trzy poziomy transmisji: „-1”, „0”, „+1”.

Jedność odpowiada wymagany przemiana z jednego poziomu sygnału do drugiego na krawędzi przedziału zegara.

zero odpowiada brak zmiany poziomu sygnału linii.

Podczas przesyłania sekwencji jedynek okres zmiany poziomu sygnału obejmuje cztery bity. W tym przypadku fo=N/4 Hz. Jest to maksymalna częstotliwość podstawowa sygnału w kodzie. MLT-3. W przypadku naprzemiennej sekwencji zer i jedynek, podstawowa harmoniczna sygnału ma częstotliwość fo=N/8 Hz, czyli o połowę mniej niż w kodzie NRZI.

Sygnał w kodzie MLT-3

Kodowanie logiczne

Kodowanie logiczne wykonywane przez nadajnik do fizycznykodowanie, o którym mowa powyżej, za pomocą łącza lub warstwy fizycznej. Na scenie logicznykodowanie zmagać się z niedoskonałościami metod fizycznycyfrowykodowanie - braksynchronizacja, Dostępnośćstałyskładnik. Tak więc najpierw z pomocą logicznykodowanie tworzone są poprawione sekwencje bitowe, które następnie używają prostych metodyfizycznykodowanie przesyłane przez linie komunikacyjne.

Boole'akodowanie polega na zastąpieniu bitów oryginalnej sekwencji informacji nową sekwencją bitów, która zawiera te same informacje, ale ma dodatkowo dodatkowe właściwości, takie jak zdolność strony odbierającej do wykrywania błędów w odebranych danych lub do niezawodnego utrzymywania synchronizacji z przychodzący sygnał.

Wyróżnić dwie metody kodowania logicznego:

- kodowanie nadmiarowy kod;

- kodowanie.

Nadmiar kody (kody tabeli) polegają na podzieleniu oryginalnej sekwencji bitów na grupy, a następnie zastąpieniu każdej oryginalnej grupy słowem kodowym zgodnie z tabelą. Słowo kodowe zawsze zawiera więcej bitów niż oryginalna grupa.

Kod logiczny 4V/5V zastępuje oryginalne 4-bitowe grupy 5-bitowymi słowami kodowymi. W rezultacie całkowita liczba możliwych kombinacji bitów dla nich (2 5 =32) jest większa niż dla pierwotnych grup (2 4 =16). Dlatego w tabela kodów możesz podać 16 takich kombinacji, które nie zawierają więcej niż dwa zera z rzędu i używać ich do przesyłania danych. Kod gwarantuje, że nie więcej niż trzy kolejne zera mogą wystąpić w linii dla dowolnej kombinacji słów kodowych.

Pozostałe kombinacje kodowe są wykorzystywane do transmisji sygnałów usługowych (synchronizacja transmisji, początek bloku danych, koniec bloku danych, sterowanie transmisją w warstwie łącza). Niewykorzystane słowa kodowe mogą być wykorzystywane przez odbiornik do wykrywania błędów w strumieniu danych. Ceną za korzyści uzyskane dzięki tej metodzie kodowania danych jest zmniejszenie szybkości transmisji przydatnych informacji o 25%.

Kod linii

Symbol

Grupa źródłowa

Kodowanie logiczne 4V/5V stosowane jest w sieciach Ethernet 100Mbit/s:

    w połączeniu z kodem NRZI (specyfikacja 100Base FX, medium transmisyjne - światłowód);

    w połączeniu z kodem MLT-3 (specyfikacja 100Base TX, medium transmisyjne UTP Cat 5e).

Istnieją również kody z trzema stanami sygnału, na przykład w kodzie 8V/6T do zakodowania 8 bitów oryginalnej informacji używane są słowa kodowe kodu trójskładnikowego składającego się z 6 elementów. Każdy element może przyjąć jedną z trzech wartości (+1, 0, -1). Nadmiarowość kodu 8V/6T wyższy niż kod 4V/5V, od 2 8 = 256 uwzględniono znaki źródłowe 3 6 =729 wynikowe słowa kodowe. Ta metoda kodowania jest używana w specyfikacji 100Base T4 - podczas organizowania Ethernetu 100Mbps przez kabel UTP Cat3 (przestarzała specyfikacja). W tym przypadku do transmisji strumienia bitów używane są jednocześnie 3 pary skręcone. Szybkość przesyłania informacji dla każdej pary wynosi N=100 Mbps/3=33,3 Mbps, szybkość modulacji sygnału liniowego to 25 M bodów (8:6=1,33; 33,3:1,33=25), co pozwala na zastosowanie zakręcona para UTP kat3.

W kodzie8V/10V każde 8 bitów oryginalnej sekwencji jest zastępowane dziesięcioma bitami słowa kodowego. Jednocześnie są 1024 kombinacje wynikowe dla 256 kombinacji początkowych. Podczas wymiany zgodnie z tabelą kodów przestrzegane są następujące zasady:

      żadna wynikowa kombinacja (słowo kodowe) nie powinna mieć więcej niż 4 identyczne bity z rzędu;

      żadna wynikowa kombinacja nie powinna zawierać więcej niż 6 zer lub 6 jedynek;

Kod 8B/10V(+NRZI) jest stosowany w standardzie Gigabit Ethernet 1000Base-X (gdy jako medium transmisyjne wykorzystywane jest światłowód).

Implementuj karty sieciowe do kodowania logicznego. Ponieważ użycie tabeli przeglądowej jest bardzo prostą operacją, logiczny sposób kodowania nadmiarowego nie komplikuje wymagań funkcjonalnych tego sprzętu.

Aby zapewnić określoną przepustowośćNNadajnik bitów/s wykorzystujący kod nadmiarowy musi działać przy zwiększonej częstotliwości taktowania. Tak więc do transmisji sygnału w kodzie 4V/5V z szybkością przesyłania informacji N= 100 Mb/s, nadajnik musi działać z częstotliwością zegara 125 MHz (tj.B=125 Mbodów). W tym przypadku rozszerza się widmo sygnału liniowego. Jednak widmo sygnału redundantnego kodu potencjału okazuje się być węższe niż widmo sygnału w Manchesterkod, co uzasadnia dodatkowy krok kodowania logicznego, a także pracę odbiornika i nadajnika przy zwiększonej częstotliwości taktowania.

Szyfrowanie jest to takie „mieszanie” oryginalnej sekwencji bitowej, w którym prawdopodobieństwo wystąpienia jedynek i zer na wejściu fizycznego modułu kodującego zbliża się do 0,5. Urządzenia (lub moduły oprogramowania), które wykonują tę operację, nazywane są mieszacze (scramble - dump, losowy montaż).

Schemat włączenia scramblera do kanału komunikacyjnego

Scrambler w nadajniku dokonuje transformacji struktury oryginalnego strumienia cyfrowego. Deszyfrator w odbiorniku przywraca oryginalną sekwencję bitów. Prawie jedyną operacją stosowaną w scramblerach i deszyfratorach jest: XOR - "bitowe XOR"(dodatek przez moduł 2).

Główną częścią skramblera i deszyfratora jest generator sekwencji pseudolosowych (PRS) w postaci rejestru przesuwnego z K-bitowym sprzężeniem zwrotnym.

Istnieją 2 główne typy par scrambler-descrambler:

    samosynchronizacja;

    z wstępną instalacją (dodatek).

Obwody samotaktujące są sterowane sekwencją kodowaną. Wadą tych schematów jest propagacja błędów. Wpływ błędnego symbolu pojawia się tyle razy, ile informacja zwrotna jest w schemacie.

Wariant realizacji scramblingu w schemacie samosynchronizującym.

Niech na przykład szyfrator zaimplementuje relację In i =A i +B i -5 +B i -7 .

Tutaj Bi jest cyfrą binarną wynikowego kodu otrzymanego w i-tym cyklu skramblera; Ai jest cyfrą binarną kodu źródłowego, która dociera do nadajnika na wejściu skramblera w i-tym cyklu; B i -5 i B i -7 to cyfry binarne kodu wynikowego uzyskanego w poprzednich cyklach skramblera, odpowiednio, w cyklach „i-5” i „i-7”.

Deszyfrator w odbiorniku rekonstruuje pierwotną sekwencję za pomocą relacji

C i =B i +B i-5 +B i-7 =(A i +B i-5 +B i-7)+B i-5 +B i-7 =A i

W obwodach addytywnych sekwencja zaszyfrowana nie jest podawana na wejście rejestrów przesuwnych, nie ma propagacji błędów, ale wymagana jest synchronizacja działania pary szyfrator-deszyfrator.