Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Grushin_coder_930.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.29 Mб
Скачать

Структурная схема устройства для помехоустойчивого кодирования

Устройство для помехоустойчивого кодирования должно быть реализовано по схеме на рис. 1.

Согласно этой схеме, данные заносятся параллельно в сдвиговый регистр 1, откуда последовательно вводятся в CRC-кодер. Избыточная комбинация с выхода CRC-кодера поступает последовательно на выход и в сдвиговый регистр 2, с выхода которого избыточные разряды поступают в дешифратор для отображения на 7-сегментном индикаторе платы UP2 Educational Kit.

Работа устройства протекает под управлением тактовых импульсов ТИ. Предусматривается два режима работы устройства:

  • с частотой следования тактовых импульсов ТИ, когда простейшие операции в устройстве происходят через интервалы, равные периоду следования ТИ;

  • с пониженной в k раз частотой, когда простейшие операции в схеме происходят в моменты действия каждого k-ого ТИ.

Режим работы устанавливается логической схемой ЛС1 по сигналам с выхода делителя частоты и управляющему сигналу «Выбор режима» принимающему значение логического нуля или единицы.

При работе с частотой следования ТИ на выходе логической схемы ЛС1 формируется сигнал «Разрешение» постоянного уровня, разрешающий работу всех блоков устройства. При работе с пониженной в k раз частотой ТИ на выходе логической схемы ЛС1 формируется импульсный сигнал, разрешающий работу устройства только в моменты действия каждого k-го ТИ.

Работа устройства должна начинаться по сигналу «Пуск» (логический ноль), который формируется при нажатии нефиксируемой кнопки на плате UP2 Educational Kit. Для синхронизации сигнала «Пуск» с тактовыми импульсами ТИ применяется устройство формирования пускового импульса, привязывающее момент пуска к очередному тактовому импульсу. Сигнал «Сброс» необходим для восстановления устройства формирования пускового импульса в исходное состояние.

По сигналу «Пуск» на выходе устройства формирования пускового импульса появляется сигнал «Загрузка», записывающий кодируемую безызбыточную комбинацию в сдвиговый регистр 1 и запускается устройство управления работой кодера, которое формирует сигнал управления обратной связью CRC-кодера, сигнал управления записью в сдвиговый регистр 2 и восстанавливает исходное состояние устройства по окончании цикла кодирования [1].

Проектирование crc-кодера

Для образующего полинома G4(x)=x3+x2+x+1 схема кодирующего устройства имеет следующий вид (рис.2):

Рис. 2. Структурная схема CRC-кодера

Кодирующее устройство представляет собой сдвиговый регистр с обратными связями через сумматор по модулю два и строится по виду образующего полинома G4(x)=x3+x2+x+1.

Кодирование сводится к формированию в регистре 3 проверочных символов.

Перед началом кодирования триггеры x0-x2 находятся в нулевом состоянии, ключ К1 в положении «1», К2 – замкнут. Кодируемая безызбыточная 5-разрядная комбинация поступает символ за символом в схему и одновременно через ключ К1 на выход кодера. Первым в этой последовательности идет символ старшего разряда.

С приходом 5-го информационного символа формирование проверочных символов в КУ завершается, ключ К2 размыкается, ключ К1 переключается в положение «2». Сформированные в регистре проверочные символы поступают на выход вслед за информационными, что обеспечивается путем последовательного сдвига сформированной в регистре комбинации проверочных символов.

Работа кодера на первых 5 тактах описывается следующими уравнениями:

;

где , - значения информационного символа на i-ом такте;

, - состояние j-го триггера на i-ом такте [6].

Согласно заданию CRC-кодер спроектирован в виде текстового описания на языке AHDL [1]:

-------------------------------------------

-- СRС - кодер

-------------------------------------------

SUBDESIGN сoder_1111

(

data:INPUT; %Вход данных%

clock:INPUT; %Синхросигнал%

reset:input; %Сигнал обнуления кодера: reset=GND-обнуление%

switch:INPUT; %Сигнал управления обратной связью в кодере switch=VCC связь включена%

enable:INPUT; %Сигнал разрешения работы кодера:enable=VCC-работа разрешена%

rem[2..0]:OUTPUT; %Остаток от деления на образующий полином%

y:OUTPUT; %Выходной сигнал%

)

VARIABLE

CD[3..0]:DFFE; %Объявление триггеров входа%

BEGIN %Начало описания работы сдвигового регистра-делителя%

CD[].(clk,ena,clrn)=(clock,enable,reset);

%Подключение управляющих сигналов к соответствующим входам сдвигого регистра-делителя%

IF switch THEN

%Определение условия работы сдвигового регистра-делителя%

CD[0].d=CD[2].q XOR data;

CD[1].d=CD[0].q XOR CD[2].q XOR data;

CD[2].d=CD[1].q XOR CD[2].q XOR data;

ELSE

CD[0].d=GND;

CD[1].d=CD[0].q;

CD[2].d=CD[1].q;

CD[3].d=CD[2].q;

END IF;

%Конец описания работы сдвигового регистра-делителя%

y=CD[3].q;

rem[]=CD[2..0].q;

END;

Временные диаграммы, полученные в результате моделирования, приведены на рис. 3.

Рис.3. Временные диаграммы CRC-кодера

Представленные на рис. 3 результаты моделирования, полученные при кодировании 5-ти разрядной безызбыточной кодовой комбинации 11101, совпадают с результатами теоретического расчета, т.е. при делении 11101000 на двоичный эквивалент 1111 образующего полинома x3+x2+x+1 получается остаток 110 [6]:

Для дальнейшей работы с проектом сохраним устройство в виде графического символа, представленного на рис. 4.

Рис. 4. Графический символ модуля кодера

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]