Разработка системы сбора и передачи информации

 

Введение


Каждое из трех предшествующих столетий ознаменовалось появлением какой-то технологии, развитие которой определяло прогресс в этом столетии. XVIII век - механические системы, XIX - паровые машины, XX - технологии сбора, передачи, обработки и хранения информации.

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

Ценность информации может быть очень высока, поэтому передача требует применения помехозащищенности, кодирования. Важна также и своевременность доставки информации.

Задачу передачи информации на расстояние позволяет решить система передачи данных (СПД). Область применения таких систем достаточно широка.

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

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

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

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

В четвертой главе приведен пример программной реализации кодирующего и декодирующего устройств.



1. Анализ способов построения СПД


1.1 Классификация СПД


Телемеханическая система - это совокупность устройств пунктов управления и контролируемых пунктов, периферийного оборудования, необходимых линий и каналов связи, предназначенных для совместного выполнения телемеханических функций. [3]

Классификация:

По выполняемым функциям.

·Система телеизмерения (ТИ) - система, осуществляющие передачу непрерывных измеряемых величин. Например, требуется передача данных с большой точностью об уровне продукта, находящегося в емкости. Информация передается с контролируемого пункта на пункт управления. Принятые данные могут вводиться в ЭВМ и представляться диспетчеру для визуальных наблюдений на цифровых индикаторах и стрелочных приборах, а также регистрироваться специальными приборами.

·Система телесигнализации (ТС) - система, осуществляющая передачу различных дискретных величин, которые могут вводиться в ЭВМ или сообщать диспетчеру о состоянии контролируемых объектов с помощью звуковой и световой сигнализации. Например, требуется выдать сообщение при наполнении или опустошение емкости продуктом.

·Система телеуправления (ТУ) - система, осуществляющая передачу информации в виде команд на включение или отключение различных механизмов. Эти команды или посылаются диспетчером с пункта управления, или подаются с ЭВМ на изменение установок в регуляторах. При этом, если объекты управления находятся вблизи диспетчера, необходимость в обратной сигнализации отпадает: диспетчер визуально наблюдает за исполнением посланных команд. Сфера применения подобных систем управления ограничена. Обычно управляемые объекты находятся вне поля зрения диспетчера, и о том, включились или отключились они после подачи команды, нужна сигнализация. Для этого требуется соединение системы управления с системой сигнализации.

·Система телеуправления и телесигнализации (ТУ-ТС) - система, позволяющая передавать команды с пункта управления на контролируемый пункт и получать известительную сигнализацию об исполнении команды, посылаемой контролируемым пунктом на пункт управления, и сигнализацию об изменении состояния объекта.

·Система измерения и сигнализации (ТИ-ТС) - система, передающая только известительную информацию с контролируемого пункта на пункт управления. В такой системе возможна и передача производственно-статистической информации.

·Системы телерегулирования (ТР) - телеуправление объектами с непрерывным множеством состояний. Осуществляется с помощью систем ТИ и ТУ.

По характеру линии связи.

Линия связи - физическая среда, по которой передаются сигналы.

Для передачи информации могут использоваться следующие линии связи:

·проводные

·световодные

·радиотракт

В системах телемеханики передается на дальнее расстояние большое количество сообщений от многих источников или ко многим приемникам. Например, в системах ТУ происходит передача информации от одного источника (диспетчера) ко многим приемникам (объектам), а в системах ТС - от многих источников (объектов) к одному приемнику (диспетчеру).

По расположению управляемых объектов.

·Система для сосредоточенных объектов - система, в которой имеется один пункт управления и один контролируемый пункт.

·Система для рассредоточенных объектов - система, в которой есть один пункт управления и несколько контролируемых пунктов.

По характеру управляемых объектов.

·Системы со стационарными (неподвижными) объектами

·Системы с подвижными объектами. [3]


1.2 Способы передачи данных и методы фазирования


В общем случае между пунктами А и В может осуществляться как односторонняя, так и двухсторонняя передача.

Различают следующие режимы работы при передаче сигналов:

1.Дуплексный режим - А->В и одновременно В->А. Здесь оба направления в отношении скорости передачи могут быть равнозначны (симметричный дуплексный режим) или различны.

2.Полудуплексный режим - либо A->B, либо B->A. Этот режим отвечает диалогу двух партнеров. Возможна передача информации в обоих направлениях, но лишь поочередно

.Симплексный режим - А->В - информация может передаваться лишь в одном направлении.

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

1.путем многократного повторения символов;

2.одновременной передачей одной и той же информации по нескольким параллельным каналам;

.применением кодов, исправляющих ошибки.

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

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

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

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

К дуплексной группе относятся устройства, в которых повышение верности передаваемой информации достигается за счет введения обратной связи. Они в свою очередь делятся на системы с решающей (РОС), информационной (ИОС) и комбинированной (КОС) обратной связью. Сущность повышения верности в этих системах состоит в том, что при обнаружении искажений в передаваемом сообщении происходит запрос блока, в котором один или несколько неправильно принятых знака. В системах с РОС передаваемые данные кодируются избыточными кодами, позволяющими обнаруживать одиночные ошибки или пачки (группы) ошибок. Решение о необходимости повторения блока информации, в котором обнаружена ошибка, принимается приемником на основании анализа поступившей последовательности. В случае обнаружения в принятом блоке ошибок он стирается и по каналу обратной связи (ОС) приемная станция посылает сигнал «Запрос», на основании которого передатчик повторно выдает этот же блок. При безошибочном приеме блока данные поступают потребителю, а по каналу ОС передается сигнал «Подтверждение».

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

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

В зависимости от характера канала связи и формата передаваемых сообщений выделяют синхронный и асинхронный методы передачи информации. В случае использование синхронного метода фазирование происходит лишь один раз перед передачей посылки. При этом циклы с определенной длиной следуют друг за другом. В асинхронном (старт-стопном) методе есть четко выраженные начало (старт) и конец (стоп) кодовой комбинации, по которым и происходит синхронизация. Для фазирования применяют устройства фазирования по циклу или УФЦ.

Устройства фазирования по циклу (УФЦ) служат для определения начала блока информации (цикла) в принимаемой последовательности цифровых сигналов, что необходимо для правильного декодирования сообщения. Фазирование по циклам представляет собой процесс принудительного установления определенного фазового соотношения между распределителями на передающей и приемной сторонах АПД, при котором первый переданный в канал связи бит направляется в первую ячейку приемного регистра, второй - во вторую и т. д. Для осуществления процесса фазирования на приемной стороне необходимо иметь сведения о фазе передающего распределителя. В отличие от поэлементной синхронизации эти сведения необходимо посылать на приемную часть АПД в начале передачи, либо в течение всего сеанса связи. Способы фазирования по циклам можно разделить на две группы.

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

Маркерные (с непрерывной синхронизацией), при которых в течение всего сеанса связи по каналу совместно с информационными сигналами передаются специальные кодовые комбинации (маркеры), используемые для фазирования АПД по циклу.

Также различают синхронные и стартстопные способы фазирования. В синхронных - циклы фиксированной длины следуют непрерывно друг за другом, в связи с чем их начало и конец в сфазированном приемнике заранее известны. При стартстопном - цикл может начаться в произвольный момент времени, а длина его - быть произвольной. В промежутках между выдачей блоков передающий и приемный распределители находятся на «стопе». Запуск их происходит под действием команды «Старт», подаваемой перед началом блока в канал связи. Команда «Старт» может быть представлена отдельным сигналом или кодовой комбинацией.

Безмаркерное фазирование реализуется несколькими способами:

. Установление необходимой начальной фазы осуществляется путем передачи пусковых (фазирующих) комбинаций. В системах обмена информацией с обратной связью передаваемый синхроблок, состоящий из специальной фазирующей комбинации и дополненный сигналами типа «точки», которые предназначены для быстрого установления синхронизации по элементам, передается на приемную станцию до тех пор, пока по обратному каналу не будет получено подтверждение установления начальной фазы приемного распределителя. В системах одностороннего действия пусковая комбинация передается столько раз, пока она не будет зафиксирована приемником с заданной вероятностью. Очевидно, количество передачи блока в этом случае определяется максимальным уровнем помех в канале связи.

. Фазирование с адресно-пусковыми комбинациями. Такой способ применяется в системах обмена информацией, когда один и тот же канал используется для передачи данных нескольким потребителям, имеющим различные адреса. Фазирующий блок при этом способе дополняется адресной комбинацией, причем к структуре адресной части предъявляются такие же высокие требования по помехоустойчивости, как и к пусковым комбинациям.

Маркерные УФЦ (с непрерывной передачей фазирующих сигналов) в зависимости от вида маркерной комбинации реализуются различными способами:

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

. Устройства с явно выраженной фазирующей комбинацией, не совместимой с информационной последовательностью. Такие УФЦ называют устройствами с синхронизирующим префиксом. Кодовая комбинация маркера (префикса) выбирается такой, которая не встречается в информационной последовательности, в том числе при сдвиге ее на любое число разрядов. В системах, использующих этот способ фазирования, в информационный блок следует включать дополнительные элементы, исключающие появление в нем маркерных комбинаций.

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

Независимо от способа фазирования любая схема УФЦ должна содержать блок ввода в передаваемую последовательность маркерной комбинации на передающей стороне и блок выделения этой комбинации в приемнике.

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

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

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


1.3 Передача алфавитно-цифровой информации


Для однозначного представления информации, передаваемой от источника, применяется кодирование.

Кодирование - преобразование дискретного сообщения в дискретный сигнал, осуществляемое по определенному правилу.

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

Возможный вид сигнала в канале при передаче информации называется импульсным признаком.

Число импульсных признаков можно уменьшить до двух, применяя для нумерации команд двоичную систему счисления. Но при этом возрастает длина слова или число разрядов п. Например, для передачи 1000 сообщений п должно быть не менее 10, тогда N=2l0=1024.

Если число признаков q = 2 (0 и 1, а и б), то такие коды называют двоичными (бинарными), или двухпозиционными. Коды, у которых q?3, являются могопозиционными, или недвоичными - небинарными (троичными, четвертичными и т. п.).

Оказывается, надежность передачи значительно увеличивается при уменьшении числа и усилении различия признаков, несмотря на увеличение длины слова. Поэтому в настоящее время применяют, за редким исключением, двоичные коды (q = 2). Импульсные признаки для передачи таких кодов могут быть довольно разнообразными . Так, 1 может передаваться, например, или наличием импульса с амплитудой A, или импульсом длительностью ?, а 0 - отсутствием импульса или импульсом длительностью ?1. Могут быть использованы и другие импульсные признаки.

Комбинации двоичного кода можно записывать также буквами. Например, комбинация 10101 запишется как абаба. Таким образом, любая кодовая комбинация содержит определенный набор элементов или символов (1 и 0, а и б), которые называются буквами алфавита, а весь набор букв образует алфавит кода. Если для двоичного кода алфавит состоит только из двух символов, то для троичного кода их число увеличивается до трех (а, б, в, или 1, 2, 3), а в десятичном коде оно равно десяти.

Таким образом, основание кода q - это количество признаков или число букв (цифр). Кодовая комбинация, составленная из п символов или п элементов, называется кодовым словом (кодовым блоком), имеющим длину п или число разрядов п. Если длина всех кодовых комбинаций одинакова, то такие коды называют равномерными (комплектными). Например, код 001, 011, 101 является комплектным, а код 1, 11, 101 - некомплектным, так как слева от единиц нули не приписаны. В телемеханике обычно используют только равномерные коды. В двоичных кодах применяют также термин «вес кода», под которым понимают число единиц в кодовой комбинации. Так, вес кода 1101 равен трем, а вес кода 1000 - единице [3].

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

Телеграфный трёхрегистровый код МТК-2. Код 5-битовый (всего 32 разных кода), поэтому используются 3 разных регистра (русский, латинский, цифры), переключаемые управляющими символами РУС, ЛАТ, ЦИФ. Букв Ъ и Ё нет; вместо буквы Ч использовали цифру 4.

МТК-2 основан на международном телеграфном коде № 2 (ITA2), рекомендованном Международным консультативным комитетом по телефонии и телеграфии в 1932 г. (в международном коде 00000 не используется).


Таблица 1.1 - Кодовые комбинации МТК-2

КодЛат.Рус.Циф.КодЛат.Рус.Циф.11000AА-11101QЯ110011BБ?01010RР401110CЦ:10100SС'10010DД00001TТ510000EЕЗ11100UУ710110FФЭ01111VЖ=01011GГШ11001WВ200101HХЩ10111XЬ101100IИ810101YЫ611010JЙЮ10001ZЗ+11110KК(00010CR01001LЛ)01000LF00111MМ.11111ЛАТ00110NН,11011ЦИФ00011OО900100SP01101PП000000РУС

Соответствие между английским и русским регистрами, принятое в МТК-2, было использовано при создании компьютерных кодировок КОИ-7 и КОИ-8.

КОИ-7 - это семибитная кодировка для русского языка, использующая переключение режимов. Для переключения в русский режим использовался управляющий символ 0xE (SO, РУС), а для возврата в латинский - символ 0xF (SI, ЛАТ). Русский режим существовал в двух вариантах - с заглавными и строчными буквами или только с заглавными, но зато и русскими, и латинскими одновременно (во втором варианте обычно обходились без переключения). Буквы Ё не было; отсутствовала также заглавная буква Ъ.

КОИ-8 (код обмена информацией, 8 битов), KOI8 - восьмибитовый стандарт кодирования символов в информатике. Разработан для кодирования букв кириллических алфавитов. Разработчики КОИ-8 поместили символы русского алфавита в верхней части расширенной таблицы ASCII таким образом, что позиции кириллических символов соответствуют их фонетическим аналогам в английском алфавите в нижней части таблицы. Это означает, что если в тексте, написанном в КОИ-8, убирать восьмой бит каждого символа, то получается «читабельный» текст, хотя он и написан латинскими символами. Например, слова «Русский Текст» превратились бы в «rUSSKIJ tEKST». Как побочное следствие, символы кириллицы оказались расположены не в алфавитном порядке. Существует несколько вариантов кодировки КОИ-8 для различных кирилических алфавитов. Русский алфавит описывается в кодировке KOI8-R, украинский - в KOI8-U. KOI8-R стал фактически стандартом для русской кириллицы в электронной почте [7].

1.4 Постановка задачи


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


Таблица 1.2 - Характеристики ГВП и остаточного затухания канала

F, КГц??, мс?a, ДбF, КГц??гр, мс?a, Дб0,12,55,532,70,030,40,31,914,122,90,050,120,51,22,553,10,130,60,70,60,73,30,281,20,90,350,053,50,480,81,10,180,93,70,660,91,30,151,83,90,841,61,50,050,84,11,12,21,70,050,054,31,32,841,900,644,51,63,882,10,050,14,71,854,72,30,050,24,92,365,332,50,031,28

Таблица 2.3 - Параметры разрабатываемой СПД

NварИсточник информацииКанал связиПримечаниеNОбъем?, с-1ТипРошКп1234567835104 МТК-22*10-6ПД10-23CRC, p(x)=140178

В графе 1 указан номер варианта задания.

Графы 2 - 4 содержат исходные данные об источниках информации:

-графа 2 - о количестве источников информации (предполагается, что все источники имеют одинаковые параметры);

-графа 3 - данные об информации, производимой каждым источником;

-графа 4 - данные о плотности потока поступления заявок на обслуживание от источников информации.

Графы 5 - 7 содержат данные о канале связи:

-графа 5 указывает тип канала связи (С - симплексный,Д - дуплексный, ПД - полудуплексный);

-в графе 6 указана вероятность ошибки одного двоичного символа (предполагается, что используется двоичный симметричный канал без памяти);

-в графе 7 помещены данные, характеризующие основные требования к качеству передачи информации: категория помехоустойчивости системы (Кп) согласно ГОСТ 16521-88 .

Графа 8 - данные о коде, используемом при передаче данных. CRC - контроль избыточным циклическим кодом [1].


Выводы к главе 1


1.объем информации от каждого источника - 104 МТК-5, то есть 5*104 бит. Очевидно, что передачу сообщения необходимо осуществлять поблочно;

2.в ПД системах для повышения помехоустойчивости необходимо применять РОС;

.для кодирования адреса 5-ти источников информации потребуется 3 бита;

.в каждом блоке число проверочных бит будет равно 12 (по наивысшей степени заданного полинома).



2. Расчет параметров и характеристик


2.1 Определение оптимальной скорости и вида модуляции


2.1.1 Определение оптимальной скорости модуляции

В соответствии с заданным вариантом строятся частотные характеристики канала: неравномерность остаточного затухания (рис. 2.1) и групповое время прохождения (рис.2.2)


Рисунок 2.1 - Неравномерность остаточного затухания канала


Рисунок 2.2 -Групповое время прохождения (ГВП) канала.


Характеристика остаточного затухания имеет колебательные отклонения, поэтому максимально возможное остаточное затухание необходимо брать в пределах от 1,74 до 2,6 дБ. Отметим на графике ?а=1,8 дБ. Ширина полосы пропускания канала равна ?Fк=FВ-Fн=3960-580=3380 Гц.

Максимальная скорость модуляции при использовании ЧМ, ФМ и АМ с двумя боковыми полосами:


Bпр = 0,7*?Fк.(2.1)


Bпр = 2366 Бод

Так как характеристика группового времени прохождения имеет четно-симметричный характер, то допустимая неравномерность ГВП в этом случае во всей полосе пропускания равна:

??грдоп ? .(2.2)


??грдоп ?0,42*10-3с.

По графику ГВП (рис. 2.2) видно, что в полосе ?Fк= 3380 Гц неравномерность времени запаздывания ??гр ?0,95мс, т.е. скорость Bпр = 2366 Бод без предварительной коррекции канала связи не может быть обеспечена из-за больших межсимвольных искажений.

Для нахождения оптимальной скорости передачи Bопт необходимо решить графически систему двух уравнений, одно из которых задано зависимостью вида B = k?Fk , a второе представлено графиком ?(?FK), построенным на основе характеристики ГВП при выполнении условий ??гр ? ?0. По АЧХ канала в необходимо определить ?Fk . Далее по формулам можно найти Bпр. Выбирая несколько значений ??гр , определить по ФЧХ при каждом из них соответствующее значение ?FK и, полагая ??гр?, построить зависимость В = ?(?FK). Точка пересечения зависимостей B = k?FK и В = ?(?FK) даст значение Вопт .

Составим таблицу для построения графика:


Таблица 2.1 - Определение оптимальной скорости модуляции.

??гр, мсFВ, ГцFн, Гц?Fк, ГцBпр, Бод0,423440850259023810,43410860255025000,373390880251027020,353370900247028570,33320960236033330,253260101022504000

На графике (рис. 2.3) четко видно, что система не имеет решения


Рисунок 2.3 -Определение оптимальной скорости модуляции.


Для нахождения скорости модуляции возможны следующие варианты:

1.использование фазового корректора для изменения ГВП канала;

2.уменьшение полосы используемых частот.

Рассмотрим оба варианта.

Способ 1:

Корректировка ГВП канала с помощью фазового корректора:


Таблица 2.2 -коррекция ГВП канала

F, КГц??гр, мсДо коррекцииПосле коррекции0,12,520,31,911,30,51,20,50,70,60,30,90,350,181,10,180,151,30,150,11,50,050,041,70,050,031,9002,10,050,012,30,050,022,50,030,032,70,030,032,90,050,043,10,130,07F, КГц??гр, мсДо коррекцииПосле коррекции3,30,280,183,50,480,223,70,660,33,90,840,374,11,10,434,31,30,64,51,60,94,71,851,4

По таблице 2.2 строим откорректированную частотную характеристику (рис. 2.4)


Рисунок 2.4 - Корректировка ГВП канала: 1- начальная характеристика; 2- откорректированная характеристика; 3- ??грдоп

С помощью фазового корректора ?Fк= 3380 Гц будет достигнута при ??гр ?0,4мс, при этом ??гр ???грдоп для требуемого диапазона частот, следовательно можно обеспечить максимальную скорость Bпр = 2366 Бод. Из ряда стандартных скоростей для передачи данных (ГОСТ 17422-82) выбираем ближайшую меньшую скорость модуляции В=1200 Бод.

Способ 2:

Дополним таблицу 2.1 значениями при ??гр >??грдоп :


Таблица 2.3 - Определение оптимальной скорости модуляции.

??гр, мсFВ, ГцFн, Гц?Fк, ГцBпр, Бод0,53510780273020000,63620700302016660,7375068030701428

Рисунок 2.5 - Определение оптимальной скорости модуляции


По графику (рис 2.5), максимальная скорость модуляции при использовании ЧМ, ФМ и АМ с двумя боковыми полосами по (2.1)

Bпр = 1950 Бод, при этом необходима полоса в 2785 Гц, а

??гр=1/Впр=5,1 мс.

Из ряда стандартных скоростей для передачи данных (ГОСТ 17422-82) выбираем ближайшую меньшую скорость модуляции В=1200 Бод.

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


2.1.2 Выбор типа модуляции

Вид модуляции в УПС для каждого конкретного случая проектирования выбирается на основе отдельных критериев, так как единого обобщенного критерия для сравнения для сравнения различных видов модуляции, которым можно было бы воспользоваться на практике, нет. В качестве таких критериев наиболее распространенными являются: помехоустойчивость, требуемая полоса частот, относительная сложность аппаратуры (по сравнению с двухполосной АМ). Решающим фактором при определении метода модуляции является его помехоустойчивость. Требуемая вероятность ошибочной регистрации может быть обеспечена путем применения различных методов модуляции, отличающихся удельной скоростью, сложностью аппаратурной реализации и другими параметрами. Наименьшей помехоустойчивостью обладают УПС с АМ. В то же время аппаратурная реализация такого УПС является самой простой.

Наибольшей помехоустойчивостью обладает ФМ. ЧМ занимает промежуточное значение по помехоустойчивости, а его реализация проще, чем ФМ. Преимуществом ЧМ является также независимость коэффициента ошибок от сдвига частоты в канале (до ±10Гц) и скачков фазы(до 40°). Эти же возмущения в фазовых УПС приводят к появлению ошибок [2].

Более высокую скорость передачи может обеспечить применение АМ с одной боковой полосой, но УПС с данным видом модуляции менее помехоустойчив, чем с двумя боковыми полосами и сложнее в технической реализации. Использование многопозиционных методов модуляции значительно увеличивает скорость передачи информации, но в то же время снижает помехоустойчивость системы. В данном случае ЧМ является более предпочтительной. Более точную оценку вида модуляции можно дать, зная отношение сигнал-шум.


2.2 Выбор формата сообщения


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

Передача сообщений от отправителя к получателю обычно осуществляется поблочно. Блок может содержать десятки и сотни символов (кодовых комбинаций)


Рисунок 2.6 - Общий формат передачи информации


В общем случае, для маркерного способа фазирования структура блока имеет следующий вид


Рисунок 2.7 - Общий формат блока информации


Уточним размеры и формат составляющих блока.


2.2.1 Определение структуры и размера маркера

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

При наличии искажений единичных элементов за счет высокого уровня помех в канале связи часть разрядов маркерной комбинации может исказиться, что приведет к невозможности обнаружения блока и потере информации. Чтобы избежать этого, следует решение о фиксировании l-разрядной маркерной комбинации принимать не только при полном совпадении всех разрядов, но и в случае если s элементов этой комбинации приняты неверно. Это приведет к повышению вероятности того, что маркерная комбинация может быть выделена из информационной последовательности, и в результате произойдет ложное фазирование. Достоверность этого события оценивается вероятностью того, что в случайной последовательности, входящей в состав блока, с равновероятным появлением «0» и «1» появится сочетание из l элементов, отличающихся от маркера не более чем на s бит [2].

Выбрав соответствующую длину маркера, можно обеспечит приемлемое значение вероятности ложного фазирования Pлф и вероятности пропуска МК


, ,(2.3)

, ,(2.4)


где P0 - вероятность ошибки при передаче одного двоичного символа.

Возьмем S=4 и построим график зависимости вероятности ложного фазирования маркера от его длины, учитывая, что по заданию P0=0,01.



Таблица 2.4 - Определение вероятности ложного фазирования

l, битPлф141100,377150,059200,0058250,00045300,00003350,00000017

По таблице 2.4 строим график


Рисунок 2.8 Определение оптимальной длины маркера


Требуемый класс помехоустойчивости - третий, то есть величина ложного фазирования, не должна превышать: . Проводим на графике вероятность ложного фазирования и находим пересечение с искомым графиком. Полученная точка- оптимальное значение длины маркера. В данном случае Lопт=31,8 бит. Берем ближайшее большее значение, то есть L=32 бита.

Таким образом, по формулам (2.3) и (2.4) получаем

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

Маркер можно передавать как целиком, так и по частям. Так как полученная длина маркера достаточно большая, то передавать маркерную комбинацию целиком будет невыгодно: слишком большие накладные расходы, а также существенное уменьшение эффективной скорости передачи. Исходную маркерную последовательность будем передавать за 4 блока, то есть по 8 бит за блок.

При выборе маркерной комбинации необходимо учитывать :

·структура МК не должна быть однородной;

·разряды начала и конца должны быть различны;

·структура не должна быть строго регулярной.

С учетом вышесказанных требований, получаем


11000100.01010011.00101011.11100010Рисунок 2.8 - структура маркера


2.2.2 Определение длины блока

По заданию информация проверяется избыточным циклическим кодом , то есть 12 проверочных бит. Для адресации 5 источников потребуется 3 бита.

При использовании РОС, по обратному каналу не передается номер блока, поэтому необязательно делать сквозную нумерацию блоков. Под номер блока достаточно отвести 2 бита, то есть циклически повторять нумерацию блоков от нуля до трех.

Избыточность уменьшается с длиной блока, поэтому, если необходимо обеспечить максимальную эффективную скорость передачи информации, то нужно увеличивать длину блока, в то же время при увеличении длины блока увеличивается и вероятность ошибки, а следовательно и повторной передачи блока. Оптимальная величина блока определяется из графика зависимости V = f (nб) при фиксированных Ро, nсл и r (увеличение длины блока приводит к увеличению задержки выдачи информации получателю и усложняет аппаратурную реализацию СПД).


,(2.5)


Где включает в себя длину маркерной комбинации (8 бит), число проверочных бит (12), номер блока (2 бита) и биты, отведенные под адрес источника (3). Задаваясь рядом значений nбл можно построить график зависимости Vэф/V = f(nбл):


Таблица 2.5 - Зависимость относительной эффективной скорости передачи от длины блока

nбл, БитVэф/V500,491000,711500,762000,782500,773000,753500,734000,74500,675000,63

В итоге получаем


Рисунок 2.9 - Определение оптимальной длины блока.


По графику (рис 2.9) получаем nбл_опт= 210 бит. Выбираем ближайшую длину информационной части блока из ряда [!!!] : k= 240 бит, тогда nбл=240+12+8+3+2=265 бит

Число блоков: Nбл=209.

Таким образом, предполагаемый формат блока будет иметь вид


Рисунок 2.10 - Структура блока


По заданию информация представлена в виде слов МТК-2, то есть каждое слово по 5 бит. В блоке будет передаваться по 48 слов МТК-2.


2.2.3 Формат ответного сообщения

При наличии обратного канала связи в большинстве случаев целесообразно использовать УЗО с ОС. Устройства с информационной ОС позволяют обнаруживать ошибки практически любой кратности, но к каналу обратной связи предъявляются такие же требования, как и к прямому. Поэтому У3O с ИОС наиболее эффективно могут быть использованы при скорости передачи 300/200 бит/с, так как УПС для такой скорости образуют в полосе канала ТЧ два идентичных двунаправленных дискретных канала.

Если передача должна осуществляться на скорости 600 бит/сек или выше, то эффективность использования канала связи УЗО с ИОС снижается, и в этом случае для повышения верности передачи применяют УЗО с РОС.

Так как заданная скорость передачи превышает 600 бит/с, то необходимо использовать РОС с применением помехоустойчивого кодирования.

Выбранный способ кодирования обеспечивает помехозащищенное кодирование с учетом заданной вероятности искажений.

Для начала определим все возможные виды ответного сообщения:

передача данных окончена;

запрос следующего блока информации, сигнал «Подтверждение»;

повторный запрос блока, сигнал «Запрос».

Таким образом потребуется 2 бита для описания вида сообщения:

- передача данных окончена;

- запрос следующего блока;

- повторный запрос блока;

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

сообщения небольшой длительности;

паузы между сообщениями больше, чем длина сообщения

Формат сообщения для передачи по обратному каналу с РОС будет иметь вид, представленный на рисунке


Рисунок 2.11 - Формат ответного сообщения.

Старт-1,5 бита, 0,5 бит - контрольная пауза, 1стоповый бит, информация - 2 бита


Для исправления ошибок используем дублирование информации. Такой метод прост в технической реализации и может обеспечить нужную вероятность ошибочного приема. Применим пятикратное дублирование. Таким образом, длина блока будет равна:1,5+0,5+10+1=13 бит.

Вероятность трансформации в данном случае


(2.6)


где p - вероятность ошибки.

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


2.3 Расчет среднего времени запаздывания информации


Время передачи для одного источника рассчитывается по (2.7)


(с)(2.7)


Время цикла передачи от N источников информации определяется по формуле (2.8)


(с)(2.8)


Среднее время ожидания сообщением обслуживания на выходе источника информации определяется по формуле (2.9)


(с)(2.9)


Время передачи для одного источника по обратному каналу

(с)

Время цикла передачи от N источников информации определяется по формуле (2.10)


.(2.10)


Время передачи для одного источника по прямому и обратному каналу:

=+ =59,3(с)

Время цикла передачи от N источников информации по прямому и обратному каналу определяется по формуле (2.10):

(с)

Среднее время ожидания сообщением обслуживания на выходе источника информации определяется по формуле (2.9):

(с)

Среднее время запаздывания информации определяется по
формуле:
(с)


Выводы к главе 2


Таким образом, были получены следующие данные, необходимые для дальнейшего проектирования:

üВычислена оптимальная скорость модуляции, на основе которой определена стандартная скорость 1200 Бод;

üОпределен вид модуляции - ЧМ;

üВычислена оптимальная длина маркера, разработана его структура (рис. 2.8);

üОпределена оптимальная длина блока, на основании которой выбрана длина информационной части из стандартного ряда ( рис.2.9);

üРазработан формат прямого и обратного сообщения (рис 2.10 и 2.11)

üРассчитаны основные временные параметры системы.



3. Разработка структурных схем и алгоритмов функционирования СПД


3.1 Разработка структурной схемы передающего устройства


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

Основными блоками являются:

oустройство управления (УУ);

oсчетчик повторных запросов (СПЗ);

oблок формирования информации (БФИ);

oкодирующее устройство (КУ);

oблок начальной установки (БНУ);

oформирователь тактовых импульсов (ФТИ);

oдатчик номера блока (ДНБ);

oдатчик маркерной комбинации (ДМК);

oанализатор обратного канала связи (АОКС);

oблок аварийной сигнализации и индикации (БАСИ);

oключевая схема (Кл);

oформирователи сигналов обмена (ФСО1 и ФСО2);

oбуферный накопитель (БН);

oдатчик адреса источника (ДА);

oблок преобразования передаваемой информации (БППИ);

Основным блоком УЗО является устройство управления (УУ), которое управляет работой всех остальных блоков. Управляющие воздействия на выходе УУ вырабатываются на основе анализа входящих сигналов и зависят от временной позиции в пределах информационного блока. Переключение УУ происходит под действием тактовых импульсов, формируемых ФТИ. Для установления устройств в начальное состояние применяется блок начальной установки. Данные, поступающие с источников, отправляются в БППИ, где происходит их преобразование к виду, подходящему для обработки в КУ. Обработанные данные поступают в буферный накопитель, затем объединяются с адресом источника, поступающим с ДА, маркерной комбинацией, формируемой ДМК, и номером блока, поступающим с ДНБ. Эти данные составляют информационную последовательность от источника, и ее формирование происходит в БФИ.

Затем информационная последовательность поступает на кодирующее устройство КУ, в котором к информационной последовательности добавляются проверочные биты. Отметим, что биты, отведенные под маркер, не кодируются, так как при расчетах длины маркера оговорено, что он может искажаться (до 4-х ошибок). После добавления проверочных бит в конец блока информация передается в УПС. В конце каждого блока УУ опрашивает состояние АОКС и в случае наличия сигнала «Подтверждение» осуществляет дальнейшую передачу последующих блоков либо при наличии сигнала «Запрос» прекращает ввод информации и выдает повторно из БН блок, в котором обнаружена ошибка.

Для индикации аварийных ситуаций в схему включен блок аварийной сигнализации и индикации (БАСИ). Также этот блок служит для индикации состояния СПД. Блок аварийной ситуации должен индицировать следующие возможные состояния: включение питания АПД; передача или прием; нет ответа с приемной стороны; ошибка передачи.

Для анализа поступающей информации по обратному каналу служит анализатор обратного канала связи (АОКС). Из обратного канала связи на АОКС поступает закодированное сообщение. Декодирование поступившей информации осуществляется мажоритарным способом. Если поступил сигнал «Запрос», то АОКС увеличивает значение счетчика числа повторных запросов на единицу. Если сигнал «Запрос» посылается более, чем заданное число раз(назовем его Nз), то УУ выдает на БАСИ код ошибки.

Для реализации передачи от нескольких источников, УУ должно циклически опрашивать источники информации (ИИ) о готовности их передавать информацию. Последовательно проверяются адреса источников, до момента нахождения источника, готового к передаче информации. По адресу происходит коммутация канала с нужным источником, с которого данные поступают для обработки.

Для работы схемы необходим блок временного хранения данных, в который будет помещаться информация, полученная от одного из источников информации. Данные будут храниться там до передачи их приемнику. Для временного хранения данных служит буферный накопитель (БН). Для связи УУ с УПС и источниками информации предусмотрены ФСО1 и ФСО2.

Ключевая схема представляет собой мультиплексор со стробированием, где:

·адресные входы - код номера источника (поступает со счетчика адреса);

·информационные сигналы - информация с источников;

·сигнал стробирования - связь с УУ.

Структурная схема передающей части СПД выглядит следующим образом



Рисунок3.1 - Функциональная схема передающей части СПД.


3.2 Алгоритм функционирования приемного устройства


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

Далее проверяется обратный канал, Происходит прием ответного сигнала. При поступлении сообщения происходит его декодирование и проверяется верность доставки данных. Если сообщение от источника доставлено с ошибками, подается сигнал на устройство управления и СПЗ, происходит повторная передача блока информации. При отсутствии ошибок передается следующий блок информации. Если ответное сообщение не приходит в течение заданного интервала времени, УУ подает код аварии в БАСИ. Если данные больше передавать не требуется, системе можно отключить питание. Алгоритм передающей части СПД:


Рисунок 3.2 - Блок-схема алгоритма передающей части


3.3 Разработка структурной схемы приемного устройства


Структурная схема приемной части СПД содержит следующие блоки:

-устройство управления (УУ);

-блок начальной установки (БНУ);

-формирователь тактовых импульсов (ФТИ);

-блок аварийной сигнализации и индикации (БАСИ);

-регистр маркерной комбинации (РгМК);

-регистр служебной комбинации (РгСК);

-входной регистр (ВхРг);

-дешифратор маркерной комбинации (ДшМК)

-декодирующее устройство (ДКУ);

-буферный накопитель (БН);

-формирователь сообщения обратной связи(ФСОС);

-блок анализа служебной комбинации (БАСК);

-блок преобразования и выдачи информации (БПВИ);

-формирователи сигналов обмена (ФСО1 и ФСО2);

Работой приемной части управляет устройство управления. Так же, как и в передающей части, необходимо ввести в схему блоки БАСИ, ФТИ, БНУ. Для выявления маркера необходимы дешифратор и регистр маркерной комбинации. Информация, пришедшая с УПС, поступает в регистр маркерной и служебной комбинации, а также во входной регистр. По сигналу УУ, БАСК анализирует номер блока и адрес источника, после чего выдает ответ в УУ. Декодирующее устройство вычисляет синдром ошибок и информирует УУ о наличии или отсутствии ошибок. При безошибочной передаче УУ подает сигнал на БН, и данные поступают в БПВИ. В БПВИ происходит преобразование информации к виду, пригодному для ООД.

Так как канал передачи полудуплексный, приемное устройство должно отправить приемному устройству отчет о приеме блока информации. Для этого приемник формирует квитанцию и отправляет ее по обратному каналу. Для формирования квитанции в схему добавлен ФСОС.

Помимо анализа верности передачи служебной информации, БАСК подсчитывает общее число верно переданных блоков и по окончании передачи данных от источника формирует УУ и по обратному каналу отправляется сообщение «передача окончена».

Существует возможность синхронизации ГТИ с УПС. С помощью ФСО1 реализуется связь между УПС и УУ, а с помощью ФСО2 - между УУ и ООД.

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


Рисунок 3.3 - Структурная схема приемной части


3.4 Алгоритм функционирования приемного устройства


Работа передающей части УЗО начинается с включения питания. Включение питания индицируется блоком аварийной сигнализации и индикации. Далее сигналы с блока начальной установки передаются на управляющее устройство, осуществляется сброс в ноль буферного накопителя и входных регистров, кодирующего устройства, БАСК.

После включения питания передающая и приемная части должны синхронизировать свою работу. При маркерном способе передачи поиск маркерной комбинации производится путем постоянного анализа поступающей последовательности. Если во время приема одного кадра следующая маркерная комбинация не приходит через заданное время, то УУ принимает решение о неисправности и выдает код ошибки в БАСИ.

При выявлении МК, БАСК формирует УУ об отсутствии или наличии ошибок в служебной информации. Если ошибки не обнаружены, приемное устройство принимает данные и декодирует их. При успешном декодировании данные поступают далее через БПВИ к приемнику информации. Если имеются ошибки в служебной комбинации или декодирование неуспешно, по обратному каналу посылается квитанция об ошибке (сигнал «Запрос»). При безошибочном приеме отправляется сигнал «Подтверждение».

После окончания передачи кадра, приемное устройство отправляет по обратному каналу сигнал «передача окончена» и начинает поиск маркерной комбинации следующего кадра информации.

Таким образом, алгоритм работы приемной части будет следующим:


Рисунок 3.4 - Блок-схема алгоритма приемной части


3.5 Синтез схем кодирующего и декодирующего устройств


Кодирующее устройство циклических кодов строится в соответствии с выбранным полиномом.

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

). умножить кодируемую последовательность на хr, где r равно наивысшей степени образующего полинома;

). полученное произведение поделить на образующий полином;

). полученный остаток от деления суммировать с кодируемой последовательностью, умноженной на хr.

Проверочными битами являются биты остатка от деления кодируемой последовательности на образующий полином. Суммирование кодируемой последовательности, умноженной на хr, с остатком от деления приводит к тому, что закодированная последовательность нацело делится на образующий полином. Это свойство используется при построении декодирующих устройств.

По заданию, образующий полином Р(х) выбран двенадцатой степени. Следовательно, при кодировании информационной последовательности необходимо сначала умножить ее на 1012, а затем поделить на образующий полином; полученный остаток сложить с информационной последовательностью и получить закодированную последовательность.

Вид выбранного образующего полинома:


P(x) = x12 +x11+x3+x2 +x+1.


Таким образом, структурная схема декодера



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


В этой схеме имеются два ключа К1 и К2. В исходном состоянии ключ К1 находится в положении «1», ключ К2 замкнут. При этом к информационных бит старшим разрядом вперед поступают на выход схемы и через сумматор на схему деления на образующий полином Р(х). После передачи к-символов схема управления, представленная УУ, переключает ключ К1 в положение «2», а ключ К2 размыкает. На этом деление заканчивается и за r-тактов осуществляется выдача остатка от деления .

В курсовом проекте необходим лишь контроль циклическим кодом, то есть контроль ошибок. Для обнаружения ошибки достаточно разделить принятую последовательность на образующий полином и проанализировать остаток. При нулевом остатке ошибок при передаче не обнаружено, в противном случае в принятой последовательности содержатся ошибки и требуется повторная передача блока. Аналогично кодеру, n-бит старшим разрядом вперед поступают на вход схемы деления на образующий полином Р(х), при этом ключ К1 в положении «1». После передачи n-символов схема управления переключает ключ К1 в положение «2» и остаток за r тактов поступает на УУ. Структурная схема декодера будет иметь вид.



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


Выводы к главе 3


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



4. Разработка кодирующего и декодирующего устройства


4.1 Описание программы


Общие сведения

В соответствии с заданием на курсовой проект был разработан программный продукт «Передача и прием информации с использованием CRC - кода», наглядно демонстрирующий работу кодера и декодера циклического кода. Приложение было разработано в среде программирования C++ Builder 5.0. Компиляция выполнена без использования динамических библиотек и runtime пакетов с целью обеспечения переносимости программы на компьютер, где не установлена среда C++ Builder 5.0. Для функционирования приложения на компьютере должна быть установлена операционная система семейства Microsoft Windows. Аппаратные требования приложения невелики, благодаря чему оно может быть использовано и на «слабых» компьютерах.

Функциональное значение

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

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

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

Программный продукт позволяет вводить данные с клавиатуры или загружать из файла. Исходными данными являются:

·информационная последовательность,

·образующий полином P(x),

·вектор ошибок

Ввод названных данных производится в двоичном виде (нули и единицы), что позволяет наглядно анализировать работу системы.

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

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

Математическая постановка задачи

Циклические коды находят наибольшее распространение в системах передачи данных с решающей обратной связью, что обусловлено их высокими корректирующими свойствами, сравнительно простой реализацией, невысокой избыточностью. Особенно они эффективны при обнаружении пакетов ошибок. Циклические коды относятся к блочным систематическим кодам, в которых каждая комбинация кодируется самостоятельно в виде блока таким образом, что информационные k и проверочные г элементы всегда находятся на определенных местах. Для упрощения процедуры кодирования и декодирования проверочные биты размещают в конце блока. Кодирование передаваемого сообщения осуществляется умножением двоичной последовательности G(x) на одночлен хr, имеющий ту же степень, что и образующий полином Р(х), с добавлением к этому произведению остатка R(x), полученного после деления произведения G(x)*xr на образующий полином, т. е. передаваемое в канал связи сообщение F(x) имеет вид:


F(x) = G(x)* xr+R(x). (4.1)


При декодировании принимаемая последовательность F(x) снова делится на образующий полином Р(х). Полученный нулевой остаток R(x)=0 свидетельствует об отсутствии ошибок в принятом блоке, а отличие от нуля - о наличии ошибок.

Описание логической структуры

Для моделирования работы кодера и декодера циклического кода в составы программы был включен класс Coder. В состав класса входят следующие переменные:


Таблица 4.1 - Переменные класса Coder

Имя переменнойТипКомментарииStep_PintegerСтепень образующего полиномаVОбъем передаваемой информацииiСчетчики в циклахjInfbool *Указатель на массив информацииPolУказатель на массив представления полиномаReg_CodУказатель на массив представления кодераReg_DecУказатель на массив представления декодераErrУказатель на вектор ошибок

Для представления информации в программе используется тип bool. Это приводит к увеличению объема занимаемой памяти, но в данном случае оно несущественно, так как передается лишь 240 бит. Каждый элемент массива Reg_Cod и Reg_Dec соответствует одной ячейке регистра.

Прототипы функций класса Coder:

·void Init();

·bool* getInf();

·bool* getPol();

·bool* getReg();

·void setInf(bool* );

·void setPol(bool* );

·void setReg(bool* );

·void setSt(int);

·int getSt();

·int getV();

·bool* getDec();

·bool* getErr();

·void setDec(bool* );

·void setErr(bool* );

·void coder::Cod();

·void coder::Decod().

Функция Init() - конструктор класса.

Большинство функций класса предназначены для «извлечения» или изменения значения закрытых переменных класса. Наибольший практический интерес представляют функции кодирования (void Cod() ) и декодирования (void Decod() ) информации.



Рисунок 4.1 - Блок-схема алгоритма функции Cod()



Рисунок 4.2 - Блок-схема алгоритма функции Decod()


Моделирование работы системы происходит в несколько этапов:

1.инициализация образующего полинома;

2.формирование информационной последовательности;

.кодирование;

.наложение вектора ошибок;

.декодирование.

Все перечисленные этапы отражены в интерфейсе программы.


Рисунок 4.3 - Интерфейс программы.


4.2 Тестирование программной реализации


Пусть объем исходной информации равен 1 байту: I=10111011

Полином четвертой степени:

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

Тест первый - нулевой вектор ошибок


1011101100001100111001111001100110111110011110011001101001100111000110110011Рисунок 4.4 - Кодирование исходной последовательности


Остаток от деления в двоичном виде: 0011.


101110110000000000000011101110110011

Для декодирования разделим информацию на образующий полином


1011101100111100111001111001100110111110011110011001101011100011011110110000Рисунок 4.5 Декодирование информационной последовательности (нулевой вектор ошибок)

Нулевой вес остатка свидетельствует об отсутствии ошибок в принятой последовательности.

Тест второй (одиночная ошибка).

Исказим третий бит закодированной последовательности:


100110110011110011100110100110011101111001101001100111011110010101Рисунок 4.6 - Декодирование информационной последовательности (одна ошибка)


Так как вес остатка не равен нулю, то информация передана с ошибками.

Тест третий (двойная ошибка).

Исказим 4-й и 5-й бит передаваемой последовательности


10100011001111001110011101011001111101100111101110011001Рисунок 4.7 - Декодирование информационной последовательности (две ошибки)

Остаток от деления свидетельствует о наличии ошибок в принятой последовательности.

Введем предложенные данные для тестирования программной реализации


Рисунок 4.8 - Тестирование программной реализации (первый тест)


Рисунок 4.9 - Тестирование программной реализации (второй тест)


Рисунок 4.10 - Тестирование программной реализации (третий тест)


Результаты тестирования полностью совпали с теорией, что свидетельствует о верной работе программной реализации.

Выводы к главе 4


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

Листинг программы приведен в приложении C.



Заключение


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



Приложение А


Список используемых сокращений


СПД - система передачи данных.

УФЦ - устройство фазирования по циклу.

ТИ - система телеизмерения.

ТС - система телесигнализации.

ТУ - система телеуправления.

ТУ-ТС - система телеуправления и телесигнализации.

ТИ-ТС - система телеизмерения и телесигнализации.

ОС - обратная связь.

ИОС - информационная обратная связь.

РОС - решающая обратная связь.

КОС - комбинированная обратная связь.

ГВП - групповое время прохождения.

УУ - устройство управления.

СПЗ счетчик повторных запросов.

БФИ - блок формирования информации.

КУ - кодирующее устройство.

БНУ - блок начальной установки.

ФТИ - формирователь тактовых импульсов.

ДНБ - датчик номера блока.

ДМК - датчик маркерной комбинации.

АОКС - анализатор обратного канала связи.

БАСИ - блок аварийной сигнализации и индикации.

Кл - ключевая схема.

ФСО - формирователь сигналов обмена.

ФК - фазовый корректор.

БН - буферный накопитель.

ДА - датчик адреса источника.

БППИ - блок преобразования передаваемой информации.

РгМК - регистр маркерной комбинации.

РгСК - регистр служебной комбинации.

ВхРг - входной регистр.

ДшМК - дешифратор маркерной комбинации.

ДКУ - декодирующее устройство.

ФСОС - формирователь сообщения обратной связи.

БАСК - блок анализа служебной комбинации.

БПВИ - блок преобразования и выдачи информации.



Приложение Б


Листинг программы


Coder.h

#ifndef coderH

#define coderH

//-----------------coder

{protected::Step_P;//степень полинома

bool *Inf;//указатель на массив информационных элеметов*Pol;//указатель на массив представления полинома

bool *Reg_Cod;*Err;

bool *Reg_Dec;//регистры кодераV;//объем информации

public:i,j;//счетчикиInit();* getInf();* getPol();* getReg();setInf(bool* );setPol(bool* );setReg(bool* );setSt(int);getSt();getV();* getDec();* getErr();setDec(bool* );setErr(bool* );coder::Cod();coder::Decod();};.cppPACKAGE coder *My;

//---------------------------------------------------------------------------

#endif

#include <vcl.h>

#pragma hdrstop

#include "coder.h"package(smart_init)coder::Init()

{ Inf=0; Pol=0; Reg_Cod=0; Step_P=0; Reg_Dec=0; Err=0; V=12; }* coder::getInf(){ return Inf; }* coder::getPol(){ return Pol; }* coder::getReg(){ return Reg_Cod; }coder::setInf(bool* A){ Inf=A; }coder::setPol(bool* A){ Pol=A;}coder::setReg(bool* A) { Reg_Cod=A; }coder::setSt(int B){ Step_P=B; }coder::getSt() { return Step_P; }coder::getV(){ return V; }* coder::getDec(){ return Reg_Dec; }* coder::getErr(){ return Err;}coder::setDec(bool* A) { Reg_Dec=A;}coder::setErr(bool* A) { Err=A; }coder::Cod()

{if(Inf!=0&&Pol!=0)

{ if (Reg_Cod==0) Reg_Cod=new bool[Step_P];(i=0;i<Step_P;i++)

{ Reg_Cod[i]=0; }//Начальное заполнение регистра

for(i=0;i<V-Step_P;i++)

{ bool Scan=Inf[i]^Reg_Cod[0];(Scan==0)

{for(j=0;j<Step_P;j++){ Reg_Cod[j]=Reg_Cod[j+1]; }_Cod[Step_P-1]=0; }(Scan==1)

{ for(j=0;j<Step_P;j++){ Reg_Cod[j]=Reg_Cod[j+1]^Pol[j+1]; }_Cod[Step_P-1]=1; }}(i=0;i<Step_P;i++) { Inf[V-Step_P+i]=Reg_Cod[i]; } } }

//-------------------------------------------------------------------------------coder::Decod()

{ if(Inf!=0&&Pol!=0&&Err!=0)

{ Reg_Dec=new bool[Step_P];(i=0;i<Step_P;i++) { Reg_Dec[i]=0; }(i=0;i<V;i++) { bool Scan=Reg_Dec[0];(Scan==0)

{for(j=0;j<Step_P-1;j++) { Reg_Dec[j]=Reg_Dec[j+1]; }_Dec[Step_P-1]=Inf[i]^Err[i]; }(Scan==1)

{ for(j=0;j<Step_P-1;j++) { Reg_Dec[j]=Reg_Dec[j+1]^Pol[j+1]; }_Dec[Step_P-1]=(Inf[i]^Err[i])^1; } } } }.cpp

#pragma hdrstop

#include <stdio.h>

#include "Unit3.h"

#include "Unit2.h"

#include "coder.h"

#include <math.h>

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"*Form1; coder * My;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{ My=new coder; My->Init(); }

//---------------------------------------------------------------------------__fastcall TForm1::Button1Click(TObject *Sender)

{Randomize(); My->setSt(StrToInt(Edit1->Text));

int Step_P=My->getSt();//считывание степени полинома

StringGrid2->ColCount=Step_P+1;(My->getPol()!=0) delete [Step_P+1] My->getPol();//если массив не инициализирован* Pol=new bool[Step_P+1]; Pol[0]=1; Pol[Step_P]=1;(i=1;i<Step_P;i++) { Pol[i]=random(2); }//инициализация полинома(i=0;i<Step_P+1;i++)

{ StringGrid2->Cells[i][1]=IntToStr(Pol[i]);->Cells[i][0]=IntToStr(Step_P-i); }//вывод на экран->Visible=true; Label2->Visible=true; My->setPol(Pol); }

//---------------------------------------------------------------------------__fastcall TForm1::Inversia_pol(TObject *Sender)//инверсия элемента в массиве полинома

{My->getPol()[Scan]=StrToInt(StringGrid2->Cells[Scan][1])^1;->Cells[Scan][1]=IntToStr(My->getPol()[Scan]);}

//---------------------------------------------------------------------------__fastcall TForm1::scan(TObject *Sender, int ACol, int ARow,bool &CanSelect)

{Scan=ACol;}

//---------------------------------------------------------------------------__fastcall TForm1::Button2Click(TObject *Sender)

{ int Step_P=My->getSt();(RadioButton1->Checked==true&&My->getSt()<32&&My->getSt()>2)//Заполнение информационного массива random

{ bool* Inf=My->getInf();(Inf==0) Inf=new bool[240];->ColCount=240;(i=0;i<My->getV()-Step_P;i++)//Инициализация информации

{ Inf[i]=random(2); StringGrid1->Cells[i][0]=IntToStr(Inf[i]); }(i=My->getV()-Step_P;i<My->getV();i++)

{ Inf[i]=0; StringGrid1->Cells[i][0]=IntToStr(Inf[i]); }//Умоножаем на степень полинома->Visible=true; My->setInf(Inf); }(RadioButton2->Checked==true&&My->getSt()<32&&My->getSt()>2)//загрузка из файла

{bool* Inf=My->getInf(); OpenDialog1->DefaultExt="isk"; OpenDialog1->FilterIndex=2;(OpenDialog1->Execute())

{ FILE *P=fopen(OpenDialog1->FileName.c_str(),"r"); fseek(P,0l,0);a[33]={0}; i=0;{ a[i]=fgetc(P); i++; } while(feof(P)==0&&i<33);(Inf==0) Inf=new bool[My->getV()]; char A=128;

for(i=0;i<30;i++)//вывод на экран

{A=128;(j=0;j<8;j++)

{ Inf[8*i+j]=((a[i]&A)>>(7-j))&0x1; A=A/2; } }->ColCount=My->getV(); StringGrid4->ColCount=My->getV();(i=0;i<My->getV();i++)

{StringGrid4->Cells[i][0]=IntToStr(Inf[i]); StringGrid1->Cells[i][0]=IntToStr(Inf[i]); }->Visible=true; StringGrid4->Visible=true;>setInf(Inf); fclose(P); } } }

//---------------------------------------------------------------------------__fastcall TForm1::Inversia_inf(TObject *Sender)

{My->getInf()[Scan]=StrToInt(StringGrid1->Cells[Scan][0])^1;->Cells[Scan][0]=IntToStr(My->getInf()[Scan]);}

//---------------------------------------------------------------------------__fastcall TForm1::Button3Click(TObject *Sender)//кодирование информации

{ My->Cod(); StringGrid3->ColCount=My->getSt(); StringGrid3->Visible=true;

for(i=0;i<My->getSt();i++)//Вывод на экран регистров кодера

{StringGrid3->Cells[i][0]=IntToStr(My->getReg()[i]); }*Err=My->getErr();(Err==0) { Err=new bool[My->getV()]; }->ColCount=My->getV();(i=0;i<My->getV();i++)

{ Err[i]=0; StringGrid4->Cells[i][0]=IntToStr(My->getInf()[i]);->Cells[i][1]=IntToStr(0); }->Visible=true; My->setErr(Err); }

//---------------------------------------------------------------------------__fastcall TForm1::Inversia_err(TObject *Sender)

{My->getErr()[Scan]=StrToInt(StringGrid4->Cells[Scan][1])^1;->Cells[Scan][1]=IntToStr(My->getErr()[Scan]); }

//---------------------------------------------------------------------------__fastcall TForm1::Button4Click(TObject *Sender)//декодирование

{ My->Decod(); StringGrid5->ColCount=My->getSt(); StringGrid5->Visible=true;(i=0;i<My->getSt();i++) { StringGrid5->Cells[i][0]=IntToStr(My->getDec()[i]); }

int E=0 ;//наличие ошибки(i=0;i<My->getSt();i++)//проверка регстра декодара на наличие "1"

{ if(My->getDec()[i]==1) E=1; }

if (E==0) Label6->Caption="Ошибок не обнаружено" ;//нулевой вес остатка(E==1) Label6->Caption="Передача произведена с ошибками" ; }

//---------------------------------------------------------------------------__fastcall TForm1::BitBtn2Click(TObject *Sender)//Сохранение полинома в файл

{ SaveDialog1->DefaultExt="pol"; SaveDialog1->FilterIndex=2;(SaveDialog1->Execute())

{FILE *P=fopen(SaveDialog1->FileName.c_str(),"w+"); fseek(P,0l,0);(My->getPol()!=0)

{char A=0; int B=128;(i=0;i<=(My->getSt())/8;i++)

{ A=0; B=0x80;(j=0;j<8;j++)

{ if(8*i+j<=My->getSt()) A=A|((My->getPol()[i*8+j])*B);=B/2; }(A,P); }(P); }}}

//---------------------------------------------------------------------------__fastcall TForm1::BitBtn1Click(TObject *Sender)//Загрузка полинома из файла

{ OpenDialog1->DefaultExt="pol"; OpenDialog1->FilterIndex=2;(OpenDialog1->Execute())

{ FILE *P=fopen(OpenDialog1->FileName.c_str(),"r"); fseek(P,0l,0);>setSt(StrToInt(Edit1->Text)); char a[4]={0}; i=0;{ a[i]=fgetc(P); i++; } while(feof(P)==0&&i<4);(My->getPol()!=0) delete [My->getSt()+1] My->getPol();->ColCount=My->getSt()+1; bool* Pol=new bool[32]; char A=128;

for(i=0;i<4;i++)//вывод на экран

{ A=128;(j=0;j<8;j++)

{Pol[8*i+j]=((a[i]&A)>>(7-j))&0x1; A=A/2; } }(i=0;i<=My->getSt();i++)

{StringGrid2->Cells[i][0]=IntToStr(My->getSt()-i); StringGrid2->Cells[i][1]=IntToStr(Pol[i]); }->Text=StrToInt(My->getSt()); StringGrid2->Visible=true; Label2->Visible=true;>setPol(Pol); fclose(P); }}

//---------------------------------------------------------------------------__fastcall TForm1::BitBtn3Click(TObject *Sender)//запись информации в файл

{SaveDialog1->InitialDir=GetCurrentDir(); SaveDialog1->DefaultExt="inf";->FilterIndex=2;(SaveDialog1->Execute())

{ FILE *P=fopen(SaveDialog1->FileName.c_str(),"w+");fseek(P,0l,0);(My->getInf()!=0)

{char A=0; int B=128;(i=0;i<32;i++)

{ A=0; B=0x80;(j=0;j<8;j++)

{ A=A|((My->getInf()[i*8+j])*B); B=B/2; }(A,P); }}(P); }}

//---------------------------------------------------------------------------__fastcall TForm1::BitBtn4Click(TObject *Sender)//сохранение значений регистров кодера

{ SaveDialog1->DefaultExt="cod"; SaveDialog1->FilterIndex=2;(SaveDialog1->Execute())

{FILE *P=fopen(SaveDialog1->FileName.c_str(),"w+"); fseek(P,0l,0);(My->getReg()!=0)

{ char A=0; int B=128;(i=0;i<=(My->getSt())/8;i++)

{ A=0; B=0x80;(j=0;j<8;j++)

{ if(8*i+j<My->getSt()) A=A|((My->getReg()[i*8+j])*B);=B/2; }(A,P); }(P); }}}

//---------------------------------------------------------------------------__fastcall TForm1::BitBtn6Click(TObject *Sender)//сохранение значений регистров декодера

{SaveDialog1->DefaultExt="dec"; SaveDialog1->FilterIndex=2;(SaveDialog1->Execute())

{ FILE *P=fopen(SaveDialog1->FileName.c_str(),"w+"); fseek(P,0l,0);(My->getDec()!=0)

{ char A=0; int B=128;(i=0;i<=(My->getSt())/8;i++)

{ A=0; B=0x80;(j=0;j<8;j++)

{ if(8*i+j<My->getSt()) A=A|((My->getDec()[i*8+j])*B); B=B/2; }(A,P); }(P); }}}

//---------------------------------------------------------------------------__fastcall TForm1::BitBtn5Click(TObject *Sender)//Сохранение вектора ошибок

{ SaveDialog1->DefaultExt="err"; SaveDialog1->FilterIndex=2;(SaveDialog1->Execute())

{ FILE *P=fopen(SaveDialog1->FileName.c_str(),"w+"); fseek(P,0l,0);(My->getErr()!=0)

{char A=0; int B=128;(i=0;i<32;i++)

{ A=0; B=0x80;(j=0;j<8;j++)

{ A=A|((My->getErr()[i*8+j])*B); B=B/2; }(A,P); }}(P); }}

//---------------------------------------------------------------------------__fastcall TForm1::BitBtn7Click(TObject *Sender)//Считывание вектора ошибок

{ bool* Err=My->getErr(); OpenDialog1->DefaultExt="err"; OpenDialog1->FilterIndex=2;(OpenDialog1->Execute())

{FILE *P=fopen(OpenDialog1->FileName.c_str(),"r"); fseek(P,0l,0); char a[33]={0}; i=0;{ a[i]=fgetc(P); i++;} while(feof(P)==0&&i<33);(Err==0) Err=new bool[My->getV()];A=128;(i=0;i<30;i++) {A=128;//вывод на экран(j=0;j<8;j++)

{ Err[8*i+j]=((a[i]&A)>>(7-j))&0x1; A=A/2; } }->ColCount=240;(i=0;i<My->getV();i++)

{StringGrid4->Cells[i][1]=IntToStr(Err[i]); }->Visible=true; My->setErr(Err); fclose(P); }}}


Введение Каждое из трех предшествующих столетий ознаменовалось появлением какой-то технологии, развитие которой определяло прогресс в этом столетии. XVII

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ