Смекни!
smekni.com

Разработка устройства кодирования-декодирования 32-х разрядных слов методом Хемминга (стр. 7 из 10)

Рис. 2.1 блок схема кодирования


Рис. 2.2 — Схема кодера

На входы а1,а2…а32 подаётся кодируемое слово. Блоки (элементы) KR1, KR2, KR4, KR8, KR16 и KR32 формируют контрольные разряды (биты чётности). Весь процесс кодирования сводится к формированию контрольных разрядов и сдвигу имеющихся разрядов. Так, 1й бит слова становится 3м битом кода, а 2й – 5м , 1,2,4,8,16,32 биты – контрольные. В результате кодирования 32х битное слово становится 38ми битным.


Рис 2.3 — Схема блоков KR1 – KR32

Блоки KR1, KR2, KR4, KR8, KR16 и KR32 собраны элементах исключающее ИЛИ. Итак:

Блок KR1 формирует 1й контрольный разряд подсчитывая чётность 3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35 и 37 битов, если количество единиц в этих разрядах чётное, то контрольный бит равен нулю, если нечётное – единица.

Аналогично блок KR2 формирует 2й контрольный разряд, подсчитывая чётность 3,6,7,10,11,14,15,18,19,22,23,26,27,30,31,34,35 и 38 битов, если количество единиц в этих разрядах чётное, то контрольный бит равен нулю, если нечётное – единица.

Блок KR4 формирует 4й контрольный бит проверяя 5,6,7,12,13,14,15,20,21,22,23,28,29,30,31,36,37 и 38 биты.

Блок KR8 формирует 8й контрольный бит проверяя 9,10,11,12,13,14,15,24,25,26,27,28,29,30 и 31 биты.

Блок KR16 формирует 16й контрольный бит проверяя 17,18,19,20,21,22,23,24,25,26,27,28,29,30 и 31 биты.

Блок KR32 формирует 32й контрольный бит проверяя 33,34,35,36,37 и 38 биты.

2.2 Разработка устройства декодирования информации методом Хемминга

Рис.2.4 — Схема декодера

Схема декодера состоит из 3х основных блоков: блока анализа, блока управления и блока исправления. Декодер осуществляет декодирование с исправлением произошедшей ошибки.


Рис. 2.5 — Схема блока анализа

Блок анализа с помощью блоков KR1, KR2, KR4, KR8, KR16 и KR32 заново проверяет чётность выше упомянутых разрядов и с помощью 6 и элементов исключающее ИЛИ сравнивает с пришедшими по шине контрольными разрядами. Если контрольные разряды нарушены, то формируются 6 сигналов ошибки, которые передаются в блок управления. Так же блок анализа изымает из 38ми битного слова биты чётности и передаёт 32х битное слово в блок исправления.


Рис. 2.6 — Схема блока управления

Блок управления представляет дешифратор 6/32, собранный на базе элементов И. В соответствии с комбинацией входных сигналов, блок управления активирует тот или иной управляемый инвертор блока исправления.

Рис 2.7 — Схема блока исправления ошибок

Блок исправления непосредственно производит исправление слова пришедшего из блока анализа в соответствии с сигналами блока управления. Он представляет собой 32 управляемых инвертора, на информационные входы которых подаётся слово с ошибкой, а на управляющие код из блока управления. В соответствии с поданным сигналом активируется тот или иной инвертор, который и исправляет ошибку, и слово выводится из дешифратора.

Рис.2.8 — Схема управляемого инвертора

Управляемый инвертор собран на базе 2х элементов НЕ, элемента И, и элемента исключающее ИЛИ-НЕ. Является непосредственно исполнителем исправления ошибки. Его таблица истинности приведена ниже.

Табл. 2.1 — таблица истинности управляемого инвертора

ВХОД УПР.СИГНАЛ ВЫХОД
0 0 0
0 1 1
1 0 1
1 1 0


2.3 Реализация кодера – декодера на базе ИМС К555ВЖ1

Рис 2.9 — Блок схема

32х битное слово разделяется на два слова по 16 бит. Далее каждая из половин попадает в свой 16битный кодер. Генерируются контрольные биты, и на линию передач выводятся два 22х битных кода Хэмминга. На линии передачи есть возможность внести ошибку. Далее 22х битный код считывается декодером. Проверяется на наличие ошибок. Если найдены ошибки, они исправляются, и выводятся два слова по 16 бит, которые и составляют переданное 32х битное слово.


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

Рис. 2.10 — Цоколёвка ИМС К555ВЖ1 (SN74LS630)

· D0-D15 - входы/выходы данных;

· CB0-CB5 - входы/выходы синдрома;

· S0,S1 - входы управления;

· SEF - флаг ошибки;

· DEF - флаг некорректируемой ошибки.

· Все выходы с тремя состояниями

Схема использует модифицированный код Хэмминга, чтобы генерировать 6-битовый синдром для 16-разрядного слова. Одиночные ошибки схемой исправляются; двойные ошибки только обнаруживаются, ошибки типа всех нулей или всех единиц тоже обнаруживаются, тройные и большие ошибки могут быть не обнаружены. В случае двойной ошибки, оба бита могут быть в слове памяти, обе в слове синдрома, или по одному биту в слове памяти и слове синдрома. В течении цикла записи, схема формирует 6-разрядное проверочное слово из 16-разрядного слова данных. Коррекция ошибки выполняется идентификацией неправильного бита и инверсией его. Когда исправленное слово выдается из порта данных, из порта CBi выдается синдром, указывающий на неправильный бит.


Табл. 2.2 — Функции схемы исправления ошибок

Цикл памяти Упр S1 S0 Функция БИС Шина данных Шина синдрома Флаги SEF DEF
ЗАПИСЬ L L Генерировать контрольное слово Входные данные Выходное контрольное слово L L
ЧТЕНИЕ L H Читать данные и контрольное слово Входные данные Входное контрольное слово L L
ЧТЕНИЕ H H Защелкнуть и разрешить флаги Защелкнутые данные Защелкнутое контрольное слово Разрешено
ЧТЕНИЕ H L Корректировать данные и генерировать синдром Выходные корректированные данные Выходной синдром Разрешено

Табл. 2.3 — Таблица ошибок

Контрольное 16-разрядное слово данных
слово 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
CB0 * * * * * * * *
CB1 * * * * * * * *
CB2 * * * * * * * *
CB3 * * * * * * * *
CB4 * * * * * * * *
CB5 * * * * * * * *

Табл. 2.4 — Синдромы ошибок

Ячейка ошибки Код синдрома ошибки
CB0 CB1 CB2 CB3 CB4 CB5
D0 L L H L H H
D1 L H L L H H
D2 H L L L H H
D3 L L H H L H
D4 L H L H L H
D5 H L L H L H
D6 H L H L L H
D7 H H L L L H
D8 L L H H H L
D9 L H L H H L
D10 L H H L H L
D11 H L H L H L
D12 H H L L H L
D13 L H H H L L
D14 H L H H L L
D15 H H L H L L
CB0 L H H H H H
CB1 H L H H H H
CB2 H H L H H H
CB3 H H H L H H
CB4 H H H H L H
CB5 H H H H H L
Нет ошибки H H H H H H

Табл. 2.5 — Исправление

Полное число ошибок Флаги ошибок Исправление данных
16-битовые данные 6-битовое контрольное слово SEF DEF
0 0 L L Не применимо
1 0 H L Коррекция
0 1 H L Коррекция
1 1 H H Прерывание
2 0 H H Прерывание
0 2 H H Прерывание