Инкрементальный энкодер

редактировать
Поворотный инкрементальный энкодер с валом, прикрепленным к его сквозному отверстию File:Wikipedia-VideoWiki-Incremental Encoder.webmВоспроизвести медиа Введение в инкрементальные энкодеры, от VideoWiki скрипт Инкрементальный энкодер

Инкрементальный энкодер - это линейное или поворотное электромеханическое устройство, которое имеет два выходных сигнала , A и B, которые выдают импульсы когда устройство перемещается. Вместе сигналы A и B указывают на возникновение и направление движения. Многие инкрементальные энкодеры имеют дополнительный выходной сигнал, обычно обозначаемый индексом или Z, который указывает, что энкодер находится в определенной исходной позиции. Кроме того, некоторые энкодеры предоставляют выходной сигнал состояния (обычно обозначаемый как аварийный сигнал), который указывает на внутренние неисправности, такие как отказ подшипника или неисправность датчика.

В отличие от абсолютного энкодера, инкрементальный энкодер не указывает абсолютное положение; он сообщает только об изменениях положения и о каждом сообщенном изменении положения о направлении движения. Следовательно, для определения абсолютного положения в любой конкретный момент необходимо послать сигналы энкодера на интерфейс инкрементального энкодера, который, в свою очередь, будет «отслеживать» и сообщать абсолютное положение энкодера.

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

Содержание
  • 1 Квадратурные выходы
    • 1.1 Разрешение
    • 1.2 Симметрия и фаза
  • 2 Типы сигналов
    • 2.1 Открытый коллектор
    • 2.2 Механический
    • 2.3 Двухтактный
    • 2.4 Дифференциальная пара
  • 3 Основные области применения
    • 3.1 Отслеживание положения
      • 3.1.1 Блоки перемещения
      • 3.1.2 Возврат к началу отсчета
    • 3.2 Измерение скорости
      • 3.2.1 По частоте
      • 3.2.2 По периоду
  • 4 Интерфейс инкрементного энкодера
    • 4.1 Линейные приемники
      • 4.1.1 Несимметричный
      • 4.1.2 Дифференциальный
    • 4.2 Синхронизация часов
    • 4.3 Входной фильтр
    • 4.4 Квадратурный декодер
      • 4.4.1 Переходы состояний
        • 4.4.1.1 Нормальные переходы
        • 4.4.1.2 Ошибки
      • 4.4. 2 Коэффициент тактового сигнала
    • 4.5 Отчет о местоположении
      • 4.5.1 Пример регистра
      • 4.5.2 Запуск выборки
        • 4.5.2.1 Уведомление о событии
        • 4.5.2.2 Пример FIFO
  • 5 Внешние ссылки
  • 6 Примечания
  • 7 Ссылки
Квадратурный выход uts
Две прямоугольные волны в квадратуре. Направление движения обозначается знаком разности фаз AB, который в данном случае отрицательный, потому что A следует за B.

Инкрементальный энкодер использует квадратурный энкодер для генерации выходных сигналов A и B. сигналы. Импульсы, излучаемые с выходов A и B, кодируются в квадратурном коде, что означает, что, когда инкрементальный энкодер движется с постоянной скоростью, рабочий цикл каждого импульса составляет 50% (т. Е. Форма сигнала представляет собой прямоугольную волну ) и существует 90 градусов разность фаз между A и B.

В любой конкретный момент разность фаз между сигналами A и B будет положительной или отрицательной в зависимости от датчика положения. направление движения. В случае поворотного энкодера разность фаз составляет + 90 ° для вращения по часовой стрелке и -90 ° для вращения против часовой стрелки, или наоборот, в зависимости от конструкции устройства.

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

Концептуальные чертежи чувствительных механизмов квадратурного энкодера

Разрешение

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

Это контрастирует с разрешением измерения энкодера, которое является наименьшим изменением положения, которое энкодер может обнаружить. Каждый край сигнала на A или B указывает на обнаруженное изменение положения. Поскольку каждый прямоугольный цикл на A (или B) включает четыре фронта сигнала (нарастание A, возрастание B, падение A и падение B), разрешение измерения энкодера составляет одну четвертую смещения, представленного полным выходным циклом A или B.. Например, линейный энкодер с частотой 1000 импульсов на мм имеет разрешение измерения за цикл 1 мм / 1000 циклов = 1 мкм, поэтому разрешение этого энкодера составляет 1 мкм / 4 = 250 нм.

Симметрия и фаза

При движении с постоянной скоростью идеальный инкрементальный энкодер будет выдавать прямоугольные волны на A и B (т. Е. Импульсы имеют ширину точно 180 °) с разностью фаз ровно 90 ° между A и B. В реальных энкодерах, однако, из-за несовершенства датчика ширина импульса никогда не бывает точно 180 °, а разность фаз никогда не бывает точно 90 °. Кроме того, ширина импульса A и B меняется от одного цикла к другому (и друг от друга), а разность фаз меняется на каждом фронте сигнала A и B. Следовательно, и ширина импульса, и разность фаз будут изменяться в диапазоне значений.

Для любого конкретного кодировщика диапазоны ширины импульса и разности фаз определяются спецификациями «симметрии» и «фазы» (или «фазирования») соответственно. Например, в случае энкодера с симметрией, заданной как 180 ° ± 25 °, ширина каждого выходного импульса гарантированно составляет от 155 ° до не более 205 °. Точно так же, если фаза задана как 90 ° ± 20 °, разность фаз на каждом краю A или B будет не менее 70 ° и не более 110 °.

Типы сигналов

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

Открытый коллектор

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

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

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

Механический

Поворотный механический инкрементальный энкодер на печатной плате

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

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

Двухтактные

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

Дифференциальная пара

Дифференциальные выходные сигналы от инкрементального энкодера

Дифференциальная RS-422 сигнализация обычно предпочтительна, когда энкодер будет выводить высокие частоты или расположен далеко от энкодера интерфейса, или когда сигналы кодера могут подвергаться воздействию электрических полей или синфазных напряжений, или когда интерфейс должен иметь возможность обнаруживать проблемы связи между кодером и интерфейсом. Примеры этого включают КИМ и станки с ЧПУ, промышленную робототехнику, автоматизацию производства и подвижные платформы, используемые в симуляторах самолетов и космических кораблей.

Когда используются выходы RS-422, энкодер обеспечивает дифференциальную пару проводов для каждого логического выхода; например, «A» и «/ A» являются обычно используемыми обозначениями для дифференциальной пары активный-высокий и активный-низкий, составляющей логический выход A энкодера. Следовательно, интерфейс энкодера должен обеспечивать линейные приемники RS-422 для преобразования входящих пар RS-422 в несимметричную логику.

Основные приложения

Отслеживание положения

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

В отличие от абсолютных энкодеров, инкрементный энкодер не отслеживает и не показывает текущее положение энкодера; он сообщает только о постепенных изменениях положения. Следовательно, для определения положения энкодера в любой конкретный момент необходимо предусмотреть внешнюю электронику, которая будет «отслеживать» положение. Эта внешняя схема, известная как интерфейс инкрементального энкодера, отслеживает положение путем подсчета инкрементных изменений положения.

При получении каждого отчета об инкрементальном изменении положения (обозначенном переходом сигнала A или B) интерфейс энкодера будет учитывать фазовое соотношение между A и B и, в зависимости от знака разность фаз, отсчет вверх или вниз. Суммарное значение «counts» указывает расстояние, пройденное с момента начала отслеживания. Этот механизм обеспечивает точное отслеживание положения в двунаправленных приложениях и, в однонаправленных приложениях, предотвращает ложные подсчеты, которые в противном случае могли бы возникнуть в результате вибрации или механического сглаживания вблизи перехода кода AB.

Единицы смещения

Часто счетчики энкодера должны выражаться в таких единицах, как метры, мили или обороты. В таких случаях счетчики преобразуются в желаемые единицы путем умножения на коэффициент смещения энкодера D {\ displaystyle D}Dна счет C {\ displaystyle C}C:

позиция = counts × DC {\ displaystyle position = counts \ times {\ frac {D} {C}}}{\displaystyle position=counts\times {\frac {D}{C}}}.

Обычно это вычисление выполняется компьютером, который считывает счетчики с интерфейса инкрементного кодировщика. Например, в случае линейного инкрементального энкодера, который производит 8000 отсчетов на миллиметр хода, положение в миллиметрах рассчитывается следующим образом:

мм = отсчетов × 1 мм 8000 отсчетов {\ displaystyle mm = counts \ times {\ frac {\ text {1 мм}} {\ text {8000 counts}}}}{\displaystyle mm=counts\times {\frac {\text{1 mm}}{\text{8000 counts}}}}.

Homing

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

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

Измерение скорости

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

Обычно используются инкрементальные энкодеры. используется для измерения скорости механических систем. Это может быть сделано для целей мониторинга или для обеспечения обратной связи для управления движением, или для того и другого. Широко распространенные применения этого включают управление скоростью вращения антенны радара и конвейеров материала, а также управление движением в робототехнике, CMM и Станки с ЧПУ.

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

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

По частоте

Если сигнал положения дискретизирован (дискретный временной сигнал), импульсы (или фронты импульсов) обнаруживаются и подсчитываются интерфейсом, а скорость обычно вычисляется компьютером, имеющим доступ для чтения к интерфейсу. Для этого компьютер считывает количество позиций C 0 {\ displaystyle C_ {0}}C_{0}из интерфейса в момент времени T 0 {\ displaystyle T_ {0}}T_{0}, а затем, через некоторое время, T 1 {\ displaystyle T_ {1}}T_{1}снова считывает счетчики, чтобы получить C 1 {\ displaystyle C_ {1}}C_{1}. Затем вычисляется средняя скорость в интервале от T 0 {\ displaystyle T_ {0}}T_{0}до T 1 {\ displaystyle T_ {1}}T_{1}:

скорость = (C 1 - C 0) (T 1 - T 0) {\ displaystyle speed = {\ frac {(C_ {1} -C_ {0})} {(T_ {1} -T_ {0})}}}{\displaystyle speed={\frac {(C_{1}-C_{0})}{(T_{1}-T_{0})}}}.

Результирующее значение скорости выражается в счетах в единицу времени (например, в счетах в секунду). Однако на практике часто бывает необходимо выражать скорость в стандартизированных единицах, таких как метры в секунду, обороты в минуту (об / мин) или мили в час (MPH). В таких случаях программное обеспечение будет учитывать взаимосвязь между счетчиками и желаемыми единицами расстояния, а также отношение периода выборки к желаемым единицам времени. Например, в случае поворотного инкрементального энкодера, который производит 4096 отсчетов на оборот, который считывается один раз в секунду, программное обеспечение вычислит число оборотов в минуту следующим образом:

RPM = (C 1 - C 0) 1 секунда × 60 секунды 1 минута × 1 оборот 4096 отсчетов {\ displaystyle RPM = {\ frac {(C_ {1} -C_ {0})} {\ text {1 секунда}}} \ times {\ frac {\ text {60 секунд} } {\ text {1 минута}}} \ times {\ frac {\ text {1 оборот}} {\ text {4096 counts}}}}{\displaystyle RPM={\frac {(C_{1}-C_{0})}{\text{1 second}}}\times {\frac {\text{60 seconds}}{\text{1 minute}}}\times {\frac {\text{1 revolution}}{\text{4096 counts}}}}.

При измерении скорости таким способом разрешение измерения пропорционально как разрешение кодировщика и период выборки (время, прошедшее между двумя выборками); разрешение измерения будет выше по мере увеличения периода выборки.

По периоду

В качестве альтернативы, измерение скорости может сообщаться при каждом выходном импульсе энкодера путем измерения ширины или периода импульса. При использовании этого метода измерения запускаются в определенных положениях, а не в определенное время. Расчет скорости такой же, как показано выше (количество / время), хотя в этом случае время начала и окончания измерения (T 0 {\ displaystyle T_ {0}}T_{0}и T 1 {\ displaystyle T_ {1}}T_{1}) предоставлены ссылкой на время.

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

Интерфейс инкрементного энкодера
PCI Express 6-axis incremental encoder interface. 6-осевой интерфейс инкрементного энкодера PCI Express. Сверху вниз: входные разъемы и линейные приемники; ПЛИС; Разъем объединительной платы

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

Интерфейсы инкрементного энкодера реализуются различными способами, в том числе как ASIC, как IP-блоки внутри FPGA, как выделенные периферийные интерфейсы в микроконтроллеры и, когда не требуется высокая скорость счета, как биты (мониторинг программного обеспечения) GPIO.

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

Линейные приемники

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

Несимметричный

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

Дифференциальные

Линейные приемники RS-422 обычно используются для приема сигналов от энкодеров, имеющих дифференциальные выходы. Этот тип приемника отклоняет синфазный шум и преобразует входящие дифференциальные сигналы в несимметричную форму, необходимую для последующих логических схем.

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

Синхронизация часов

Синхронизатор 2-FF. Выходной сигнал линейного приемника подается на D в ; сигнал D out отправляется в квадратурный декодер. На высоких тактовых частотах синхронизаторы могут использовать три (например, этот) или более триггеров для уменьшения MTBF

Инкрементальный энкодер интерфейс в основном состоит из последовательной логики, которая управляется тактовым сигналом. Однако входящие сигналы энкодера являются асинхронными по отношению к тактовым импульсам интерфейса, поскольку их синхронизация определяется исключительно перемещением энкодера. Следовательно, выходные сигналы от линейных приемников A и B (также Z и сигнализация, если они используются) должны быть синхронизированы с часами интерфейса, как для предотвращения ошибок из-за метастабильности, так и для приведения сигналов в синхронизацию. области квадратурного декодера.

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

Входной фильтр

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

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

Квадратурный декодер

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

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

Обычно, квадратурный декодер реализован как конечный автомат (FSM), который одновременно производит выборку сигналов A и B и, таким образом, формирует объединенные выборки "AB". При получении каждой новой пробы AB, конечный автомат будет сохранять предыдущую пробу AB для последующего анализа. FSM оценивает различия между новым и предыдущим состояниями AB и генерирует сигналы включения направления и счета в соответствии с обнаруженной последовательностью состояний AB.

Таблица состояний квадратурного декодера
ОписаниеСостояние ABВыходы
ПредыдущийТекущийCEDIRERR
x1x2x4
Перемещение на один шаг в направлении «вперед». (A ведет B)001011110
101100
11011
01000
Перемещение на один шаг в «обратном» направлении. (B отводы A)000100
01111
11100
100011
Нет движения00000X
0101
1010
1111
Перемещено на неопределенное количество шагов00111
0110
1001
1100

Переходы между состояниями

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

Нормальные переходы

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

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

Ошибки

Если оба логических состояния A и B изменяются в последовательных выборках AB, квадратурный декодер не имеет возможности определить, сколько приращений или в каком направлении переместился кодер. Это может произойти, если скорость кодера слишком высока для обработки декодером (т. Е. Скорость изменения состояния AB превышает частоту дискретизации квадратурного декодера; см. частота Найквиста ) или если сигнал A или B шумно.

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

умножителем тактового сигнала

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

Умножитель тактовой частоты квадратурного декодера назван так потому, что он дает скорость счета, которая кратна частоте импульсов A или B. В зависимости от конструкции декодера, умножитель тактовой частоты может быть встроен в конструкцию или настраиваться во время выполнения с помощью входных сигналов.

Значение множителя тактовой частоты может быть единицей, двумя или четырьмя (обычно обозначается «x1», «x2» и «x4» или «1x», «2x» и «4x»). В случае умножителя x4, счетчики будут меняться при каждом изменении состояния AB, в результате чего скорость счета будет в четыре раза больше частоты A или B. Множители x2 и x1 позволяют счетчикам изменяться при некоторых, но не всех изменениях состояния AB, как показано в таблице состояний квадратурного декодера выше (примечание: в этой таблице показана одна из нескольких возможных реализаций для умножителей x2 и x1; другие реализации могут включать счет на разных переходах AB).

Отчет о местоположении

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

Регистр выборки

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

Инициировано выборка

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

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

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

Уведомление о событии

Триггеры выборки часто асинхронны по отношению к выполнению программного обеспечения. Следовательно, когда счетчик позиции производит выборку в ответ на сигнал запуска, компьютер должен быть уведомлен (обычно через прерывание ), что выборка доступна. Это позволяет программному обеспечению быть управляемым событиями (по сравнению с опрашиваемым ), что способствует быстрому реагированию системы и устраняет накладные расходы на опрос.

Sample FIFO

Последовательные триггеры выборки могут происходить быстрее, чем компьютер может обработать полученные выборки. When this happens, the information in the sample register will be overwritten before it can be read by the computer, resulting in data loss. To avoid this problem, some incremental encoder interfaces provide a FIFO buffer for samples. As each sample is acquired, it is stored in the FIFO. When the computer demands a sample, it is allowed to read the oldest sample in the FIFO.

External links
  • Media related to Incremental encoders at Wikimedia Commons
Notes
References
Последняя правка сделана 2021-05-23 13:08:29
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте