Министерство образования Российской Федерации

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

КОДИРОВАНИЕ СООБЩЕНИЙ

Методические указания к лабораторным работам для студентов
III-V курсов факультета автоматики и вычислительной техники
(специальностей 210100 и 220400) всех форм обучения

НОВОСИБИРСК
2002

Составители: , ст. преп.

, доц.

Рецензент , канд. техн. наук, доц.




Работа подготовлена на кафедре автоматики

С Новосибирский государственный
технический университет, 2002г.

ЛАБОРАТОРНАЯ РАБОТА

ИССЛЕДОВАНИЕ ПРИНЦИПОВ ПОСТРОЕНИЯ КОДИРУЮЩИХ УСТРОЙСТВ

ЦЕЛЬ РАБОТЫ

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

2. Исследование принципов построения кодирующих устройств.

ОСНОВНЫЕ СВЕДЕНИЯ

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

Основание кода qчисло различных символов, используемых при построении данного кода. Наиболее широко применяются двоичные коды (q = 2, используются символы “ 0 ”, “ 1 ”), недвоичные коды с q > 2 встречаются значительно реже.

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

НЕ нашли? Не то? Что вы ищете?

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

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

k информационных символов и (n – k) контрольных мощность кода будет определяться по формуле ).

Кодовое расстояние (расстояние Хэмминга) dчисло разрядов, в которых одна кодовая комбинация отличается от другой (для двоичных кодов). Эта величина показывает “ близость ” кодовых комбинаций друг к другу. На практике, в основном, параметр d используют не для пары кодовых комбинаций, а для всего кода. Под кодовым расстоянием кода понимают минимальное кодовое расстояние из всевозможных сочетаний пар кодовых комбинаций, принадлежащих данному коду, т. е. это гарантированное расстояние, меньше которого в данном коде быть не может, а заявленная величина d будет обеспечена всегда.

Например, для двоичного равнодоступного кода минимальное кодовое расстояние равно 1.

Пример: Код q = 2, n = 2, следовательно, М = 22 = 4

d = 1

 

d = 1

 
0 0

d = 2

 

d = 2

 
0 1

d = 1

 

d = 1

 
1 0

1  1 Для данного кода d = 1.

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

Для недвоичных кодов при определении d учитываются дополнительные правила: кодовое расстояние между любым ненулевым символом и нулем принимают равным единице, а между двумя любыми ненулевыми символами – двум.

Например:

2211

В данном случае кодовое расстояние d равно 4.

 
2002

Для троичного равнодоступного кода d = 1, для троичного кода без нулевого сигнального признака d = 2.

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

d = r + s + 1,

где r – число обнаруживаемых ошибок,

s – число справляемых ошибок.

Очевидно, что всегда , т. е. число корректирующих ошибок не может превышать число обнаруживаемых. Предельный случай, когда r = s дает частную формулу

d = 2s + 1.

Избыточность кода Dпоказывает какая часть длины кодовой комбинации является избыточной (лишней) и информации не несет. Избыточность рассчитывается по формуле

,

здесь М – мощность данного кода,

МНИ – мощность неизбыточного (равнодоступного) кода той же

длины, что и длина данного кода.

q – основание данного кода.

Определяемая по приведенной формуле избыточность будет выражена в относительных единицах, для выражения ее в процентах, полученный результат надо умножить на 100%.

Например, избыточность двоичного нормального кода равна 0%, двоичного кода с проверкой на четность при n = 5 равна 20%, кода с удвоением элементов 50%.

К простейшим относятся коды, которые не обладают никакой корректирующей способностью, т. е. имеют d = 1.

Двоичный равнодоступный код(двоичный нормальный). q = 2, .

Пример: [7]10 = [111]2, [17]10 = [10001]2.

Троичный равнодоступный код. q = 3, .

Пример: [8]10 = [22]3, [12]10 = [110]3.

Двоично – десятичный код. q = 2, .

Каждый разряд исходного десятичного числа кодируется 4-х разрядным двоичным кодом.

Например, [87]10 = [1]2-10.

Кроме основной модификации двоично – десятичного кода, которая в соответствии с весами двоичных разрядов обозначается 8-4-2-1, встречаются и другие модификации, например 2-4-2-1, 6-3-2-1 и т. д. .

Например, [87]10 = [1]2-10 (модификация 2-4-2-1),

[87]10 = [1]2-10 (модификация 6-3-2-1).

Коды с обнаружением ошибок имеют и могут обнаруживать то или иное число ошибок. Они могут строится по разным принципам.

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

При этом

Например:. Кодовые комбинации, принадлежащие данному коду будут следующими: и т. д. .

Его частным случаем для q = 2 является код на одно сочетание,

, здесь m – число единиц в каждой кодовой комбинации.

Например, коду принадлежат следующие кодовые комбинации: 1001, 0011, 0110, 1100, 1010, 0101.

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

Код с проверкой на четность (нечетность) строится следующим образом. В исходную кодовую комбинацию добавляется разряд, в котором пишется “ 0 ” или ” 1 ” так, чтобы общее число единиц в кодовой комбинации было бы четным (нечетным). Для q = 2, .

Например: [8]10 = 1000(1), [5]10 = 0101(0).

Код с удвоением элементов (корреляционый код, код Манчестер-II) строится следующим образом. Сначала записывается исходный символ кода, а затем противоположный к нему. Для q = 2 .

Например: [8]10 = 1000 – исходный кодовая комбинация

[8]10 = – кодовая комбинация, принадлежащая коду с удвоением элементов.

Код с защитой повторением. Исходная кодовая комбинация передается несколько раз подряд. Для q = 2 , где r – число повторов.

Например: [8]10 = 1000 – исходный кодовая комбинация

[8]10 = – кодовая комбинация, принадлежащая коду с защитой повторением (2-х кратное повторение).

Код с защитой повторением с инверсией (код инверсный с повторением). Исходная комбинация передается дважды. Если число единиц в исходной комбинации четное, то повторная передача происходит без изменений. Если число единиц нечетное, то при повторной передаче все символы заменяются на противоположные. Для q = 2 .

Например: [8]10 = 1000 – исходный кодовая комбинация,

[8]10 = – кодовая комбинация, принадлежащая коду с защитой повторением с инверсией.

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

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

Например: комбинация 1222 принадлежит данному коду.

Троичный код с проверкой на четность активных сигнальных признаков строится следующим образом. К исходной кодовой комбинации добавляется разряд, в котором пишется “0”, ”1”, либо”2” так, чтобы общее число активных сигнальных признаков было четным.

Например: [8]10 = [22]3 Þ 22(0);

[12]10 = [110]3 Þ 110(0);

[6]10 = [20]3 Þ 20(2) Þ 20(1).

ПРИНЦИПЫ ПОСТРОЕНИЯ КОДИРУЮЩИХ УСТРОЙСТВ

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

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

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

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

Кодирующие устройства с использованием преобразователей кодов, как правило, выполняют однозначное преобразование кода. Например, микросхема 555ИВ1 преобразует входной единично – десятичный код в двоичный, а микросхема 555ИВ3 единично – десятичный в двоично – десятичный код, микросхема 155ПР6 осуществляет преобразование входного двоично – десятичного кода в двоичный, а 155ПР7 двоичного в двоично – десятичный. Недостаток большинства из перечисленных микросхем – значительный потребляемый ток.

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

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

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

ОПИСАНИЕ ЛАБОРАТОРНОГО СТЕНДА

Функциональная схема приведена на лицевой панели стенда, а так же на рис.1. Она включает в себя несколько вариантов кодирующих устройств (выбор осуществляется при помощи переключателя SA2), набор индивидуальных командных элементов (SA3–SA19), пусковое устройство (ПУ), генератор тактовых импульсов (G), преобразователь параллельного кода в последовательный, регистр памяти (DD29, DD30), блок защиты, два формирователя частотных сигнальных признаков, аналоговый сумматор, набор тумблеров задания данных для записи в ОЗУ (SA20–SA27) и устройство индикации для отображения кодовой комбинации в линии связи.

Лабораторный стенд позволяет проводить исследование принципов построения кодирующих устройств для двоичных, двоично-десятичных и троичных кодов.

КОДИРУЮЩИЕ УСТРОЙСТВА ДЛЯ ДВОИЧНЫХ КОДОВ

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

Первый вариант реализован на основе двоичного счетчика импульсов (DD3), мультиплексора (DD27), регистра памяти (DD29) и позволяет осуществлять преобразование единичного позиционного кода в двоичный равнодоступный код с n = 4.

Задание номера команды, подлежащей кодированию, производится при помощи тумблеров (SA3–SA17), которые непосредственно связаны с информационными входами мультиплексора (DD27). При запуске генератора импульсов (G) тактовые импульсы поступают на вход счетчика импульсов (DD3), который осуществляет их подсчет. Выходы счетчика импульсов соединены с адресными входами мультиплексора (DD27), и при совпадении двоичного кода счетчика импульсов с номером включенного тумблера, на выходе DD27 формируется сигнал уровня логической “1”, по которому код счетчика импульсов (DD3) запишется в регистр памяти (DD29), а затем при помощи преобразователя параллельный 8-ми разрядный код преобразуется в последовательный с добавлением синхросигнала и контрольной паузы.

Второй вариант реализован при помощи каскадного включения двух преобразователей кодов (DD14, DD15) и логических элементов (DD23- DD25), что позволяет при использовании ИМС типа К555ИВ1 осуществить преобразование единичного позиционного кода, набранного при помощи SA3–SA17, в 4-разрядный двоичный код, который затем преобразуется в последовательный, аналогично рассмотренному ранее варианту.

Третий вариант реализован с использованием оперативного запоминающего устройства (ОЗУ), в качестве которого используется ИМС типа КР539РУ10.

На первом этапе в ОЗУ записываются кодовые комбинации, разрешенные для исследуемого кода, которые задаются при помощи тумблеров (SA20–SA27). Запись этих комбинаций производится при нажатии кнопки SB2, предварительно выставив адрес либо в двоичном, либо в двоично-десятичном коде, который формируется на выходах счетчиков импульсов (DD3, DD6) и считывается с выходов регистров памяти (DD29, DD30) (переключатель SA28 в положении 1), кроме того, адрес может быть задан в единичном позиционном коде при помощи SA3–SA17, при этом SA29 в положении 2.

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

КОДИРУЮЩИЕ УСТРОЙСТВА ДЛЯ ДВОИЧН0-ДЕСЯТИЧНЫХ КОДОВ

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

Первый вариант реализован на двоично-десятичном счетчике импульсов (DD6), мультиплексорах (DD27, DD28), и регистрах памяти (DD29, DD30). Переключатель SA28 устанавливается в верхнее положение. При длине кодовой комбинации n = 8 набор команды, подлежащей передаче, производится следующим образом. Единицы передаваемого сообщения набираются при помощи тумблеров SA3-SA11, а десятки при помощи SA12-SA16. Таким образом, для передачи сообщения [35]10 необходимо включить тумблеры SA7 и SA16. При одновременном включении тумблера SA17, отвечающего за 6-ой десяток, например, с тумблером SA12, отвечающим за 1-ый десяток, получим число 7-ого десятка, с тумблером SA13 – число 8-ого десятка и т. д. Такая организация кодирования сообщений реализуется с использованием логических элементов (DD7-DD12) и позволяет производить кодирование команд до 99 включительно.

В дальнейшем при запуске схемы тактовые импульсы поступают на вход двоично-десятичного счетчика импульсов, выходной код которого является адресным кодом для DD27 и для DD28. По импульсу с каждого выхода мультиплексора код счетчика импульсов записывается, соответственно в регистры памяти DD29 и DD30.

Второй вариант реализован на двух последовательно включенных двоично-десятичных счетчиках импульсов, причем первый реализован при помощи двоичного счетчика импульсов DD30 с логическим элементом DD4, а второй при помощи обычного двоично-десятичного счетчика импульсов DD6. Процесс кодирования производится при нижнем положении переключателя SA28 и полностью аналогичен процессу, описанному ранее (см. 1 вариант кодирующего устройства для двоично-десятичных кодов).

Третий вариант можно реализовать с использованием ОЗУ (SA29 в положении 1). Двоично-десятичный код набирается при помощи (SA20-SA27) и записывается в ОЗУ по адресам, которые задаются единичным позиционным кодом, поступающим на адресные входы ОЗУ с тумблеров (SA3-SA16).

КОДИРУЮЩЕЕ УСТРОЙСТВО ДЛЯ ТРОИЧНЫХ КОДОВ

В лабораторном стенде используется кодирующее устройство с использованием ОЗУ. Отличительной особенностью использования ОЗУ для троичных кодов является то, что для формирования каждого разряда кодовой комбинации троичного кода отводится два выходных разряда ОЗУ. Первый выход отвечает за формирование уровня логической “2” а второй – “1”. Естественно, что на обоих выходах отвечающих за формирование одного разряда троичного кода не может быть состояния 11. В дальнейшем запись в ОЗУ производится аналогично ранее рассмотренным вариантам. При формировании троичных кодов используется частотный сигнальный признак, который задается при помощи управляемых генераторов синусоидальных колебаний (DA1 и DA2).

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

Преобразователь параллельного кода в последовательный в лабораторном стенде выполнен на мультиплексоре и двоичном счетчике на вход которого через делитель частоты (коэффициент деления 100) подаются импульсы с генератора тактовых импульсов. Управление длительностью периода работы преобразователя осуществляется с помощью SA31. В положении “1” период работы равен 16t, в положении “2”– 8t, где t –длительность элементарной посылки. Длительность синхросигнала для двоичного кода = 3.5t, для троичного = 2t.

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

Лабораторный стенд может работать как в автоматическом режиме, так и в разовом (по тактам). Выбор производится тумблером SA1.

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

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

1. Построить коды, согласно варианту задания (табл. I). Для каждого кода определить мощность кода М, кодовое расстояние d, корректирующую способность и избыточность.

2. Набрать на установке заданные кодовые комбинации. Зарисовать все осциллограммы сформированных сигналов.

3. Составить схему кодирующего устройства в соответствии с вариантом задания (табл. II).

СОДЕРЖАНИЕ ОТЧЕТА

1.  Цель работы.

2.  Решение заданного варианта.

3.  Временные диаграммы всех сформированных в процессе работы сигналов.

4.  Схема кодирующего устройства в соответствии с вариантом задания (табл. II).

5.  Функциональная схема лабораторного стенда.

6.  Выводы по работе.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Основные параметры кодов.

2. Свойства кодового расстояния.

3. По какой схеме выполнен распределитель в лабораторной работе?

4. Что называется кодовым расстоянием ?

5. С помощью каких сигнальных признаков может быть сформирован троичный код?

6. Сравнительный анализ кодов, исследуемых в лабораторной работе.

7. Как происходит преобразование последовательного кода параллельный?

8. Как происходит преобразование параллельного кода в последовательный?

9. Поясните работу указанного Вам функционального узла схемы.

10. Какие существуют зависимости между кодовым расстоянием и корректирующей способностью кода?

Таблица I

 
ВАРИАНТЫ ЗАДАНИЙ


Номер варианта

Код

1

2

3

4

5 6 7 8

1. Двоичный n=4 равнодоступный n=8

8

78

9

69

10

98

12

55

1

83

2. Двоичный на одно сочетание

3. Двоичный с проверкой на четность n=8

19

55

96

36

79

4. Двоичный код с удвоением элементов n=8

8

12

10

13

3

5. Троичный код n=4

5

72

7

55

3

39

8

20

80

6. Троичный с проверкой на четность активных сигнальных признаков n=4

23

12

10

9

17

7. Троичный без нулевого сигнального признака M

16

8

4

16

8. Троичный по закону размещений n

B0

B1

B2

4

0

1

3

4

1

2

1

4

2

2

0

4

3

0

1

9. Двоично – десятичный код n=8

55

87

21

73

60

95

44

70

5

98

nдлина кодовой комбинации.

M – мощность кода.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4