Болл С.Р. Аналоговые интерфейсы микроконтроллеров (2007) (1264220), страница 44
Текст из файла (страница 44)
В программе необходимо предусмотреть эту особенность. Это особенно важно, если ПО использует 64-битную математику. Можно, например, добавить в программу смещение к текущей позиции и получить ответ гораздо больше 32 бит, например сложение двух кодов СО! 7В390)(+ 40000000)) даст в результате число больше 32 бит и не может быть сохранено в регистрах ЕМ628/629.
° При использовании входа индекса, ЕМ629 записывает отсчет. Это устанавливает в действительности «начальную» нли «нулевую» позицию двигателя, и все движения будут производиться относительно этой позиции. Однако 32-битный счетчик позиционирования не сбрасывается по входу индекса. Поэтому смещение относительно индексированной позиции должно быть вычислено программно. ° Тот факт, что в ЕМ628/629 используется два адреса (команды и данных) подразумевает, что существует потенциальная возможность для возникновения «гонок» (гасе соп01((оп). Если прерывание произойдет посередине командной последовательности, и 1ЯК также соединен с ЕМ628/629, начальная команда будет потеряна.
Примером служит прерывание, указывающее процессору, что произошел импульс индекса. Если 18К считает позицию индекса, и произойдет прерывание в середине другой команды, то не 18К-код получит ошибочные данные. На Рис. 7.33 показана такая ситуация. Для предотвращения этого в программе должен быть предусмотрен запрет прерываний во время исполнения 1Ж-кода (или прерываемого 1ЯК- кода), относяшегося к 1.М628/629. 242 ° Глава 2 Двигатели Эти ограничения не уникальны для (.М628/629. Подобные особенности наблюдаются и в других контроллерах двигателей.
Контроллеры серии МС2300 фирмы Ргесидоп Мопоп Веисез ГРМВ) имеют две ИС и могут одновременно управлять четырьмя бесколлекторными двигателями. Эти устройства также способны управлять двухфазными и трехфазными бесколлекторными двигателями. ИС МС2300 формирует на выходе цифровой код для управления с помощью ЦАП и усилителя или выдает последовательность ШИМ на вход моста. Контроллеры серии МС2100 (также от РМ(3) управляют двигателями постоянного тока со щетками.
Как и МС2300, ИС МС2100 могут поддерживать от одного до четырех двигателей, оснащены 32-битными регистрами позиции и обеспечивают много профилей движения. Обе серии контроллеров от РМ(3 основаны на системах ЦОС, контролирующих движение двигателя. ИС НС?Т;Т?00 фирмы Абйепг — контроллер одного бесколлекторного двигателя с 24-битным счетчиком кодера и ШИМ или 8-битным цифровым выходом. В ИС НСТЕ-1100 не используется схема регистра адреса и данных, вместо этого сигналы адреса мультиплексируются с шестью или восемью битами данных.
7.2.5. Программируемые контроллеры В некоторых случаях двигателем постоянного тока можно управлять прямо от микроконтроллера со специальной программой, вместо использования готовой ИС типа 1.М628. Причины такого подхода могут быть следующие: ° Стоимость. Покупная ИС все равно должна иметь связь с микропроцессором, так почему тогда не оставить один контроллер (процессор) и не заставить его выполнять функции ) М628? ° Простота. Покупая готовый контроллер, вы платите за все встроенные функции.
Если требуется простое управление на низкой скорости без специальных особенностей, почему бы не осуществить его программно? ° Пгбкость. Можно разработать алгоритмы управления в соответствии со своими собственными потребностями, вместо использования модифицированных ПИД-параметров. Кроме того, можно сформировать многоразрядные регистры позиционирования, например 64- или 128-битные. ° Требования заказчика. Если требуется введение специальных функций, таких как обработка данных от дополнительных датчиков или торможение за заданное время, то можно модифицировать разработанные ранее алгоритмы.
7.2. Двигатели постоянного тока ° 243 форма сигнала Кана Д Канал В Вращение в обРатную сторону Ка д Канал В Здесь подпрограмма обработки прерывания завершается вовремя — дотого, какканал В изменил состояние Здесь подпрограмма обработки прерывания завершается невовремя — послетого,как канал В изменил состояние, что может привести к смене направления движения на обратное микроконтроллер Канал Буферы с триггерами Шмитта Рис. 7.34. Подача сигнала прерывания зикодсра иа микроконтроллер Теперь, если вы решили разработать контроллер самостоятельно, то следует учесть несколько замечаний. Следует выбрать довольно быстродействующий процессор для поддержки любых возникающих требований. Здесь подразумевается также время обработки прерываний в режиме реального времени.
При использовании программного контроллера драйвер двигателя постоянного тока обычно соединяется с одним или несколькими входами прерывания контроллера. На Рис. 7.34 показан такой случай. Один из методов обработки прерываний — установить один из каналов (А — на рисунке) в режим генерации прерывания по спаду импульса. Когда прерывание происходит, контроллер считывает состояние другого канала энкодера ( — на рисунке).
Если в канале В НИЗКИЙ логический уровень, двигатель вращается вперед, число в регистре позиции должно увеличиваться, а для обратного движения уменьшаться. Как показано на Рис.7.34, если есть достаточная задержка между фронтом импульса канала А и состоянием!ЗВ, состояние канала В может измениться, и в программе будет посчитан неверный результат. Если спро- 244 ° Глава 7. Двигатели ектировать драйвер двигателя для подобной системы, следует удостовериться, что задержка прерывания недостаточна для такого казуса, даже на предельной скорости двигателя.
Неплохая идея — подать прерывание на один из входов таймера. Как описано в главе 4, таймер может быть установлен на один отсчет до перехода через 0 (гойочег), и сигнал с выхода энкодера заставит счетчик перегрузиться и сгенерировать прерывание. Если прерывание пропущено, значение таймера установится в 0001, вместо 0000 (если таймер стартует с РРРР), и пропущенное прерывание может быть обнаружено. Система, показанная на Рис. 7.34, обладает только четвертой частью разрешающей способности (по сравнению с обычными системами, основанными на ИС контроллеров двигателя) „поскольку зта система получает информацию от энкодера позиции только по одному переключению импульса (фронт А), а не по всем четырем. Этот недостаток можно компенсировать, применив энкодер с большим числом линий, но такой энкодер стоит дороже, чем ИС контроллера двигателя.
Можно удвоить разрешающую способность схемы, подав сигналы с обоих каналов знкодера для формирования прерывания микроконтроллера. В большинстве микроконтроллеров предусмотрена возможность чтения состояния входа прерывания, как будто это бит порта. Когда происходит прерывание, программа считывает состояние другого входа для определения направления. Наконец, для получения такой же разрешающей способности, как у ИС контроллера двигателя, можно добавить внешний ПЛИС, генерирующий прерывания при любом переходе сигнала. Это позволит также фильтровать сигналы. Другой путь повышения разрешающей способности микропроцессорной системы управления двигателем — использование микроконтроллера, который может генерировать прерывания на фронте и на спаде тактового импульса.
Например, микроконтроллеры серии Р1С16С фирмы М!сгос(з(р снабжены определенными дополнительными выводами ((пгеппрыоГ-с(запяе Геашге), на которых при изменении уровня генерируются прерывания. 7.3. Достоинства и недостатки различных типов двигателей Чтобы облегчить вам выбор оптимального устройства, рассмотрим достоинства и недостатки двигателей постоянного тока, бесколлекторных и щаговых: ° При использовании шагового двигателя не требуется энкодер и система с обратной связью для определения позиции вала. Позиция ва- 7 Х Достоинства и недостатки разлиннслх типов двигателей ° 245 ла определена контроллером, который подает импульсы на двигатель.
Однако это может быть и недостатком. При слишком тяжелой нагрузке на ось, шаговый двигатель может остановиться, а информация об этом не поступит в контроллер. Система с двигателем постоянного тока и энкодером свободна от такого недостатка. ° В шаговом двигателе нет щеток, поэтому он производит меньше электромагнитных помех. ° Шаговые двигатели обладают полным вращающим моментом в положении остановки, если обмотки запитаны. Это дает возможность удерживать ротор в определенном положении. ° Шаговый двигатель может вращаться с низкой скоростью без потери вращающего момента.
В двигателях постоянного тока при снижении скорости вращающий момент также падает, поскольку снижается сила тока в обмотках. ° Двигатели постоянного тока обладают большим вращающим моментом на высоких скоростях, чем шаговые. ° Из-за отсутствия обратной связи, в щаговых двигателях нет компенсации механического люфта. ° Бесколлекторные двигатели постоянного тока нуждаются в специальной электронной схеме коммутации, в отличие от двигателей со щетками. Однако серийный выпуск специальных управляющих ИС устраняет этот недостаток.