Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
60
Добавлен:
11.02.2015
Размер:
129.33 Кб
Скачать

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

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

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

Коды для обнаружения ошибок код грея

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

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

Частный случай, получивший наибольшее распространение, – «код Грея». Главная особенность кода Грея, обеспечившая ему широкое практическое применение, состоит в простоте его построения.

Пусть а – двоичное n-разрядное число обычной (весовой) системы счисления, b – соответствующее число в коде Грея. Тогда правило, по которому можно найти код Грея по заданному числу а, представится формулой вида:

где ⊕ – знак сложения по модулю 2; i – порядковый номер разряда в числе а; i = 1, 2, 3, …, n; счет начинается с младшего разряда. Чтобы по этому правилу найти код Грея, достаточно поразрядно сложить по модулю 2 число а с самим собой, но сдвинутым вправо на один разряд с потерей цифры младшего разряда и записью нуля в старшем разряде:

где

Например, при n = 4 последовательность кодов Грея имеет вид: 0000, 0001, 0011, 0010, 0110, 0111, 0101, 0100, 1100, 1101, 1111, 1110, 1010, 1011, 1001, 1000.

Код Грея является невесовым в отличие от обычной двоичной системы счисления. Это значит, что образующие его двоичные числа надо рассматривать только как упорядоченные наборы нулей и единиц без присвоения им весов. Например, двоичному весовому числу 10011 (в десятичной системе – это 19) соответствует код Грея 11010, и если его считать весовым, то получится число 26 (в десятичной системе). В связи с этим каждому невесовому коду обычно присваивается та или иная величина либо с применением правила, как в случае кода Грея, либо при помощи таблицы.

Коды Грея часто используются в датчиках-энкодерах. Также они используются для кодирования номера дорожек в жестких дисках.

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

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

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

Главное достоинство датчика – его простота. Однако с практической точки зрения он почти непригоден. Дело в том, что параллельные коды хорошо считываются только в пределах каждого отдельного сектора, а при переходе от одного сектора к другому возникают помехи. Пусть число считывается в момент, когда под фотоэлементами проходит 15-й сектор, а за ним идет сектор с нулевым номером. Какое число получится на границе секторов? Это зависит от таких причин, как неточность изготовления маски и блока фотоэлементов, тепловая нестабильность, влияние различных вибраций и др. В общем случае на границе 15-го и нулевого секторов может быть считано любое число от 0 до 15. Помехи имеют место также при переходе от первого сектора ко второму, от третьего к четвертому, от пятого к шестому и др.

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