Реалізація кодерА - декодера на базі ІМС К555ВЖ1

Рис.2.10 — Блок-схема кодера-декодера

32-х бітне слово розділяється на два слова по 16 біт. Далі кожна з половин потрапляє в свій 16-бітный кодер. Генеруються контрольні біти, і на лінію передачі виводяться два 22-х бітних модифікованих кода Хеммінга. На лінії передачі є досить висока вірогідність внести помилку. Далі кожен 22-х бітний код зчитується своїм декодером. Перевіряється на наявність помилок. Якщо знайдені помилки, вони виправляються, і виводяться два слова по 16 біт, які і складають передане 32-х бітне слово.


 

2.3.1 Цоколевка ІМС К555ВЖ1 (SN74LS630)

Рис.2.11 — Цоколевка ІМС К555ВЖ1 (SN74LS630)

• D0-D15 - входи/виходи даних;

• CB0-CB5 - входи/виходи синдрому;

• S0, S1 - входи керування;

• SEF - прапор помилки;

• DEF - прапор невиправляємої помилки.

• Всі виходи з трьома станами

 

Схема використовує модифікований код Хеммінга, щоб генерувати 6-бітовий синдром для 16 розрядного слова. Завдяки цьому, одиночні помилки схемою виправляються; подвійні помилки, а також помилки типу всіх нулів або всіх одиниць тільки виявляються, потрійні та більші помилки можуть бути не виявлені. У випадку подвійної помилки, обидва неправильні біта можуть бути в слові пам'яті, обидві в слові синдрому, або по одному біту в слові пам'яті і слові синдрому. Протягом циклу запису, схема формує 6-розрядне перевірочне слово з 16 розрядного слова даних. Корекція помилки виконується ідентифікацією неправильного біта та його інверсією. Коли виправлене слово видається з порту даних, з порту CBi видається синдром, який вказує на неправильний біт.

 

Табл. 2.2 – Функції схеми виправлення помилок

 

Цикл пам'яті Входи керування Функції ІМС Шина даних Шина синдрому Прапори помилок
S0 S1 SEF DEF
Write (Запис) Low (низький) Low (низький) Генерувати контрольне слово Вхідні дані Вихідне контрольне слово Low (низький) Low (низький)
Read (Зчиту-вання) High (високий) Low (низький) Зчитувати дані та контрольне слово Вхідні дані Вхідне контрольне слово Low (низький) Low (низький)
Read (Зчиту-вання) High (високий) High (високий) Замкнути і дозволити прапори Замкнуті дані Замкнуте контрольне слово Дозволено
Read (Зчиту-вання) Low (низький) High (високий) Виправляти дані та генерувати синдром Вихідні виправ-лені дані Вихідний синдром Дозволено

 

Табл. 2.3 – Таблиця помилок

 

Контрольне слово 16-розрядне слово даних
  CB0                  
  CB1                  
  CB2                  
  CB3                  
  CB4                  
  CB5                  

 

Табл. 2.4 – Виправлення

 

Загальне число помилок Прапори помилок Виправлення даних
16-бітові дані 6-бітове контрольне слово SEF DEF
Low (низький) Low (низький) Не застосовується
High (високий) Low (низький) Корекція
High (високий) Low (низький) Корекція
High (високий) High (високий) Переривання
High (високий) High (високий) Переривання
High (високий) High (високий) Переривання

 

Табл. 2.5 – Синдроми помилок

 

Комірка помилки Код синдрому помилки
CB0 CB1 CB2 CB3 CB4 CB5
D0 Low (низький) Low (низький) High (високий) Low (низький) High (високий) High (високий)
D1 Low (низький) High (високий) Low (низький) Low (низький) High (високий) High (високий)
D2 High (високий) Low (низький) Low (низький) Low (низький) High (високий) High (високий)
D3 Low (низький) Low (низький) High (високий) High (високий) Low (низький) High (високий)
D4 Low (низький) High (високий) Low (низький) High (високий) Low (низький) High (високий)
D5 High (високий) Low (низький) Low (низький) High (високий) Low (низький) High (високий)
D6 High (високий) Low (низький) High (високий) Low (низький) Low (низький) High (високий)
D7 High (високий) High (високий) Low (низький) Low (низький) Low (низький) High (високий)
D8 Low (низький) Low (низький) High (високий) High (високий) High (високий) Low (низький)
D9 Low (низький) High (високий) Low (низький) High (високий) High (високий) Low (низький)
D10 Low (низький) High (високий) High (високий) Low (низький) High (високий) Low (низький)
D11 High (високий) Low (низький) High (високий) Low (низький) High (високий) Low (низький)
D12 High (високий) High (високий) Low (низький) Low (низький) High (високий) Low (низький)
D13 Low (низький) High (високий) High (високий) High (високий) Low (низький) Low (низький)
D14 High (високий) Low (низький) High (високий) High (високий) Low (низький) Low (низький)
D15 High (високий) High (високий) Low (низький) High (високий) Low (низький) Low (низький)
CB0 Low (низький) High (високий) High (високий) High (високий) High (високий) High (високий)
CB1 High (високий) Low (низький) High (високий) High (високий) High (високий) High (високий)
CB2 High (високий) High (високий) Low (низький) High (високий) High (високий) High (високий)
CB3 High (високий) High (високий) High (високий) Low (низький) High (високий) High (високий)
CB4 High (високий) High (високий) High (високий) High (високий) Low (низький) High (високий)
CB5 High (високий) High (високий) High (високий) High (високий) High (високий) Low (низький)
Помилка відсутня High (високий) High (високий) High (високий) High (високий) High (високий) High (високий)