
Термин «бинарный» по смыслу - состоящий из двух частей, компонентов. Таким образом бинарные коды это коды которые состоят только из двух символьных состояний например черный или белый, светлый или темный, проводник или изолятор. Бинарный код в цифровой технике это способ представления данных (чисел, слов и других) в виде комбинации двух знаков, которые можно обозначить как 0 и 1. Знаки или единицы БК называют битами. Одним из обоснований применения БК является простота и надежность накопления информации в каком-либо носителе в виде комбинации всего двух его физических состояний, например в виде изменения или постоянства светового потока при считывании с оптического кодового диска. Существуют различные возможности кодирования информации.
Двоичный код
В цифровой технике способ представления данных (чисел, слов и других) в виде комбинации двух знаков, которые можно обозначить как 0 и 1. Знаки или единицы ДК называют битами.
Одним из обоснований применения ДК является простота и надежность накопления информации в каком-либо носителе в виде комбинации всего двух его физических состояний, например в виде изменения или постоянства магнитного потока в данной ячейке носителя магнитной записи.
Наибольшее число, которое может быть выражено двоичным кодом, зависит от количества используемых разрядов, т.е. от количества битов в комбинации, выражающей число. Например, для выражения числовых значений от 0 до 7 достаточно иметь 3-разрядный или 3-битовый код:
Числовое значение | Двоичный код |
1 | 000 |
2 | 001 |
3 | 010 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
Отсюда видно, что для числа больше 7 при 3-разрядном коде уже нет кодовых комбинаций из 0 и 1.
Переходя от чисел к физическим величинам, сформулируем вышеприведенное утверждение в более общем виде: наибольшее количество значений m какой-либо величины (температуры, напряжения, тока и др.), которое может быть выражено двоичным кодом, зависит от числа используемых разрядов n как m=2n. Если n=3, как в рассмотренном примере, то получим 8 значений, включая ведущий 0.
Двоичный код является многошаговым кодом. Это означает, что при переходе с одного положения (значения) в другое могут изменятся несколько бит одновременно. Например число 3 в двоичном коде = 011. Число же 4 в двоичном коде = 100. Соответственно при переходе от 3 к 4 меняют свое состояние на противоположное все 3 бита одновременно. Считывание такого кода с кодового диска привело бы к тому, что из-за неизбежных отклонений (толеранцев) при производстве кодового диска изменение информации от каждой из дорожек в отдельности никогда не произойдет одновременно. Это в свою очередь привело бы к тому, что при переходе от одного числа к другому кратковременно будет выдана неверная информация. Так при вышеупомянутом переходе от числа 3 к числу 4 очень вероятна кратковременная выдача числа 7 когда, например, старший бит во время перехода поменял свое значение немного раньше чем остальные. Чтобы избежать этого, применяется так называемый одношаговый код, например так называемый Грей-код.
Код Грея
Грей-код является так называемым одношаговым кодом, т.е. при переходе от одного числа к другому всегда меняется лишь какой-то один из всех бит. Погрешность при считывании информации с механического кодового диска при переходе от одного числа к другому приведет лишь к тому, что переход от одного положения к другом будет лишь несколько смещен по времени, однако выдача совершенно неверного значения углового положения при переходе от одного положения к другому полностью исключается.
Преимуществом Грей-кода является также его способность зеркального отображения информации. Так, инвертируя старший бит, можно простым образом менять направление счета и таким образом подбирать к фактическому (физическому) направлению вращения оси. Изменение направления счета таким образом может легко изменяться управляя так называемым входом " Complement ". Выдаваемое значение может таким образом быть возрастающим или спадающим при одном и том же физическом направлении вращения оси.
Поскольку информация выраженная в Грей-коде имеет чисто кодированный характер не несущей реальной числовой информации должен он перед дальнейшей обработкой сперва преобразован в стандартный бинарный код. Осуществляется это при помощи преобразователя кода (декодера Грей-Бинар) который к счастью легко реализуется с помощью цепи из логических элементов «исключающее или» ( XOR ) как программным так и аппаратным способом.
Соответствие десятичных чисел в диапазоне от 0 до 15 двоичному коду и коду Грея
Двоичное кодирование | Кодирование по коду Грея | ||||
Десятичный код | Двоичное значение | Шестнадц. значение | Десятичный код | Двоичное значение | Шестнадц. значение |
0 | 0000 | 0h | 0 | 0 | 0h |
1 | 0001 | 1h | 1 | 1 | 1h |
2 | 0010 | 2h | 2 | 3 | 3h |
3 | 0011 | 3h | 3 | 2 | 2h |
4 | 0100 | 4h | 4 | 6 | 6h |
5 | 0101 | 5h | 5 | 7 | 7h |
6 | 0110 | 6h | 6 | 5 | 5h |
7 | 0111 | 7h | 7 | 4 | 4h |
8 | 1000 | 8h | 8 | 12 | Ch |
9 | 1001 | 9h | 9 | 13 | Dh |
10 | 1010 | Ah | 10 | 15 | Fh |
11 | 1011 | Bh | 11 | 14 | Eh |
12 | 1100 | Ch | 12 | 10 | Ah |
13 | 1101 | Dh | 13 | 11 | Bh |
14 | 1110 | Eh | 14 | 9 | 9h |
15 | 1111 | Fh | 15 | 8 | 8h |
Код Gray-Excess
Обычный одношаговый Грей-код подходит для разрешений, которые могут быть представлены в виде числа возведенного в степень 2. В случаях где надо реализовать другие разрешения из обычного Грей-кода вырезается и используется средний его участок. Таким образом сохраняется «одношаговость» кода. Однако числовой диапазон начинается не с нуля, а смещается на определенное значение. При обработке информации от генерируемого сигнала отнимается половина разницы между первоначальным и редуцированным разрешением. Такие разрешения как например 360? для выражения угла часто реализуются этим методом. Так 9-ти битный Грей-код равный 512 шагов, урезанный с обеих сторон на 76 шагов будет равен 360°.