stringtranslate.com

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

Поворотный инкрементный энкодер с валом, прикрепленным к сквозному отверстию
Введение в инкрементные кодировщики из сценария VideoWiki Incremental Encoder.

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

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

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

Квадратурные выходы

Две прямоугольные волны в квадратуре. Направление движения обозначается знаком разности фаз A - B , который в данном случае отрицателен, поскольку A следует за B.

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

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


Сигналы A&B (часы и данные) от вибрирующего вала
Квадратурные сигналы от колеблющегося вала. Считайте направление по часовой стрелке из «Данных» на нарастающем фронте сигнала «Часы». Когда вал меняет направление, он замедляется и меняет направление, изменяя ширину импульса и фазу.

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

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

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


Разрешение

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

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

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

Инкрементные энкодеры демонстрируют симметрию и фазовые ошибки из-за несовершенства датчика.

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

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

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

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

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

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

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

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

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

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

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

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

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

Тяни-Толкай

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

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

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

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

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

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

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

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

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

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

Единицы водоизмещения

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

.

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

.

Возвращение домой

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

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

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

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

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

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

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

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

Скорость энкодера можно определить либо путем подсчета, либо путем синхронизации выходных импульсов (или фронтов) энкодера. [7] Полученное значение указывает частоту или период соответственно, на основе которых можно рассчитать скорость. Скорость пропорциональна частоте и обратно пропорциональна периоду.

По частоте

Если сигнал положения дискретизируется ( сигнал дискретного времени), импульсы (или фронты импульсов) обнаруживаются и подсчитываются интерфейсом, а скорость обычно рассчитывается компьютером, имеющим доступ для чтения к интерфейсу. Для этого компьютер время от времени считывает счетчики позиций из интерфейса, а затем, через некоторое время, снова считывает счетчики, чтобы получить . Затем рассчитывается средняя скорость за интервал до : [2]

.

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

.

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

По периоду

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

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

Интерфейс инкрементного энкодера

Input connectors for encoder signalsRS-422 line receiversFPGAPCI Express edge connector
Интерфейс 6-осевого инкрементного энкодера PCI Express. Сверху вниз: входные разъемы (L) и линейные приемники (R); ПЛИС; разъем объединительной платы

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

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

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

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

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

Односторонний

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В любых двух последовательных выборках 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»). [12] В случае множителя x4 счетчики будут меняться при каждом изменении состояния AB, в результате чего скорость счета будет равна четырехкратной частоте A или B. Множители x2 и x1 позволяют счетчикам изменяться при некоторых, но не всех изменениях состояния AB, как показано в таблице состояний квадратурного декодера выше (примечание: в этой таблице показана одна из нескольких возможных реализаций для множителей x2 и x1; другие реализации могут включать считая на разных переходах AB).

Отчеты о позициях

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

Образец реестра

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

Триггерная выборка

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

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

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

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

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

Образец ФИФО

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

Примечания

  1. ^ Выходные сигналы A и B энкодера не указывают абсолютное положение. Однако индексный сигнал, если он присутствует и утверждается, указывает, что кодер находится в своей исходной позиции, которая в некоторых приложениях может быть абсолютной позицией.
  2. ^ В контексте синхронных цифровых счетчиков «заклинивание» - это изменение сохраненных значений на определенное значение. Значение применяется к параллельным входам данных счетчика, а входу Load Enable (или эквивалентному) счетчика присваивается значение, вызывающее изменение счетчика. Во время этой операции нормальный подсчет на мгновение отключается.

Рекомендации

  1. ^ abcde Sensoray. «Введение в инкрементальные энкодеры» . Проверено 18 июля 2018 г.
  2. ^ abcde Крейг, К. «Оптические энкодеры» (PDF) . Проверено 25 июля 2018 г.
  3. ^ abcd «Основы работы кодировщика» (PDF) . Компания Encoder Products . Проверено 23 июля 2018 г.
  4. ^ «Основы кодирования» (PDF) . ИКС А/С.
  5. ^ abcde «Букварь для кодировщика» (PDF) . Инфракрасный телескоп НАСА (IRTF) . Институт астрономии Гавайского университета . Проверено 17 августа 2018 г.
  6. ^ «3 шага к указанию правильного типа вывода кодера» . Продукты для кодирования . Проверено 20 августа 2018 г.
  7. ^ Коллинз, Даниэль. «Как энкодеры используются для измерения скорости?». Мир дизайна . Проверено 22 сентября 2020 г.
  8. ^ Петрелла, Роберто; Турсини, Марко; Перетти, Лука; Зильотто, Мауро. «Алгоритмы измерения скорости для приводов, оснащенных инкрементальными энкодерами низкого разрешения: сравнительный анализ» (PDF) . Проверено 22 сентября 2020 г.
  9. ^ Гиносар, Ран. «Метастабильность и синхронизаторы: Учебное пособие» (PDF) . Израильский технологический институт . Проверено 21 января 2020 г.
  10. ^ Донохью, Райан. «Синхронизация в цифровых логических схемах» (PDF) . Стэндфордский Университет . Проверено 21 января 2020 г.
  11. ^ ab «Миксы интерфейса квадратурного декодера/счетчика» (PDF) . Аджилент Технологии . Проверено 20 августа 2018 г.
  12. ^ «Устранение ошибки кодировщика» . Дизайн машины . Проверено 20 августа 2018 г.

Внешние ссылки