Передача информации по каналу с решающей обратной связью

Соответственно далее всё происходит подобным образом. Более подробно работа решателя приведена в приложении на временной диаграмме.

2.9 Описание принципиальной схемы декодера и решателя декодера

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

В итоге имеем микросхему, которая выполняет функции решателя и д

екодера.

У ней имеются следующие входы:

INFA – информационный;

CLK – вход генератора тактовых импульсов;

И имеются следующие выходы:

OUT – информационный выход;

F_NXT – посыл сигнала о продолжении передачи;

Далее идут выходы, которые несут чисто информационный характер для показа внутренней работы микросхемы и непосредственно не используются:

F_ERCOR – сигнал об исправимости искаженного сообщения;

ERCOR – промежуточный сигнал об исправимости искаженного сообщения;

CLRN_OUT – сигнал очистки памяти декодера;

ТТК34 – управление ключами;

RES_CO – сигнал сброса счетчиков;

CN1…CN5 – разряды счетчика декодера;

Также имеется разъем для соединения с ЛС и передающим устройством, а также для подвода питания.

Опишем работу полученного устройства.

1. Пусть из ЛС (INFA) поступило сообщение 01100000010111. Всё это время сигнал очистки памяти выключен (CLRN_OUT = 1). На 14 такте проверяется остаток от деления. Он получился равным 0, так как в конце 14 такта появляется сигнал NXT. Это означает, что сообщение принято без ошибок, поэтому вырабатывается импульс F_NXT и поступает в обратный канал, и RES_CO, который сбрасывает счетчик в нуль.

2. Теперь рассмотрим исправление ошибки. Допустим поступило искаженное сообщение 01000000010111. Искаженный символ отмечен подчеркиванием. До 14 такта всё происходит аналогично пункту 1, но на 14 такте нет сигнала NXT, что означает ненулевой остаток. Также и сигнал ERCOR (ошибка исправима) не равен 1, поэтому происходят циклические сдвиги сообщения в памяти декодера и происходит деление. Вот на такте 17 появляется сигнал ERCOR = 1. И появляется сигнал F_ERCOR (для дальнейшего срабатывания NXT). На такте 22 сообщение исправляется и появляется сигнал NXT. И соответственно на 28 такте появляется импульс F_NXT и RES_CO.

Далее в следующие 14 тактов происходит отправка исправленного сообщения на выход в приемник 01100000010111 (OUT) и одновременное чтение следующего сообщения.

3. И теперь самый «плохой» случай, когда искажения более, чем в одном символе, то есть сообщение нельзя будет исправить. Пусть на вход поступило следующее сообщение: 11000000010111

До 28 такта всё аналогично пункту 2, за исключением того, что не появляются сигналы NXT, ERCOR и соответственно F_NXT, F_ERCOR. На 28 такте происходит сброс счетчика, очистка памяти CLRN_OUT = 0 и чтение сообщения заново (так как на решатель кодера не приходит импульс F_NXT).

Соответственно далее всё происходит подобным образом. Более подробно работа решателя приведена в приложении на временных диаграммах.

2.10 Выводы

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

3. Описание программных средств, разработанных в ходе реализации проекта

3.1 Структура системы

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

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

Для конкретной реализации в программе должны содержаться массивы для хранения требуемых для работы алгоритма переменных: CODE – массив разрядов, входящих в сообщение, должен вводиться пользователем (9 разрядов – информационные). И массив G_CODE для закодированного сообщения (9 разрядов – информационные, 5 разрядов – проверочные).

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

3.2 Входные данные, форма представления результатов

Входными данными является код, который вводит пользователь. Код вводится следующим образом: имеется 9 символов, по умолчанию они нули. С помощью курсорных клавиш перемещается курсор по символам и при нажатии клавиши пробел значение символа меняется на противоположное, то есть 1 на 0, а 0 на 1.

Результаты приведены в виде закодированного сообщения с помощью циклического кода (14,9).

3.3 Спецификация на программу в целом.

Программа выполняет следующие функции:

1. Кодирование кодовой последовательности с помощью циклического кода (14,9);

2. Вывод закодированного сообщения (информационные и контрольные символы);

3. Возможность пользователя «искажать» закодированное сообщение для дальнейшего декодирования;

4. Декодирование закодированного сообщения и исправление ошибок в искаженном сообщении.

Итак, входные данные:

Code:Array[1 k]Of Boolean; – массив начальной кодовой комбинации;

Выходные данные:

G_Code:Array[1 n]Of Byte; – закодированная кодовая комбинация;

Константы:

a:Array[1 k,1 n]Of Byte=((0,0,0,0,0,0,0,0,1,0,0,1,1,1),

(0,0,0,0,0,0,0,1,0,0,1,1,1,0),

(0,0,0,0,0,0,1,0,0,1,1,1,0,0),

(0,0,0,0,0,1,0,0,0,1,1,1,1,1),

(0,0,0,0,1,0,0,0,0,1,1,0,0,1),

(0,0,0,1,0,0,0,0,0,1,0,1,0,1),

(0,0,1,0,0,0,0,0,0,0,1,1,0,1),

(0,1,0,0,0,0,0,0,0,1,1,0,1,0),

(1,0,0,0,0,0,0,0,0,1,0,0,1,1)); – образующая матрица;

stepen=6; – степень образующего многочлена=6, т.к. порядковый номер степени начинаем отсчитывать не с 0, а с 1;

Polynom:Array[1 stepen]Of byte=(1,0,0,1,1,1); – образующий многочлен.

3.4 Системные требования

Минимальные:

Процессор: 80486-33

Память: 4 Mb RAM

Видеопамять: 512Kb DRAM

Свободное место на жестком магнитном диске: 1 Mb

Операционная система: DOS 3.30 или выше.

3.5 Спецификация на программу в целом.

Программа соответствует требованиям технического задания. Она успешно кодирует, декодирует и исправляет введенную двоичную последовательность при помощи кодов. Созданный удобный дружественный интерфейс – понятен и прост. Кроме того комментарии позволяют быстро разобраться в программе и при необходимости внести в нее поправки.

В программе широко использовались элементы технологии TOP-DOWN.

Процедуры написанные для данной программы могут быть в дальнейшем использоваться в других программах.

4. Результативная часть

4.1 Тестирование

Тестирование – это процесс, посредством которого проверяется правильность программы. Его цель – показать, что программа правильно работает в соответствии с проектными спецификациями.

При тестировании проверялась работа каждого модуля в отдельности, а также всей программы в целом. Было проведено несколько тестирований, после каждого из которых проводилась доработка программы и устранение ошибок. Тестирование проводилось из расчета на то, программой могут пользоваться неопытные пользователи, которые непредсказуемы в работе с программой.

Страница:  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15 
 16  17 


Другие рефераты на тему «Коммуникации, связь и радиоэлектроника»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы