Егоров В.А. Основы микропроцессорных систем управления - файл n1.doc

приобрести
Егоров В.А. Основы микропроцессорных систем управления
скачать (1446 kb.)
Доступные файлы (1):
n1.doc1446kb.30.05.2012 11:10скачать

n1.doc

1   2   3   4   5   6   7   8   9


Рассмотрим, какие коды (в шестнадцатеричной системе) необходимо подать, чтобы на экране дисплея получилось сообщение:

КОД

КОИ-7 .

Для получения такой картины сообщения на экране дисплея необходимо выполнить следующие действия: перейти на новую строку, вывести два пробела, вывести последовательно буквы К, О и Д, перейти на следующую строку, вывести один пробел, вывести последовательно буквы К, О и И, символ -, цифру 7, а затем выдать звуковой сигнал о завершении вывода информации. Этим действиям (см. табл. I) соответствуют коды: 0АН, 20Н, 20Н, 6ВН, 6FH, 64Н, 0AН, 20Н, 6ВН, 6FН, 69Н, 2DН, 37Н, 07Н - всего 14 шестнадцатеричных кодов. Если эти коды последовательно вывести на дисплей, то получим требуемое сообщение.

2.2. Однопеременные коды



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

Одним из важных классов комбинаторных кодов являются однопеременные коды, у которых две смежные кодовые комбинации отличаются только одним изменением в каком-либо разряде (говорят, кодовое расстояние между комбинациями равно 1). Например, два смежных числа (7)10 = (0111)2 и (8)10 = (1000)2 в нормальном двоичном коде отличаются изменениями во всех разрядах, в однопеременных кодах допустимы последовательные комбинации ... 0010, 0011, 0111, 0101 и т.д.

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



Рис. 1. Схема кодового датчика



Рис. 2. Диаграмма Карнауга

При повороте шкалы с простым двоичным кодом из позиции 3 в позицию 4 и обратно одновременно все три элемента съёма информации располагаются на границе перехода из 0 в 1. Обеспечить одновременное переключение всех трех элементов практически невозможно, а срабатывание какого-либо элемента раньше выдаст ложную информацию, соответствующую другой позиции шкалы, что приведёт к появлению ошибки в работе всей системы управления.

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

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

Чтобы получить однопеременный код, достаточно наметить определенный путь обхода точек диаграммы и последовательно выписать номера этих точек. Для пути, показанного на рис.2, последовательность кодовых комбинаций имеет вид: 0 - 0000, 1 - 0001, 2 - 0011, 3 - 0010, 4 - 0110, 5 - 0111, 6 - 0101, 7 - 0100, 8 - 1100, 9 - 1101, 10 - 1111, 11 - 1110, 12 - 1010, 13 - 1011, 14 - 1001, 15 - 1000 .

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

2.3. Помехоустойчивое кодирование



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

Если длина кода n - разрядов, то таким двоичным кодом можно представить максимум 2n различных слов. Если все разряды слова служат для представления информации, то код называется простым (неизбыточным). Например, таким кодом является код КОИ-7. Коды, в которых лишь часть кодовых разрядов используется для представления информации, называются избыточными. Часть слов в избыточных кодах являются запрещёнными, и их появление при передаче информации свидетельствует о наличии ошибки. Принадлежность слова к разрешённым или запрещённым словам определяется правилами кодирования, и для различных кодов эти правила различны.

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

Простой (неизбыточный) код имеет минимальное расстояние d = 1. Если d >= 2, то любые два слова в данном коде отличаются не менее чем в двух разрядах, следовательно, любая одиночная ошибка приведет к появлению запрещенного слова и может быть обнаружена.

Если d >= 3, то любая одиночная ошибка создает запрещённое слово, отличающееся от правильного в одном разряде, а от любого другого разрешенного слова - в двух разрядах. Заменяя запрещённое слово ближайшим к нему (по кодовому расстоянию) разрешенным словом, можно исправить одиночную ошибку.

Рассмотрим некоторые типичные коды.

2.3.1. Код с проверкой на чётность



Код с проверкой четности образуется добавлением к группе информационных разрядов, представлявших простой (неизбыточный) код, одного избыточного (контрольного) разряда. При формировании кода слова в контрольный разряд записывается 0 или 1 таким образом, чтобы сумма единиц в слове, включая избыточный разряд, была четной в случае контроля на четность (или нечетной в случае контроля на нечетность). Если при передаче информации приемное устройство обнаруживает, что в принятом слове сумма единиц не соответствует четности, то это воспринимается как признак ошибки. Например, при передаче латинской буквы F (см. табл. 1, код 1000110 ) к её двоичному коду будет добавлен контрольный разряд, равный 1, чтобы число всех единиц было четным, и будет передано 11000110, где самый старший, восьмой разряд - контрольный.

Минимальное расстояние кода d = 2, поэтому код с проверкой четности обнаруживает все одиночные ошибки (а также любое нечетное количество ошибок), однако, две ошибки (и любое четное количество ошибок) этот код не обнаруживает.

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

2.3.2. Код Хемминга



Этот код был предложен Р.В. Хеммингом в 1950 году. Он позволяет обнаруживать и исправлять одну ошибку (кодовое расстояние d = 3).

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

Рассмотрим его более подробно. Допустим, необходимо передать байт информации, т.е. восемь информационных разрядов. Для того чтобы получить число, указывающее на любой разряд этого байта, необходимы четыре двоичных разряда (указание на старший, восьмой разряд в двоичном коде требует четыре разряда 1000). Следовательно, к 8 информационным разрядам необходимо добавить 4 контрольных разряда (избыточные), которые дают корректирующее число. Таким образом, общее число разрядов в передаваемом коде Хемминга в данном случае будет равно 12. Поскольку ошибки могут быть и в контрольных разрядах, то код строится так, чтобы он обнаруживал ошибки в любом разряде; взятых четырех контрольных разрядов для этого достаточно (число 12 в двоичном коде тоже требует 4 двоичных разряда).

Далее полагают, что младший контрольный разряд контролирует четность разрядов, двоичный номер которых имеет единицу в младшем разряде, т.е. 1, 3, 5, 7, 9, 11 разряды (в двоичном коде: 0001, 0011, 0101, 0111, 1001, 1011). Следующий контрольный разряд проверяет разряды, двоичные номера которых имеют единицу во втором разряде, т.е. 2, 3, 6, 7, 10, 11 (в двоичном коде: 0010, 0011, 0110, 0111, 1010, 1011). Третий контрольный разряд контролирует разряды с двоичными номерами, имеющими единицу в третьем разряде, т.е. 4, 5, 6, 7, 12 (двоичные коды: 0100, 0101, 0110, 0111, 1100). Четвертый, старший контрольный разряд контролирует разряды номер 8, 9,10, 11, 12 (в двоичном коде: 1000, 1001, 1010, 1011, 1100).

Для упрощения кодирования в качестве контрольных разрядов берем те, которые встречаются только в одной из перечисленных групп номеров разрядов, т.е. разряды 1, 2, 4, 8. Тогда размещение разрядов в передаваемом коде будет следующим (контрольные разряды подчеркнуты):

D12 D11 D10 D9D8 D7 D6 D5 D4 D3 D2 D1.

При этом разряды D12 D11 D10 D9 D7 D6 D5 D3 образуют байт передаваемой информации, а разряды D8 D4 D2 D1 - избыточные, обеспечивают определение и исправление ошибок. Составим таблицу формирования контрольных разрядов (табл. 2).

Таблица 2

Номер группы

Контрольный разряд

Проверяемые разряды

1

2

3

4

D1


D2

D4

D8

D1,D3,D5,D7,D9,D11

D2,D3,D6,D7,D10,D11

D4,D5,D6,D7,D12

D8,D9,D10,D11,D12
1   2   3   4   5   6   7   8   9


Учебный материал
© nashaucheba.ru
При копировании укажите ссылку.
обратиться к администрации