Принцип работы абсолютного энкодера

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

Кодовый диск абсолютного энкодера 

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

Двоичный код

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

Построение ДК осуществляется по следующему принципу:

Таким образом выглядит в данном случае число 10 в двоичном коде. 

Наибольшее число, которое может быть выражено двоичным кодом, зависит от количества используемых разрядов, т.е. от количества битов в комбинации, выражающей число. Например, для выражения числовых значений от 0 до 7 достаточно иметь 3-разрядный или 3-битовый код:

Числовое значениеДвоичный код
1000
2001
3010
4100
5101
6110
7111

Отсюда видно, что для числа больше 7 при 3-разрядном коде уже нет кодовых комбинаций из 0 и 1. Переходя от чисел к физическим величинам сформулируем вышеприведенное утверждение в более общем виде: наибольшее количество значений m какой-либо величины (угла поворота, напряжения, тока и др.), которое может быть выражено двоичным кодом, зависит от числа используемых разрядов n как m =2 n . Если n =3, как в рассмотренном примере, то получим 8 значений, включая ведущий 0. 

Двоичный код является многошаговым кодом. Это означает, что при переходе с одного положения (значения) в другое могут изменяться несколько бит одновременно. Например, число 3 в двоичном коде = 011. Число же 4 в двоичном коде = 100. Соответственно, при переходе от 3 к 4 меняют свое состояние на противоположное все 3 бита одновременно. Считывание такого кода с кодового диска привело бы к тому, что из-за неизбежных отклонений (толеранцев) при производстве кодового диска изменение информации от каждой из дорожек в отдельности никогда не произойдет одновременно. Это, в свою очередь, привело бы к тому, что при переходе от одного числа к другому кратковременно будет выдана неверная информация. Так при вышеупомянутом переходе от числа 3 к числу 4 очень вероятна кратковременная выдача числа 7, когда, например, старший бит во время перехода поменял свое значение немного раньше чем остальные. Таким образом, использование обычного двоичного кода может привести к большим погрешностям, так как две соседние кодовые комбинации могут отличаться друг от друга не в одном, а в нескольких разрядах. Чтобы избежать этого применяется так называемый одношаговый код, например, так называемый Грей-код. 

Код Грея

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

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

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

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

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

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

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

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

Примечание:

*Код Грея может логически преобразовываться в двоичный код когда терминал Vin подключается к 0 V. 

**Инвертор

Gray-Excess-Code

Обычный одношаговый Грей-код подходит для разрешений, которые могут быть представлены в виде числа возведенного в степень 2. В случаях, где надо реализовать другие разрешения из обычного Грей-кода, вырезается и используется средний его участок. Таким образом, сохраняется «одношаговость» кода. Однако числовой диапазон начинается не с нуля, а смещяется на определенное значение. При обработке информации от генерируемого сигнала отнимается половина разницы между первоначальным и редуцированным разрешением. Такие разрешения как, например, 360° для выражения угла часто реализируются этим методом. Так 9-ти битный Грей-код равный 512 шагов, урезанный с обеих сторон на 76 шагов будет равен 360°.

Разработка сайта K-develop