Код Грея

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

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

Десятичный код Двоичный код Код Грея
23 22 21 20
0 1 2 3 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0
4 5 6 7 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0
8 9 10 11 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0
12 13 14 15 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0

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

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

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



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: