- •2.6. Топології
- •2.7. Методи доступу до середовища передавання та їх класифікація
- •Питання
- •3 Основи передавання даних
- •Питання
- •4 Передавання та кодування інформації
- •4.1 Кількість інформації та ентропія
- •4.1.1 Моделі Хартлі (Шеннона)
- •4.2 Вимоги до мереж з позиції якості обслуговування
- •4.1.2 Властивості ентропії:
- •4.3 Кодування інформації
- •4.4 Логічне кодування
- •4.5 Коди, що синхронізуються самі
- •Питання
- •5 Управління передаванням інформації та стискання даних
- •5.1 Режими передачі
- •5.2 Асинхронна, синхронна, ізохронна і плезіохронна передача
4.4 Логічне кодування
Деякі різновиди цифрового кодування дуже чутливі до характеру передаваних даних. Наприклад, при передачі довгих послідовностей логічних нулів за допомогою потенційного коду типу NRZ або AMI сигнал на лінії довгий час не змінюється, і приймач може помилитися з початком прочитування чергового біта. Для коду NRZ подібні проблеми виникають і при передачі довгих послідовностей логічних одиниць.
Логічне кодування (якому може піддаватися початкова послідовність даних) повинне упроваджувати в довгі послідовності біт, біти з протилежним значенням, або взагалі замінювати їх іншими послідовностями. Окрім виключення “проблемних” бітових послідовностей, логічне кодування дозволяє також збільшити кодову відстань між символами (для спрощення декодування), поліпшити спектральні характеристики сигналу, та окрім того передавати в загальному потоці службові сигнали.
Для логічного кодування застосовуються три групи методів: вставка біт, надмірне кодування і скремблювання.
Вставка біт (bit stuffing) – найбільш прямолінійний спосіб виключення довгих послідовностей, наприклад, логічних одиниць. Якщо в передаваній послідовності зустрічається безперервний ланцюжок “1”, то передавач вставляє “0” після кожної, наприклад, п'ятої “1”. Приймач відкидає всі ці зайві “0”, які зустрічаються після п'яти “1”. Зрозуміло, можна проводити і зворотню операцію – вставку “1” в довгі послідовності “0”. Схема вставки біт застосовується, наприклад, в протоколі HDLC.
Надмірне кодування засноване на розбитті початкової послідовності біт на ділянки однакової довжини – символи. Потім кожний символ замінюється (як правило, табличним способом) на новий, такий, що має або більшу кількість біт, або іншу підставу системи числення (наприклад, на символ, що складається з трійкових розрядів).
Розглянемо деякі поширені схеми логічного кодування.
Логічний код 4B/5B замінює кожні 4 біта вхідного потоку (початковий символ) на 5-бітовий вихідний символ. Оскільки кількість різних 5-бітових символів дорівнює 32, а початкові символи можуть містити лише одну з 16 бітових комбінацій, серед можливих вихідних кодів можна відібрати 16 “зручних” комбінацій – що не містять великої кількості нулів (більше трьох підряд), серед кодів, що залишилися, виділити службові символи (для підтримки синхронізації, виділення меж кадрів та їх полів і так далі), а коди, що залишилися, вважати забороненими.
Таблиця 4.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.
Логічний код 8B/10B замінює кожний 8-бітовий початковий символ 10-бітовим вихідним символом. При тому ж рівні накладних витрат (25%), що в коді 4B/5B, має 4-кратну надмірність (1024 вихідних символів і 256 початкових символів).
При кодуванні 8B/10B кожному початковому символу зіставлене два вихідних символи, вибір з яких здійснюється залежно від останнього біту попереднього переданого символу. Як наслідок, код забезпечує стабільне співвідношення “0” і “1” у вихідному потоці, незалежно від початкових даних. Ця властивість важлива для лазерних передавачів, оскільки від даного співвідношення залежить їх нагрівання і кількість помилок прийому. Код 8B/10B використовується в Gigabit Ethernet: 1000BaseSX,LX,CX.
Логічний код 8B/6T кодує кожні 8 біт початкової інформації шістьма трійковими (T – ternary, трійковий) розрядами, що приймають значення {+, 0, –}. Наприклад, “00000000” = “+–00+–“, “11111110” = “– +0+00”. Надмірність коду 8B/6T вища, ніж у коду 4B/5B і становить 36/28 = 729/256 = 2,85. Застосовується в 100BaseT4.
Скремблювання полягає в побітному обчисленні вихідної послідовності на підставі значень біт початкової послідовності і вже обчислених біт результату. Наприклад, скремблер може обчислювати для кожного біта такий вираз: Bi=AiBi-5 Bi-7, де Ai – i-й біт початкової послідовності, Bi – i-й біт результату скремблювання, – операція додавання по модулю 2. Різні алгоритми скремблювання відрізняються різною кількістю доданків і різним зрушенням між доданками (у наведеному вище прикладі використовується два доданки зі зрушеннями 5 і 7). Наприклад, в ISDN використовується два варіанти скремблювання: зі зрушеннями 5 і 23, та зі зрушеннями 18 і 23.
Існують спеціальні методи скремблювання, вживані спільно з певними методами фізичного кодування. Наприклад, для поліпшення коду AMI застосовуються методи B8ZS і HDB3. Метод B8ZS (Bipolar win 8-Zeros Substitution, біполярний із заміною 8 нулів) замінює послідовності, що складаються з 8 нулів на “000V10V1”, де V – сигнал одиниці забороненої в даному такті полярності, а 1 – сигнал одиниці коректної полярності. Якщо на 8 тактах приймач спостерігає три початкові нулі і два спотворення полярності, то він замінює ці 8 біт на 8 логічних нулів. Метод HDB3 (High-Density Bipolar 3-Zeros, біполярний трьох-нульової високої щільності) замінює послідовності з чотирьох нулів, що йдуть чередою, на один з чотирьох біполярних кодів залежно від передісторії – полярності попереднього імпульсу і попередньої заміни.
