Смекни!
smekni.com

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

1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0

1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

6. Триггеры.

RS-типа.

Работа триггера. При CLRN = 0 происходит установка триггера в 0, независимо от входа CLK, то есть Q = 0 (очистка).

Входы | Выход

CLRNCLKSR | Q

1 0 xx | хранит

1 0→1 0 0 | хранит

1 0→1 1 0 | 1

1 0→1 0 1 | 0

1 0→1 1 1 | запрещено

D-типа.

Работа триггера. При CLRN = 0 происходит установка триггера в 0, независимо от входа CLK, то есть Q = 0 (очистка).

Входы | Выход

CLRNCLKD | Q

1 0 x | хранит

1 1 x | хранит

1 0→1 1 | 1

1 0→1 0 | 0

6. Элемент исключающее ИЛИ (2х входовое).

Когда входы одинаковы, на выходе 0, если разные, то 1.

X1X2Y

000

011

101

110

7. Решатель декодера.

Представляет собой обыкновенный двоично-десятичный дешифратор на 5 входов – 32 выхода и шестивходовой элемент ИЛИ.

На вход подается остаток от деления. Если он равен 0, то активизируется выход Q0 (это соответствует сигналу NXT – ошибок нет), если вес остатка равен 1, то активны Q1, Q2, Q4, Q8, Q16 (это соответствует сигналу ERCOR – ошибка исправима).


8. Мультиплексор на два канала.

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

Входы|Выход

S A B |Y

0 х 1 |1

0 х 0 |0

1 1 х |1

1 0 х |0

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

Работа кодера и решателя кодера была описана выше. Поясним некоторые моменты.

При начале передачи передатчик начинает посылать новый пакет сообщений. Сначала посылается сигнал очистки памяти кодера и решателя (CLRN = 0). Затем он становится равен 1.

Далее начинает передаваться сообщение № 1 на вход решателя кодера (INF_IN), состоящее из 9 символов. Оно поступает на ключ Кр, который выполнен на элементах DD1.21 и DD1.22. Одновременно оно поступает и на кодер через ключ К2, реализованный на элементах DD2.13 и DD2.14.

В кодере предусмотрен буфер на 14 бит, в который записывается закодированное сообщение. Это позволит на аппаратном уровне осуществлять повтор сообщения, не «отвлекая» передатчик, в роли которого выступает ЭВМ. Это позволит при ошибках, не прерывать другие задачи, которые могут выполняться на данной ЭВМ и использовать её только в качестве источника информации, не нагружая дополнительными задачами. Можно было его сделать и на 9 бит, но емкость примененной микросхемы позволяет применить и 14 битный буфер. Буфер управляется ключами, которые выполняют необходимые коммутации, соединение с кодером, запись уже закодированного сообщения и т.п. Ключи реализованы на элементах DD2.4, DD2.3, DD2.2, DD2.34 и DD2.35. Элементы памяти выполнены на триггерах D-типа (элементы DD2.20 – DD2.33).

Отсчет количества бит сообщения производится с помощью счетчиков: DD1.9, DD1.17 – в решателе кодера и DD2.16 – в кодере.

Делитель предназначен для получения контрольных символов. Его работа была рассмотрена выше. Он выполнен на элементах DD2.5 – DD2.12.

Дешифратор и другие логические элементы используются для работы ключей и включения/выключения каналов передачи.

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

Работа декодера и решателя декодера была описана выше. Поясним некоторые моменты.

При приеме первого сообщения пакета посылается сигнал очистки памяти кодера и решателя (CLRN = 0). Затем он становится равен 1.

Далее начинает приниматься сообщение № 1 на вход делителя и в память декодера (INFA), состоящее из 14 бит. Оно поступает на сумматор по модулю 2, который выполнен на элементе DD1.1 и соответственно оно поступает и в ОЗУ декодера. Память предназначена для хранения полученного сообщения.

Отсчет количества бит сообщения производится с помощью счетчиков: DD1.16, DD1.23.

Делитель предназначен для получения остатка от деления. С выходов делителя на дешифратор DD1.12 поступает остаток, соответственно при остатке с весом 0 посылается сигнал продолжения (NXT). Если вес остатка равен 1, то посылается сигнал ERCOR (ошибка исправима). Делитель выполнен на элементах DD1.1 – DD1.8.

Дешифратор (DD1.32) и другие логические элементы используются для работы ключей и включения/выключения каналов передачи.

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

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

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

У решателя имеются следующие входы:

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

CLRN – очистка памяти решателя;

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

F_NXT – принимает сигнал о продолжении;

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

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

RPT_CODE – сигнал повтора;

WAIT14 – сигнал приостановки посыла информации с передатчика;

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

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

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

Далее рассмотрим кодер.

Входы:

RPT – прием сигнала RPT_CODE;

CLRN – очистка памяти кодера;

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

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

Выход один, это OUT – посыл закодированного сообщения либо в линию связи (ЛС), либо на модулятор (в зависимости от вида устройства: если ЛС аналоговая, то на модулятор, если цифровая, то непосредственно в ЛС).

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

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

Решатель.

Пусть с передатчика пришло сообщение 011001010. Сигнал F_NXT=0. Всё это время сигнал очитки памяти выключен (CLRN = 1). На такте 9, счетчик досчитает до 8 (01000), так как он начинает считать с нуля. За эти девять тактов всё полученное сообщение поступает на выход INF_OUT. После девятого такта включается сигнал WAIT14, потому что необходимо ещё закодировать сообщение.

Кодер кодирует сообщение, и посылает в течение 5 тактов пять контрольных символов. Допустим в декодер сообщение поступило с ошибкой. Сигнал F_NXT не пришел, то есть F_NXT=0 в течение всех 14 тактов. Тогда счетчик считает далее до 27 (11011), и всё это время на передатчик поступает сигнал приостанова посылки сообщения, так как идёт попытка исправления искаженного сообщения в декодере.

Пусть в декодере сообщение не исправилось, тогда сигнал F_NXT не приходит, то есть опять F_NXT=0. И соответственно после 9 такта на информационный выход ничего не поступает. Не получив на 28 такте сигнала F_NXT решатель сбрасывает счетчик решателя RES_CO=1, и послав на передатчик сигнал приостанова, отправляет на кодер сигнал повтора RPT_CODE = 1.

С буфера кодера в течение 14 тактов сообщение заново посылается в ЛС.

Пусть теперь сообщение в декодере было принято без ошибок. На 14 такте приходит сигнал F_NXT, решатель снова сбрасывает счетчик и принимает новое сообщение с передающего устройства, предварительно сбросив сигнал WAIT14 в нуль.

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

Кодер.

Пусть с решателя кодера пришло сообщение 011001010. Сигнал повтора сообщения RPT_CODE=0. Всё это время сигнал очитки памяти выключен (CLRN = 1).

Кодер в начале первые 9 тактов просто выводит сообщение на выход. Одновременно оно записывается в память кодера. Затем посылает в течение 5 тактов пять контрольных символов. Допустим с решателя кодера поступает сигнал повтора посылки сообщения RPT_CODE=1. Тогда в течение 14 тактов кодер уже из памяти отсылает в ЛС (вывод OUT) сообщение заново.

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


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.