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 (Clock & Data) от колеблющегося вала
Квадратурные сигналы от колеблющегося вала. Считайте направление по часовой стрелке из «Данные» на переднем фронте сигнала «Часы». Когда вал меняет направление, вал замедляется и меняет направление, изменяя ширину импульса и фазу.

Частота импульсов на выходе 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 или драйверы с открытым стоком, использующие МОП-транзистор n-типа ) позволяют работать в широком диапазоне напряжений сигнала и часто могут отводить значительный выходной ток, что делает их полезными для непосредственного управления токовыми петлями , оптоизоляторами и волоконно-оптическими передатчиками .

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

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

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

Вращающийся механический инкрементный энкодер, монтируемый на печатной плате

Механические (или контактные ) [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] Широко распространенные приложения этого включают управление скоростью вращения антенны радара и конвейеров материалов , а также управление движением в робототехнике , КИМ и станках с ЧПУ .

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

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

По частоте

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

.

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

.

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

По периоду

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

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

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

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

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

Интерфейсы инкрементального энкодера реализуются различными способами, в том числе в виде специализированных микросхем (ASIC) , IP-блоков в ПЛИС , выделенных периферийных интерфейсов в микроконтроллерах или в виде программного обеспечения (через прерывания или опрос 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 "The Basics of How an Encoder Works" (PDF) . Encoder Products Company . Получено 23 июля 2018 г. .
  4. ^ "Основы кодирования" (PDF) . ICS A/S.
  5. ^ abcde "Encoder Primer" (PDF) . NASA Infrared Telescope Facility (IRTF) . Institute for Astronomy, University of Hawaii . Получено 17 августа 2018 г. .
  6. ^ "3 шага для указания правильного типа выходного сигнала кодировщика". Продукты кодировщика . Получено 20 августа 2018 г.
  7. ^ Коллинз, Даниэль. «Как используются энкодеры для измерения скорости?». Design World . Получено 22 сентября 2020 г.
  8. ^ Петрелла, Роберто; Турсини, Марко; Перетти, Лука; Дзиглиотто, Мауро. «Алгоритмы измерения скорости для приводов с инкрементальным энкодером низкого разрешения: сравнительный анализ» (PDF) . Архивировано из оригинала (PDF) 16 апреля 2021 г. . Получено 22 сентября 2020 г. .
  9. ^ Ginosar, Ran. "Метастабильность и синхронизаторы: Учебное пособие" (PDF) . Израильский технологический институт . Получено 21 января 2020 г. .
  10. ^ Донохью, Райан. «Синхронизация в цифровых логических схемах» (PDF) . Стэнфордский университет . Получено 21 января 2020 г. .
  11. ^ ab "Интерфейсные микросхемы квадратурного декодера/счетчика" (PDF) . Agilent Technologies . Получено 20 августа 2018 г. .
  12. ^ "Ошибка кодировщика адресации". Machine Design . Получено 20 августа 2018 г. .

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