П`ятниця, 19.04.2024
Комп’ютерні мережі
Меню сайта

Компьютерные сети на русском языке
Статистика

Логічне кодування

 

Деякі різновиди цифрового кодування дуже чутливі до характеру переданих даних. Наприклад, при передачі довгих послідовностей логічних нулів за допомогою потенційного коду типу NRZ або AMI сигнал на лінії довгий час не змінюється, і приймач може помилитися з моментом зчитування чергового біта. Для коду NRZ подібні проблеми виникають і при передачі довгих послідовностей логічних одиниць.  Логічне кодування (якому може піддаватися вихідна послідовність даних) повинне впроваджувати в довгі послідовності біт, біти із протилежним значенням, або взагалі заміняти їх іншими послідовностями. Крім виключення "проблемних” бітових послідовностей, логічне кодування дозволяє також збільшити кодову відстань між символами (для спрощення декодування), поліпшити спектральні характеристики сигналу, а крім того передавати в загальному потоці службові сигнали.

В основному для логічного кодування застосовуються три групи методів:

1.     вставка біт;

2.     надлишкове кодування;

3.     скремблювання.

 

Вставка біт (bit stuffing) – найбільш прямолінійний спосіб виключення довгих послідовностей, наприклад, логічних одиниць. Якщо в переданій послідовності зустрічається безперервний ланцюжок "1”, то передавач вставляє "0” після кожної, наприклад, п'ятої "1”. Приймач відкидає всі ці зайві "0”, які зустрічаються після п'яти "1”. Зрозуміло, можна проводити й зворотну операцію – вставку "1” у довгі послідовності "0”. Схема вставки біт застосовується, наприклад, у протоколі HDLC.

 

Надлишкове кодування засноване на розбивці вихідної послідовності біт на ділянки однакової довжини – символи. Потім кожний символ заміняється (як правило, табличним способом) на новий, що має або більшу кількість біт, або інша основа системи числення (наприклад, на символ, що складається із трійкових розрядів).

 

Серед логічних кодів можна виділити:

1. Код 4B/5B заміняє кожні 4 біти вхідного потоку (вихідний символ) на 5-бітний вихідний символ. Тому що кількість різних 5-бітних символів дорівнює 32, а вихідні символи можуть містити лише одну з 16 бітових комбінацій (тобто надмірність дорівнює 32/16 = 2), серед можливих вихідних кодів можна відібрати 16 "зручних” комбінацій, що не містять великої кількості нулів (більше трьох підряд), серед кодів, що залишилися, виділити службові символи (для підтримки синхронізації, виділення границь кадрів і їхніх полів і т.д.), а коди, що залишилися, вважати забороненими.

 

Табл. 5.1. Код 4B/5B

Вхідний символ

Вихідний символ

Вхідний символ

Вихідний символ

0000

11110

1000

10010

0001

01001

1001

10011

0010

10100

1010

10110

0011

10101

1011

10111

0100

01010

1100

11010

0101

01011

1101

11011

0110

01110

1110

11100

0111

01111

1111

11101

 

Накладні витрати при кодуванні 4B/5B становлять 25% (один зайвий біт на чотири біти даних), відповідно для досягнення тієї ж пропускної здатності, що й без логічного кодування, передавач повинен працювати на підвищеній на 25% частоті. Код 4B/5B використовується в FDDI і Fast Ethernet (100BaseFX і 100BaseTX).

 

2. Код 8B/10B заміняє кожний 8-бітний вихідний символ 10-бітним вихідним символом. При тому ж рівні накладних витрат (25%), що у випадку коду 4B/5B, володіє 4-кратною надмірністю (1024 вихідних символів і 256 вихідних символів). При кодуванні 8B/10B кожному вихідному символу відповідає два вихідних символи, вибір з яких здійснюється залежно від останнього біта попереднього переданого символу. У результаті код забезпечує стабільне співвідношення "0” і "1” у вихідному потоці, незалежно від вихідних даних. Ця властивість важлива для лазерних передавачів, оскільки від даного співвідношення залежить їхнє нагрівання й кількість помилок прийому. Код 8B/10B використовується в Gigabit Ethernet (1000BaseSX, 1000BaseLX, 1000BaseCX).

 

3. Код 8B/6T кодує кожні 8 біт вихідної інформації шістьма трійковими

 (T – ternary, трійковий) розрядами, що приймають значення {+, 0, –}. Наприклад, "00000000” = "+–00+–", "11111110” = "–+0+00”. Надмірність коду 8B/6T вище, ніж у коду 4B/5B і становить 36/28 = 729/256 = 2,85. Застосовується в Fast Ethernet (100BaseT4).

 

 Скремблювання полягає в побітному обчисленні вихідної послідовності на підставі значень біт вихідної послідовності й уже обчислених біт результату.

Наприклад, скремблер може обчислювати для кожного біта наступний вираз: Bi=AiÅBi-3ÅBi-5, де Ai – i-й біт вихідної послідовності, Bi – i-й біт результату скремблювання, Å – операція додавання по модулю два.

Так для вихідної послідовності 110110000001 скремблер дасть наступний результуючий код: B1 = А1 = 1 (перші три цифри результуючого коду будуть збігатися з вихідним, тому що ще немає потрібних попередніх цифр).

B2 = А2 = 1; B3 = А3 = 0; B4 = А4 Å B1 = 0; B5 = А5 Å B2 = 0; B6 = А6 Å B3 Å B1 = 1; і т.д.

Таким чином, на виході скремблера з'явиться послідовність 110001101111, у якій немає послідовності із шести нулів, що була присутня у вихідному коді.

Після одержання результуючої послідовності приймач передає її дескремблеру, що відновлює вихідну послідовність на підставі зворотного співвідношення: СiiÅBi-3ÅBi-5 = (АiÅBi-3ÅBi-5)ÅBi-3ÅBi-5 = Аi.

Різні алгоритми скремблювання відрізняються різною кількістю доданків і різним зрушенням між ними (у наведеному вище прикладі використовується два доданки зі зрушеннями 3 і 5). Наприклад, в ISDN використовується два варіанти скремблювання: зі зрушеннями 5 і 23, і зі зрушеннями 18 і 23.

Існують спеціальні методи скремблювання, що застосовуються спільно певними методами фізичного кодування. Наприклад, для поліпшення коду AMI застосовуються методи B8ZS і HDB3.

Метод B8ZS (Bipolar with 8-Zeros Substitution, біполярний із заміною 8 нулів) заміняє послідовності, що складаються з 8 нулів на "000V10V1”, де V – сигнал одиниці забороненої в даному такті полярності, а 1 – сигнал одиниці коректної полярності. Якщо на 8 тактах приймач спостерігає три початкових нулі й два перекручування полярності, то він заміняє ці  8 біт на 8 логічних нулів.

Метод HDB3 (High-Density Bipolar 3-Zeros, біполярний трьох-нульової високої щільності) заміняє послідовності із чотирьох нулів, що підряд ідуть, на один із чотирьох чотирьохрозрядних біполярних кодів залежно від передісторії – полярності попереднього імпульсу й попередньої заміни.

Пошук
Друзі сайта
  • Створити безкоштовний сайт на uCoz
  • При використанні інформації посилання на сайт обов’язкове Copyright Comp-Net.at.ua © 2024
    Розробка веб-сайтів на html, php з використанням баз даних