Предполагаемое изобретение относится к электротехнике, а именно, к способам и устройствам управления шаговыми двигателями (ШД) с помощью персонального компьютера (ПК) по каналу USB.
Известны технические решения, которые применяются для управления множеством электродвигателей. Например, в описании патента [1] предложен способ управления несколькими бесколлекторными (brushless DC motors - безщеточными) двигателями от компьютера, предусматривающий передачу команд управления по системной шине (CAN или LIN) к драйверам двигателей или к дополнительному микроконтроллеру (МК), организующему обмен данными по отдельной шине управления несколькими двигателями. Данный способ управления предполагает адресное обращение к каждому двигателю непосредственно от ПК по последовательному интерфейсу, что, с одной стороны, значительно увеличивает разновременность выполнения управляющих команд, а с другой стороны требует использования в составе каждого привода не только простого драйвера, но и контроллера, обеспечивающего поддержку выбранного протокола с приемопередатчиком шины CAN или LIN. Величина задержки между интервалами времени выполнения двух последовательных шагов одним и тем же ШД определяется количеством ШД и длительностью операций, необходимых для формирования соответствующих сигналов, а также задержками времени на обмен данными между персональным компьютером и микроконтроллером.
В техническом решении, изложенном в описании патента [2], предложен способ управления нескольким шаговыми двигателями от компьютера через специализированный контроллер многоосевого позиционирования, формирующий команды управления движением для нескольких драйверов ШД. Увеличение количества управляемых двигателей достигается введением дополнительного коммутатора на выходе каждого драйвера, позволяющего выбрать один из двух подключенных к нему ШД. При этом возникают перерывы в процессе запитывания обмоток каждого отдельного ШД током, поскольку драйвер питает обмотки только того ШД, который должен совершить перемещение в данный момент. Данное решение требует введения в систему нескольких силовых коммутаторов (по числу приводов), что значительно увеличивает габариты, а также снижает момент удержания обесточенных ШД. При этом многократное обесточивание и последующее подключение к питанию обмоток ШД приводит к случайному перемещению каждого ШД в пределах одного шага и снижает тем самым точность позиционирования. Кроме того, одновременно выполнить шаг может только половина управляемых ШД, а управление оставшимися двигателями возможно только по окончании движения и прекращения тока в обмотках первой группы ШД.
Аналогичное решение предложено в патенте [3], где в отличие от технического решения предыдущего патента к одному драйверу через демультиплексор подключается более двух ШД. При этом обращение к каждому из них будет происходить реже в n раз (где n - количество ШД, подключенных к одному драйверу).
Наиболее близким к предлагаемому является техническое решение [4], принятое за прототип. Для этого технического решения характерно, что потактовое управление несколькими шаговыми двигателями осуществляется с помощью персонального компьютера по каналу USB (Universal Serial Bus - универсальная последовательная шина). При этом реализуется режим управления с постоянной частотой, который состоит в том, что для каждого такта управления формируют пакет данных, содержащий информацию о направлении поворота и количестве шагов ротора каждого шагового двигателя, которые он должен выполнить на данном такте управления. Этот пакет данных передают в виртуальный последовательный порт персонального компьютера, а драйвер порта передает пакет данных по каналу USB в микроконтроллер, в котором его обрабатывают и формируют с частотой выполнения шагов дискретные команды для драйвера каждого двигателя, где они вызывают коммутацию обмоток двигателей, заставляя каждый из них выполнить на каждом такте управления заданное количество шагов в требуемом направлении. В результате обеспечивается управление от ПК шестнадцатью ШД по каналу USB через микроконтроллер. При таком управлении используется достаточно распространенная схема, при которой команда на поворот вала каждого ШД на заданное количество шагов в нужном направлении выдается один раз в начале установленного интервала времени (такта). Далее команда отрабатывается каждым ШД путем подачи на его драйвер управляющих импульсов обычно с постоянной частотой. При этом за один такт управления может быть выполнено не более определенного заранее количества шагов.
В техническом решении «Способ управления шестнадцатью шаговыми двигателями по USB-каналу квазиодновременно» [4] предложен вариант мультиплексного управления несколькими шаговыми двигателями. От упомянутых выше способов управления это решение отличается тем, что в нем мультиплексор перенесен с выхода драйвера на его вход. Кроме того, на входе каждого драйвера производится запоминание сигналов в добавленных элементах памяти. При этом используется прямое управление ключами драйвера. Данный способ позволяет управлять только ШД, в которых не требуется регулирование тока в обмотках. При этом использование мультиплексирования имеет следующие недостатки: значительное увеличение аппаратного состава и, как следствие, стоимости оборудования по сравнению с прямым управлением; увеличение габаритов устройства; значительное увеличение времени выдачи команд множеству ШД, вызванное последовательной выборкой команды и адреса; повышенные требования к скорости канала передачи информации от ПК к микроконтроллеру, обусловленные содержанием в протоколе обмена адреса ШД и нескольких байт команды. Следует также отметить, что использование в качестве канала связи USB-интерфейса ограничивает расстояние от ПК до микроконтроллера величиной 6 метров.
Задачей предполагаемого изобретения является расширение функциональных возможностей способа управления ШД и реализующего его устройства. Решение этой задачи достигается за счет того, что пакет данных имеет размер n байт (по байту на каждый из n двигателей соответственно). Причем первый бит каждого байта содержит информацию о направлении вращения двигателя, а следующие 7 бит содержат информацию о количестве шагов, на которые должен повернуться вал данного двигателя в текущем такте управления. Пакет данных, записанный в виртуальный последовательный порт персонального компьютера и переданный по каналу USB, преобразуют в соответствии со стандартом интерфейса передачи данных по полудуплексному многоточечному последовательному каналу связи и передают в микроконтроллер, где принятый пакет данных преобразуют в три дискретных сигнала для подачи на три входа EN, DIR и STEP драйверов каждого двигателя так, что на все время работы двигателей подают высокий потенциал на входы EN драйверов всех двигателей, в течение всего текущего такта управления на вход DIR драйвера соответствующего двигателя подают низкий потенциал, если необходимо обеспечить направление вращения влево, и высокий потенциал, если необходимо обеспечить направление вращения вправо, а на входы STEP драйверов всех двигателей одновременно с частотой выполнения шагов подают управляющие импульсы высокого уровня длительностью менее периода выполнения шагов, если соответствующий двигатель должен выполнить шаг, и подают низкий потенциал на входы STEP драйверов тех двигателей, для которых все требуемые на данном такте управления шаги уже выполнены. В результате таких действий все драйверы обеспечивают необходимую коммутацию обмоток своих шаговых двигателей, вызывающую одновременный поворот их валов на соответствующее количество шагов в требуемых направлениях. Причем, если заранее известно задание на отработку шагов двигателями на несколько тактов управления вперед, то формируют массив пакетов данных для известного количества тактов, записывают его в виртуальный последовательный порт и передают в микроконтроллер, где этот массив последовательно отрабатывают на каждом такте управления в соответствии с описанной последовательностью операций.
Применение последовательного интерфейса RS-485 (Recommended Standard ANSI TIA/EIA-485A - стандарт передачи данных по полудуплексному многоточечному последовательному интерфейсу) обеспечивает возможность масштабирования рассматриваемого способа за счет применения нескольких индивидуально адресуемых микроконтроллеров и позволяет увеличить расстояние между персональным компьютером и микроконтроллером до 1200 метров (для USB - максимум 6 метров).
Если необходимо увеличить количество управляемых ШД от данного персонального компьютера (если у одного микроконтроллера имеется недостаточное количество выводов для управления требуемым количеством ШД), то в виртуальный последовательный порт персонального компьютера передают несколько (по количеству используемых микроконтроллеров) пакетов данных, каждый из которых дополнительно содержит один байт, определяющий адрес микроконтроллера. При этом каждый пакет данных передают на каждом такте управления в микроконтроллер, имеющий соответствующий адрес.
Применяемый формат данных, включающий унифицированный набор сигналов: «включить питание обмоток» (EN), «выбрать направление вращения» (DIR) и «выполнить шаг» (STEP), позволяет управлять различными типами ШД, используя различные драйверы (например, А4979 для биполярного ШД [5]) без изменения управляющей программы.
Кроме того, использование унифицированного набора сигналов позволяет сократить количество управляющих сигналов (и, соответственно, выводов микроконтроллера) для одного ШД до двух (DIR и STEP) против четырех, используемых в [4]. Сигнал «включение питания обмоток» используется общий для драйверов всех ШД, подключенных к данному микропроцессору. Таким образом, управляющие импульсы подаются синхронно и одновременно на драйверы всех ШД, подключенных к одному порту микропроцессора, обеспечивая одновременное (а не квазиодновременное, как в [4]) управление этими ШД.
Если необходимо уменьшить количество выводов микропроцессора, используемых для решения задачи управления, то предлагается сигналы DIR, поступающие от микроконтроллера на соответствующие входы всех драйверов связанных с ним двигателей, формировать на одном выходе микроконтроллера перед выполнением каждого шага двигателей. При этом сначала на входы DIR всех драйверов подают низкий потенциал, после чего подают управляющий импульс высокого уровня на входы STEP драйверов тех двигателей, которые должны повернуть на текущем шаге свой вал влево. Затем на входы DIR всех драйверов подают высокий потенциал и далее подают управляющий импульс высокого уровня на входы STEP драйверов тех двигателей, которые должны повернуть на текущем шаге свой вал вправо, обеспечивая уже квазиодновременное управление всеми двигателями. При этом выполнение шага всеми ШД может быть осуществлено за пять тактов микропроцессора. Тогда как при использовании технического решения [4] для этого потребуется 32 такта микропроцессора.
При использовании автономного электропитания для осуществления управления ШД на передний план выдвигаются условия по снижению требований к мгновенной мощности источника питания и уменьшению помех, создаваемых при переключении обмоток ШД, а также демпфированию возникающего при этом напряжения самоиндукции. Эта задача решается за счет того, что управляющие импульсы на входы STEP драйверов двигателей за отрезок времени Tstep, в течение которого двигатель должен совершить шаг, формируют не одновременно в начале этого отрезка, а с задержкой по времени, для чего предварительно до начала управления двигателями измеряют промежуток времени Δtp, за который ток потребления драйвера достигает своего квазистационарного значения после его снижения при подаче управляющего импульса (под квазистационарным значением тока потребления драйвера понимают его среднее значение, измеренное при включенном драйвере и отсутствии управляющих импульсов в течение интервала времени не менее 10Tstep секунд). В процессе управления определяют количество двигателей nd, которые должны выполнить шаг на наступающем отрезке времени Tslep, определяют величину временного интервала At„=Tstep /nd, а затем поочередно с задержкой по времени Δtp, если Δtp<Δtn, и с задержкой Δtn, если Δtp≥Atn, подают управляющие импульсы на входы STEP драйверов тех двигателей, которые должны выполнить шаг на наступающем отрезке времени Tstep.
Сущность предлагаемого технического решения поясняется чертежами.
Фиг. 1. Участок экспериментального переходного процесса изменения тока потребления драйвера ШД при совершении одного шага.
Фиг.2. Участок экспериментально полученных графиков процессов изменения суммарного тока потребления четырех драйверов ШД.
Фиг. 3. Пример блок-схемы устройства, реализующего управление шестнадцатью ШД.
Фиг. 4. Пример электрической принципиальной схемы соединения приемопередатчика RS-485 с модулем универсального асинхронного приемопередатчика UART микроконтроллера.
Фиг. 5. Пример электрической принципиальной схемы силового питания через буферную емкость.
Фиг. 6. Блок-схема, иллюстрирующая пример последовательности операций, поясняющих работу устройства фиг. 3.
Фиг. 7. Блок-схема, иллюстрирующая пример последовательности операций, поясняющих работу устройства, реализующего способ управления с использованием нескольких микроконтроллеров.
Фиг. 8. Пример блок-схемы устройства с элементом гальванической развязки, реализующего управление шестнадцатью ШД.
Фиг. 9. Пример электрической принципиальной схемы элемента гальванической развязки при управлении четырьмя ШД.
Фиг. 10. Пример электрической принципиальной схемы основного и дополнительного вторичного источника питания.
Фиг. 11. Пример блок-схемы устройства для управления шестнадцатью ШД, имеющего один общий для всех шаговых двигателей дискретный выход DIR микропроцессора.
Фиг. 12. Пример блок-схемы устройства, имеющего элемент гальванической развязки и один общий для всех шаговых двигателей дискретный выход DIR микропроцессора.
Фиг. 13. Блок-схема, иллюстрирующая пример последовательности операций, поясняющих работу устройств фиг. 11 и фиг.12, имеющих один общий для всех шаговых двигателей дискретный выход DIR микропроцессора.
Фиг. 14. Пример блок-схемы устройства с датчиком тока потребления для управления шестнадцатью ШД.
Фиг. 15. Пример блок-схемы устройства с датчиком тока потребления и элементом гальванической развязки для управления шестнадцатью ШД.
Фиг. 16. Пример блок-схемы устройства с датчиком тока потребления и одним общим для всех шаговых двигателей дискретным выходом DIR микропроцессора.
Фиг. 17. Пример блок-схемы устройства с датчиком тока потребления, одним общим для всех шаговых двигателей дискретным выходом DIR микропроцессора и элементом гальванической развязки.
Фиг. 18. Блок-схема, иллюстрирующая пример последовательности операций, поясняющих работу устройств, имеющих в своем составе датчик тока потребления драйверов ШД.
Фиг. 19. Электрическая принципиальная схема датчика тока.
Фиг. 20. Пример электрической принципиальной схемы микроконтроллера с приемопередатчиком RS-485 для управления шестнадцатью ШД.
Фиг. 21. Пример электрической принципиальной схемы соединений драйверов с шестнадцатью ШД и модулем микроконтроллера.
На фиг. 1 приведен пример участка экспериментально полученного графика изменения тока потребления Ip драйвера ШД для иллюстрации технического эффекта, получаемого при решении задачи по снижению требований к мгновенной мощности источника питания и уменьшению помех, создаваемых при переключении обмоток ШД, а также демпфировании возникающего при этом напряжения самоиндукции. Из графика видно, что (при выполнении шага двигателем) сначала происходит снижение тока потребления драйвером вплоть до изменения его направления из-за возникающей ЭДС самоиндукции в обмотке ШД, а затем возрастание и плавное снижение тока потребления до его квазистационарного значения, имеющего место в режиме, когда двигатель не совершает шагов достаточно продолжительное время. На графике отмечен промежуток времени Atp и показаны пиковые и квазистационарные значения тока потребления.
В рассмотренном примере Tstep=2.048 мс, Δtp=0.518 мс. Если квазиодновременное управление производится четырьмя ШД, то nd=4, a Δtn=0.512 мс. На фиг. 2 показан участок экспериментально полученных графиков процессов изменения суммарного тока потребления четырех драйверов ШД для случая использования предлагаемого технического решения (сплошная линия) и для случая одновременного выполнения шагов всеми четырьмя ШД (штриховая линия). Здесь всеми ШД выполнялось несколько шагов при подаче на каждый из них управляющих импульсов с периодом Tstep=2.048 мс. На графике показаны числовые пиковые и квазистационарное значения суммарного тока потребления для обоих случаев. Сравнение полученных результатов показывает, что отклонение пиковых значений суммарного тока потребления драйверов от его квазистационарного значения при использовании предлагаемого технического решения снижается в 2,5-3 раза, что подтверждает реальный технический эффект от использования предполагаемого изобретения.
Аппаратная реализация способов управления с помощью ПК несколькими ШД, описанных в [1-4], предполагает применение устройств, обычно имеющих в своем составе один или несколько связанных с ПК микроконтроллеров, внешние кварцевые резонаторы, и драйверы двигателей. Недостатки этих устройств, как правило, обусловлены реализуемыми ими способами управления. Наиболее близким к заявляемому является схемное решение устройства, предложенное в качестве примера в описании патента [4]. Оно содержит микроконтроллер, внешний кварцевый резонатор, выводы которого соединены с соответствующими входами микроконтроллера, драйверы, соответствующие типу и количеству используемых шаговых двигателей, причем выводы драйверов соединены с соответствующими выводами шаговых двигателей.
Для решения поставленной задачи в устройство дополнительно введены буферная емкость, вторичный источник питания (ВИП), а также связанный стандартным USB-кабелем с персональным компьютером конвертер интерфейса USB - RS-485 и приемопередатчик RS-485, соединенные между собой линией связи типа витая пара в экране с волновым сопротивлением 120 Ом. Приемопередатчик RS-485 связан с модулем универсального асинхронного приемопередатчика UART (Universal Asynchronous Receiver Transmitter) микроконтроллера. Питающие выводы драйверов и вход вторичного источника питания соединены через буферную емкость с выводом внешнего источника питания требуемого напряжения. Выход вторичного источника питания соединен с питающим входом микроконтроллера, а соответствующие дискретные выходы микропроцессора соединены с входами STEP, DIR и EN драйверов соответствующих шаговых двигателей.
Пример блок-схемы устройства, реализующего управление шестнадцатью ШД, показан на фиг. 3. На фиг. 4. приведен пример электрической принципиальной схемы соединения приемопередатчика RS-485 с модулем универсального асинхронного приемопередатчика UART микроконтроллера. Пример схемы силового питания через буферную емкость представлен на фиг. 5.
Работу устройства иллюстрирует последовательность операций, приведенная на фиг. 6. В соответствии с этой схемой работа устройства осуществляется следующим образом. В начале работы после включения питания МК подает высокий потенциал на входы EN драйверов всех ШД. После этого на ПК начинается выполнение цикла, который определяется условием, известно ли на текущий момент времени задание на выполнение одного или нескольких тактов шаговыми двигателями. Если известно задание только на один такт управления, ПК формирует пакет данных о направлении поворота и количестве шагов каждого ШД для текущего такта управления и затем передает его в МК. МК, прочитав пакет данных, определяет, что известно задание только на один такт управления, и готовит цикл по числу шагов на одном такте управления. Поскольку изменения направления вращения внутри такта не происходит, то перед его началом МК подает низкий потенциал на входы DIR тех драйверов, ШД которых должны вращаться влево, и - высокий потенциал на входы DIR тех драйверов, ШД которых должны вращаться вправо. Далее на МК запускается цикл с числом повторений, равным максимально возможному на одном такте управления количеству шагов. В этом цикле отрабатывается следующая последовательность операций. МК определяет порядковые номера ШД, которые еще не выполнили все требуемое для них в текущем такте управления количество шагов. Затем МК подает низкий потенциал на входы STEP всех драйверов и формирует импульс положительной полярности, поступающий на входы STEP тех драйверов, ШД которых должны вращаться. Длительность импульса выбирается больше минимально необходимой для нормальной работы драйвера ШД, поскольку команда управления по входу «STEP» воспринимается драйвером по переднему фронту управляющего импульса. Так происходит с частотой выполнения шагов до тех пор, пока не будет исчерпано время на выполнение максимально возможного на одном такте управления количества шагов, т.е. не будет закончен текущий такт управления.
Если же персональным компьютером был сформирован массив пакетов данных на выполнение нескольких тактов управления, то МК определяет количество тактов, для которых получено задание. Тогда МК формирует внешний цикл по количеству заданных тактов управления, внутри которого каждый раз по окончании отработки одного такта управления запускается цикл отработки задания на следующий известный такт управления. Когда будет выполнено заданное массивом требуемое количество тактов управления, МК передает управление на ПК и ожидает приема нового задания. После чего ПК передает в МК новый массив пакетов данных для нескольких тактов управления (или одного) и выполнение задания повторяется. Если задания исчерпаны, ПК передает в МК команду на отключение питания всех ШД. Тогда МК подает низкий потенциал на входы EN драйверов всех ШД. На этом работа устройства заканчивается.
Применяемый формат данных, включающий унифицированный набор сигналов: «включить питание обмоток» (EN), «выбрать направление вращения» (DIR) и «выполнить шаг» (STEP), позволяет управлять различными типами ШД, используя различные драйверы (например, А4979 для биполярного ШД [5]) без изменения управляющей программы.
Кроме того, использование унифицированного набора сигналов позволяет сократить количество управляющих сигналов (и, соответственно, выводов микроконтроллера) для одного ШД до двух (DIR и STEP) против четырех, используемых в [4]. Сигнал «включение питания обмоток» используется общий для драйверов всех ШД, подключенных к данному микропроцессору. Таким образом, управляющие импульсы подаются синхронно и одновременно на драйверы всех ШД, подключенных к одному порту микропроцессора, обеспечивая одновременное (а не квазиодновременное, как в [4]) управление этими ШД.
Предложенное техническое решение (см. блок-схему на фиг. 3) позволяет синхронно управлять шестнадцатью ШД. Для передачи команд от ПК и приема ответов от устройства управления (УУ) используют последовательный канал USB. Для расширения функциональных возможностей канала связи ПК - УУ предложено преобразовать его в интерфейс RS-485. При использовании микроконтроллера с 16-разрядными портами вывода, например 1986 ВЕ92У [6], формирование сигналов Step1-Step16 одним портом микроконтроллера и, соответственно, выполнение шага всеми 16 двигателями, подключенными к данному порту, будет произведено одновременно. Использование одного общего сигнала EN обеспечивает максимально быстрое отключение всех 16 ШД при возникновении аварийной ситуации. В качестве конвертера интерфейса USB - RS-485 может быть использован конвертер интерфейса МОХА UPort 11501 [7], а в качестве приемопередатчика RS-485 - приемопередатчик интерфейса RS-485/422 SN65HVD1785[8] или 5559ИН10А АЕЯР.431230.645ТУ [9]. Входной импеданс приемника соответствует 1/8 единицы нагрузки (1/8 U.L.), что допускает параллельное включение до 256 эквивалентных приемопередатчиков на шине. Эти микросхемы предназначены для использования в качестве приемопередатчика по стандарту RS-485/422 для организации полудуплексного канала связи по соответствующим стандартам. Максимальная длина линии связи для микросхем типа SN65HVD1785 1,5 км и 1,2 км для 5559ИН10А. в качестве линии связи используется витая пара в экране с волновым сопротивлением 120 Ом. Для устойчивой работы канала RS-485 с обоих концов линии установлены согласующие резисторы с номиналом 120 Ом, как показано на рис. 2 в [7].
Приемопередатчик RS-485 соединен с модулем универсального асинхронного приемопередатчика (UART - Universal Asynchronous Receiver Transmitter), представляющего собой периферийное устройство микроконтроллера. Возможная схема соединения приведена на фиг. 4. Резистор R12 обеспечивает согласование волнового сопротивления на конце линии. Резистор R15 необходим для отключения передатчика на время начальной установки микроконтроллера после включения питания. Сигналы RX1 и ТХ1 представляют собой выход приемника и вход передатчика соответственно, a R/T1 управляет направлением передачи. Если значение сигнала R/T1 соответствует «1», то микроконтроллер передает данные, а если соответствует «0», то микроконтроллер принимает данные.
В качестве микроконтроллера может быть применен микропроцессор PIC18F67K22[10], обеспечивающий выполнение следующих операций:
- формирование управляющих сигналов на драйверы ШД в соответствии с командами, полученными от ПК;
- управление приемопередатчиком RS-485 и поддержка протокола обмена с ПК;
- синхронизация и обеспечение точных временных интервалов от собственного генератора с внешним кварцевым резонатором BQ1;
- формирование дискретных выходных сигналов STEP, DIR и EN. Количество подключаемых ШД может быть увеличено добавлением в пакет данных адреса микроконтроллера. При реализации такого технического решения на плате микроконтроллеров должно быть увеличено количество микропроцессоров. Работа устройства в этом случае поясняется блок-схемой, приведенной на фиг.7.
С целью повышения помехозащищенности управляющие сигналы от микроконтроллера поступают на драйверы ШД через схему гальванической развязки, разделяющую сигнальную и силовую части. Некоторые драйверы ШД уже имеют в своем составе гальваническую развязку, например драйверы серии OSM [11]. При использовании для управления ШД драйверов, не имеющих гальванической развязки по входам STEP, DIR и EN, в устройство (см. блок-схему устройства на фиг. 8) между соответствующими дискретными выходами микропроцессора и входами STEP, DIR и EN драйверов соответствующих ШД введен элемент гальванической развязки (ЭГР), а также дополнительный ВИП, вход которого соединен через буферную емкость с выводом внешнего ИП, а выход - со вторым питающим входом ЭГР, первый питающий вход которого соединен с выходом ВИП.
Для реализации ЭГР можно, например, использовать схему, приведенную на фиг. 9. На этой схеме DD4 - ADuM6400CRWZ [12] четырехканальный изолятор, с встроенным вторичным источником питания. Сигналы STEP1+STEP4 поступают напрямую с выводов микроконтроллера, a STEP(1_I÷4_I) поступают на соответствующие входы драйверов ШД. индексы 1-5-4 указывают номер драйвера. При управлении большим количеством ШД используется необходимое количество схем ADuM6400CRWZ. Соответственно соединяются остальные сигналы STEP и сигналы DIR, начиная с 5-го. Сигнал EN поступает одновременно на соответствующие входы драйверов. Такое решение позволяет обеспечить одновременное управление ШД разных типов, изменяя только драйвер ШД, с сохранением программных и аппаратных решений, предложенных выше.
В качестве драйвера ШД могут быть использованы как различные микросхемы, например А4979 Allegro MicroSystems с соответствующей обвязкой для управления биполярным шаговым двигателем, как показано на рис. Typical Applications для Parallel Control [13], или ТМС262 [14], так и готовые драйверы - контроллеры, например IDX 7505 [15] или OCM-42RA [11]. Работу с трехфазным ШД можно обеспечить, используя в качестве драйвера ШД микросхему ТМС389 TPJNAMIC Motion Control GmbH & Co. KG, как показано на figure 1: Basic application block diagram в [16].
Силовое питание устройства обеспечивается через буферную емкость, например, как показано на фиг.5. Питание низковольтной части устройства обеспечивается двумя вторичными источниками питания (ВИП и дополнительный ВИП), построенными по схеме, приведенной на фиг. 10. В данной схеме конденсаторы С5, С6 образуют входной фильтр, а С9, С10, С12, С13 - выходной. В качестве преобразователя напряжения применен одноканальный модуль МПВ3А [17], обеспечивающий выходное напряжение 5 В ±1%, в диапазоне питающих напряжений 18÷36 В. Напряжение 5 В, формируемое ВИП, используется для питания цифровой части устройства, а выходное напряжение 5 В дополнительного ВИП поступает на низковольтную часть драйверов.
При необходимости уменьшить количество выводов микропроцессора, используемых для решения задачи управления, может быть использовано устройство, блок-схема которого показана на фиг. 11 или на фиг. 12 (при необходимости использовать ЭГР). В этих примерах реализуется управление шестнадцатью ШД. Работа этих устройств осуществляется аналогично описанному выше циклу с той лишь разницей, что добавляются последовательные операции, вызванные использованием общего выхода DIR всех драйверов. Эти отличия отражены на представленной на фиг. 13 блок-схеме, иллюстрирующей работу этих устройств.
Для решения задачи по снижению требований к мгновенной мощности источника питания и уменьшению помех, создаваемых при переключении обмоток ШД, а также демпфированию возникающего при этом напряжения самоиндукции в устройство дополнительно между буферной емкостью и драйверами введен датчик тока, второй вход которого соединен с выходом ВИП, а второй выход соединен с входом аналогово-цифрового преобразователя микропроцессора. При этом операция непрерывного формирования значения тока потребления драйверов ШД на заданном временном интервале для измерения промежутка времени Δtp и определения временной задержки выполнения шага каждым следующим по порядку ШД выполняется микроконтроллером.
Примеры блок-схем устройства без ЭГР и устройства с ЭГР для этого случая приведены соответственно на фиг. 14 и фиг. 15. Примеры блок-схем такого устройства в случае использования общего выхода DIR микроконтроллера для управления всеми драйверами для вариантов без ЭГР и с ЭГР приведены соответственно на фиг. 16 и фиг. 17. В этих примерах также реализуется управление шестнадцатью ШД.
Для любого варианта устройства, использующего при формировании команд управления сигнал с датчика тока потребления драйверов, в рабочий цикл добавляются соответствующие операции, что отражено на иллюстрирующей работу этих устройств блок-схеме, представленной на фиг. 18.
Для решения поставленной задачи устройствами, имеющими в своем составе датчик тока потребления, предлагается его конкретное исполнение. Датчик тока содержит два изолированных линейных датчика Холла, выполненных на микросхемах ACS758LCB-050B-PFF со встроенным усилителем, инструментальный операционный усилитель MCP6V02, шесть конденсаторов и восемь резисторов. Причем первый вход датчика тока соединен с пятыми выводами датчиков Холла, четвертые выводы которых соединены с первым выходом датчика тока. Первые выводы датчиков Холла и второй вывод седьмого резистора соединены со вторым входом датчика тока. Первый и второй выводы первого датчика Холла соединены между собой через первый конденсатор, а третий и второй выводы первого датчика Холла соединены между собой через последовательно соединенные первый резистор и третий конденсатор. Второй вывод первого резистора соединен с первым выводом третьего резистора, а первый и второй выводы второго датчика Холла соединены между собой через второй конденсатор. Третий и второй выводы второго датчика Холла соединены между собой через последовательно соединенные второй резистор и четвертый конденсатор, а второй вывод второго резистора соединен с первым выводом четвертого резистора. Вторые выводы третьего и четвертого резисторов соединены со вторым выводом инструментального операционного усилителя, а первый и второй выводы инструментального операционного усилителя соединены между собой через параллельно соединенные пятый конденсатор и шестой резистор. Первые выводы пятого и седьмого резисторов соединены с третьим выводом инструментального операционного усилителя, первый вывод которого через восьмой резистор соединен со вторым выходом датчика тока, а второй вывод восьмого резистора через шестой конденсатор и второй вывод пятого резистора соединены со вторым выводом второго датчика Холла.
Электрическая принципиальная схема предлагаемой реализации датчика тока приведена на фиг. 19. Датчик тока выполнен на двух микросхемах DA1, DA2 ACS758LCB-050B-PFF [08], представляющих собой изолированные линейные датчики Холла с встроенным усилителем. Использование двух параллельно включенных датчиков тока позволяет повысить надежность работы устройства, а также снизить плотность тока в зоне входных контактов. Такое решение позволяет устанавливать датчики тока вместе с остальными элементами схемы на печатную плату, имеющую толщину дорожки 35 мкм. Кроме того, учитывая последующее инвертирование сигнала в сумматоре, направление тока через измерительные контакты датчика выбрано противоположным принятому - от +IP к -IP.
Суммирование выходных сигналов датчиков тока выполняется инструментальным операционным усилителем DA3:1 MCP6V02 [19] по схеме, приведенной на рис. 3.1 в книге [20]. Для подавления помех на частотах работы регуляторов тока в обмотках ШД в схему введены три звена ФНЧ, образованные Rl, С3 (R4, С4), R6, С5, R8, С6. Их частота среза F выбирается из условия 4fStep<F<0.l/rmjn, где:
fstep - частота шагов;
7rmin - минимальная частота переключения регулятора тока в обмотке ШД.
Программное управление работой устройства во всех его предложенных вариантах обеспечивает микроконтроллерный модуль (микроконтроллер), электрическая принципиальная схема возможного исполнения которого для случая управления шестнадцатью ШД приведена на фиг. 20. Ядро выполнено на восьмиразрядном контроллере PIC18F67K22 (DD2). Команды управления от ПК поступают на приемопередатчик интерфейса RS-485 SN65HVD1785 (DD1), обеспечивающий преобразование дифференциального сигнала указанного интерфейса в 5-ти вольтовые логические уровни и обратно. Резистор R1 обеспечивает согласование линии, а резистор R2 необходим для перевода приемопередатчика DD1 в режим приема на время инициализации микроконтроллера. Тактирование микроконтроллера обеспечивает внутренний генератор, частоту которого определяет кварцевый резонатор BQ1 с конденсаторами обвязки С3 и С6. Первичное программирование микроконтроллера осуществляется в режиме внутрисхемного программирования (In-Circuit Serial Programming) через технологический соединитель ХТ3 при замкнутых джамперах ХТ1, ХТ2. Для программирования используется программатор ICD3 Microchip Technology Inc. Через соединитель ХР1 на вход АЦП RF3 поступает сигнал с выхода датчика тока. Резисторы R5+R22 обеспечивают защиту портов микроконтроллера от замыкания.
Через соединитель Х3 осуществляется связь с драйверами ШД. Возможная электрическая принципиальная схема соединений драйверов с ШД и модулем микроконтроллера для случая управления шестнадцатью ШД приведена на фиг. 21. В качестве драйверов ШД АКА16 используются устройства OSM-42RA [И]. В качестве ШД в этой схеме могут быть использованы любые биполярные шаговые двигатели с номинальным током обмоток 1-4 А.
Все заявляемые варианты устройства представляют собой двухуровневую систему управления, включающую ПК, в котором реализуется: подготовительная вычислительная часть задачи управления, визуализация состояния системы, интерфейс оператора и связь с нижним уровнем. Нижний уровень управления реализуется в микроконтроллере. Связь между уровнями управления организована по принципу «Master - Slave» («ведущий -ведомый»), где ПК является «Master», а МК - «Slave». Работают эти устройства следующим образом. При включении ИП микроконтроллер проводит самодиагностику, на запрос ПК о состоянии сообщает «ЗАНЯТ», выставляет на входы всех драйверов ШД дискретный сигнал "EN", проводит самодиагностику и установку ШД в начальные положения. По окончании установки всех ШД в начальные положения состояние МК изменяется на «ГОТОВ». После получения готовности от МК, ПК начинает передачу данных задания на один или несколько тактов. Данные состоят из пакета последовательно передаваемых байт информации и служебных символов, по одному байту на каждый ШД, причем номер байта в пакете соответствует номеру ШД. МК проводит преобразование полученного пакета в задание для каждого ШД на один такт управления, содержащее количество шагов и направление вращения. Тактирование всех внутренних и внешних устройств выполняется таймерами МК, работающими от внутреннего генератора, стабилизированного внешним кварцевым резонатором. При выполнении шага МК уменьшает на единицу значение числа шагов задания на текущий такт управления для выбранного ШД до достижения нулевого значения.
Если применяемые драйверы ШД имеют в своем составе гальваническую развязку (варианты устройства фиг. 3, 11, 14 и 16) между управляющими сигналами и силовым питанием, то сигналы «STEP», «DIR» и «EN» с дискретных выходов МК поступают на входы соответствующих драйверов ШД напрямую. В случае ее отсутствия дополнительно устанавливаются ЭГР (варианты устройства фиг. 8, 12, 15 и 17). ЭГР должны обеспечивать необходимую скорость передачи данных и иметь уровни логических сигналов, совместимые с МК с одной стороны и с управляющими входами драйверов ШД - с другой. Питание элементов устройства за ЭГР осуществляется от дополнительного ВИП.
Если при работе устройства используется датчик тока (варианты блок-схем, представленных на фиг. 14-17). Он обеспечивает преобразование тока в напряжение с полосой пропускания более 4/step. Кроме формирования команд управления сигнал с датчика тока позволяет реализовать функцию защиты устройства от перегрузки по току.
Работоспособность заявляемого технического решения подтверждена экспериментально для случая управления четырьмя ШД. Экспериментально полученные осциллограммы изменения рабочих параметров устройства при реализации заявляемого способа управления приведены на фиг. 1 и 2 для одного характерного участка работы.
ИСТОЧНИКИ ИНФОРМАЦИИ
1. METHOD AND APPARATUS FOR CONTROLLING A PLURALITY OF MOTORS US 2009/0189550 Al H02P 5/00.
2. MULTIPLEXED STEPPER MOTOR CONTROL APPARATUS (United States Patent Number: 5,237,250 H02P 9/00).
3. Контроллер шагового двигателя RU 2531360 C2 H02P 8/40.
4. Способ управления шестнадцатью шаговыми двигателями по USB-каналу квазиодновременно. Патент РФ RU 2546315 C1 G05B 19/00.
5. A4979-DS, Rev. 2 Allegro MicroSystems, LLC, www.allegromicro.com.
6. МИКРОСХЕМЫ ИНТЕГРАЛЬНЫЕ 1986 ВЕ91Т, 1986 ВЕ92У, 1986 ВЕ93У, 1986 ВЕ94Т Технические условия АЕЯР.431290.711ТУ.
7. UPort 1100 Series User's Manual Fifth Edition, May 2009 www.moxa.com/
8. http://www.ti.com/lit/ds/symlink/sn65hvdl785.pdf
9. https://ic.milandr.ru/upload/iblock/fe5/fe58f8b55949bb7d5e278ed20edd8006.pdf
10. http://www.microchip.com/support DS39960D.pdf
11. http://onitex.ru/attachments/article/85/datasheet_OSM-17RA_OSM-42RA.pdf
12. www.analog.com ADuM6400_6401_6402_6403_6404.pdf
13. www.allegromicro.com A4979-Datasheet.pdf
14. www.trinamic.com TMC262 DATASHEET (V2.01 /2012-FEB-16)
15. www.trinamic.com IDX Manual (VI. 16 / December 3rd, 2008)
16. www.trinamic.com TMC389 DATASHEET (V. 1.14 / 2013-MAR-25)
17. www.mmp-irbis.ru / ТУ 6589-004-40039437-07
18. ACS758xCB-Datasheet.pdf www.allegromicro.com
19. http://support.microchip.com DS22058C
20. Алексенко А.Г., Коломбет E.A., Стародуб Г.И. Применение прецизионных аналоговых ИС. - М. Радио и связь, 1981.
Изобретение относится к области электротехники и может быть использовано для управления шаговыми двигателями (ШД) с помощью персонального компьютера (ПК) по каналу USB. Технический результат – обеспечение практически неограниченного наращивания количества управляемых двигателей, увеличение расстояние между ПК и МК до 1200 метров, обеспечение, при необходимости, одновременного управления ШД или разнесения во времени исполнения команд ШД для снижения требований к мгновенной мощности источника питания и уменьшения помех. Способ потактового управления несколькими шаговыми двигателями реализует режим управления с постоянной частотой и состоит в том, что для каждого такта управления формируют пакет данных, содержащий информацию о направлении поворота и количестве шагов ротора каждого шагового двигателя (ШД), которые он должен выполнить на данном такте управления. Этот пакет данных передают в виртуальный последовательный порт персонального компьютера. Драйвер порта передает пакет данных по каналу USB после преобразования в соответствии со стандартом интерфейса передачи данных по полудуплексному многоточечному последовательному каналу связи в микроконтроллер (МК), где принятый пакет данных преобразуют в три дискретных сигнала для подачи на три входа EN, DIR и STEP драйверов каждого ШД. Драйверы обеспечивают необходимую коммутацию обмоток своих ШД, вызывающую одновременный поворот их валов на соответствующее количество шагов в требуемых направлениях. Если заранее известно задание на отработку шагов двигателями на несколько тактов управления вперед, формируют массив пакетов данных для известного количества тактов, записывают его в виртуальный последовательный порт и передают в МК, где этот массив последовательно отрабатывают ШД на каждом такте управления. 2 н. и 10 з.п. ф-лы, 21 ил.
1. Способ потактового управления несколькими шаговыми двигателями с помощью персонального компьютера по каналу USB (Universal Serial Bus - универсальная последовательная шина), реализующий режим управления с постоянной частотой и состоящий в том, что для каждого такта управления формируют пакет данных, содержащий информацию о направлении поворота и количестве шагов ротора каждого шагового двигателя, которые он должен выполнить на данном такте управления, этот пакет данных передают в виртуальный последовательный порт персонального компьютера, драйвер порта передает пакет данных по каналу USB в микроконтроллер, в котором его обрабатывают и формируют с частотой выполнения шагов дискретные команды для драйвера каждого двигателя, где они вызывают коммутацию обмоток двигателей, заставляя каждый из них выполнить на каждом такте управления заданное количество шагов в требуемом направлении, отличающийся тем, что пакет данных имеет размер n байт (по байту на каждый из n двигателей соответственно), причем первый бит каждого байта содержит информацию о направлении вращения двигателя, а следующие 7 бит содержат информацию о количестве шагов, на которые должен повернуться вал данного двигателя в текущем такте управления, пакет данных, записанный в виртуальный последовательный порт персонального компьютера и переданный по каналу USB, преобразуют в соответствии со стандартом интерфейса передачи данных по полудуплексному многоточечному последовательному каналу связи и передают в микроконтроллер, где принятый пакет данных преобразуют в три дискретных сигнала для подачи на три входа EN, DIR и STEP драйверов каждого двигателя так, что на все время работы двигателей подают высокий потенциал на входы EN драйверов всех двигателей, в течение всего текущего такта управления на вход DIR драйвера соответствующего двигателя подают низкий потенциал, если необходимо обеспечить направление вращения влево, и высокий потенциал, если необходимо обеспечить направление вращения вправо, а на входы STEP драйверов всех двигателей одновременно с частотой выполнения шагов подают управляющие импульсы высокого уровня длительностью менее периода выполнения шагов, если соответствующий двигатель должен выполнить шаг, и подают низкий потенциал на входы STEP драйверов тех двигателей, для которых все требуемые на данном такте управления шаги уже выполнены, в результате таких действий все драйверы обеспечивают необходимую коммутацию обмоток своих шаговых двигателей, вызывающую одновременный поворот их валов на соответствующее количество шагов в требуемых направлениях, причем, если заранее известно задание на отработку шагов двигателями на несколько тактов управления вперед, формируют массив пакетов данных для известного количества тактов, записывают его в виртуальный последовательный порт и передают в микроконтроллер, где этот массив последовательно отрабатывают на каждом такте управления в соответствии с описанной последовательностью операций.
2. Способ потактового управления несколькими шаговыми двигателями по п. 1, отличающийся тем, что при использовании для управления шаговыми двигателями нескольких микроконтроллеров в виртуальный последовательный порт персонального компьютера передают несколько (по количеству используемых микроконтроллеров) пакетов данных, каждый из которых дополнительно содержит один байт, определяющий адрес микроконтроллера, при этом каждый пакет данных передают на каждом такте управления в микроконтроллер, имеющий соответствующий адрес.
3. Способ потактового управления несколькими шаговыми двигателями по п. 1 или 2, отличающийся тем, что сигналы DIR, поступающие от микроконтроллера на соответствующие входы всех драйверов связанных с ним двигателей, формируют на одном выходе микроконтроллера перед выполнением каждого шага двигателей, при этом сначала на входы DIR всех драйверов подают низкий потенциал, после чего подают управляющий импульс высокого уровня на входы STEP драйверов тех двигателей, которые должны повернуть на текущем шаге свой вал влево, затем на входы DIR всех драйверов подают высокий потенциал и далее подают управляющий импульс высокого уровня на входы STEP драйверов тех двигателей, которые должны повернуть на текущем шаге свой вал вправо, обеспечивая квазиодновременное управление всеми двигателями.
4. Способ потактового управления несколькими шаговыми двигателями по п. 1, отличающийся тем, что управляющие импульсы на входы STEP драйверов двигателей за отрезок времени Tstep, в течение которого двигатель должен совершить шаг, формируют с задержкой по времени, для чего предварительно до начала управления двигателями измеряют промежуток времени Δtp, за который ток потребления драйвера достигает своего квазистационарного значения (среднее значение тока потребления драйвера, измеренное при включенном драйвере и отсутствии управляющих импульсов в течение интервала времени не менее 10Tstep секунд) после его снижения при подаче управляющего импульса, а в процессе управления определяют количество двигателей nd, которые должны выполнить шаг на наступающем отрезке времени Tstep, определяют величину временного интервала Δtn=Tstep/nd, а затем поочередно с задержкой по времени Δtp, если Δtp<Δtn, и с задержкой Δtn, если Δtp≥Δtn, подают управляющие импульсы на входы STEP драйверов тех двигателей, которые должны выполнить шаг на наступающем отрезке времени Tstep.
5. Устройство потактового управления несколькими шаговыми двигателями с помощью персонального компьютера по каналу USB по п. 1, содержащее микроконтроллер, внешний кварцевый резонатор, выводы которого соединены с соответствующими входами микроконтроллера, драйверы, соответствующие типу и количеству используемых шаговых двигателей, причем выводы драйверов соединены с соответствующими выводами шаговых двигателей, отличающееся тем, что в него введены буферная емкость, вторичный источник питания, а также связанный стандартным USB-кабелем с персональным компьютером конвертер интерфейса USB - RS-485 и приемопередатчик RS-485, соединенные между собой линией связи типа витая пара в экране с волновым сопротивлением 120 Ом, в свою очередь, приемопередатчик RS-485 связан с модулем универсального асинхронного приемопередатчика UART (Universal Asynchronous Receiver Transmitter) микроконтроллера, причем питающие выводы драйверов и вход вторичного источника питания соединены через буферную емкость с выводом внешнего источника питания требуемого напряжения, выход вторичного источника питания соединен с питающим входом микроконтроллера, а соответствующие дискретные выходы микропроцессора соединены с входами STEP, DIR и EN драйверов соответствующих шаговых двигателей.
6. Устройство потактового управления несколькими шаговыми двигателями по п. 5, отличающееся тем, что в него между соответствующими дискретными выходами микропроцессора и входами STEP, DIR и EN драйверов соответствующих шаговых двигателей введен элемент гальванической развязки, а также дополнительный вторичный источник питания, вход которого соединен через буферную емкость с выводом внешнего источника питания, а выход - со вторым питающим входом элемента гальванической развязки, первый питающий вход которого соединен с выходом вторичного источника питания.
7. Устройство потактового управления несколькими шаговыми двигателями по п. 5, отличающееся тем, что со входами DIR драйверов соответствующих шаговых двигателей соединен один общий для всех дискретный выход микропроцессора.
8. Устройство потактового управления несколькими шаговыми двигателями по п. 6, отличающееся тем, что со входами DIR драйверов соответствующих шаговых двигателей соединен один общий для всех дискретный выход микропроцессора.
9. Устройство потактового управления несколькими шаговыми двигателями по п. 5, отличающееся тем, что в него между буферной емкостью и драйверами введен датчик тока, второй вход которого соединен с выходом вторичного источника питания, а второй выход соединен с входом аналогово-цифрового преобразователя микропроцессора, причем датчик тока содержит два изолированных линейных датчика Холла, выполненных на микросхемах ACS758LCB-050B-PFF со встроенным усилителем, инструментальный операционный усилитель MCP6V02, шесть конденсаторов и восемь резисторов, причем первый вход датчика тока соединен с пятыми выводами датчиков Холла, четвертые выводы которых соединены с первым выходом датчика тока, первые выводы датчиков Холла и второй вывод седьмого резистора соединены со вторым входом датчика тока, первый и второй выводы первого датчика Холла соединены между собой через первый конденсатор, третий и второй выводы первого датчика Холла соединены между собой через последовательно соединенные первый резистор и третий конденсатор, второй вывод первого резистора соединен с первым выводом третьего резистора, первый и второй выводы второго датчика Холла соединены между собой через второй конденсатор, третий и второй выводы второго датчика Холла соединены между собой через последовательно соединенные второй резистор и четвертый конденсатор, второй вывод второго резистора соединен с первым выводом четвертого резистора, вторые выводы третьего и четвертого резисторов соединены со вторым выводом инструментального операционного усилителя, первый и второй выводы инструментального операционного усилителя соединены между собой через параллельно соединенные пятый конденсатор и шестой резистор, первые выводы пятого и седьмого резисторов соединены с третьим выводом инструментального операционного усилителя, первый вывод которого через восьмой резистор соединен со вторым выходом датчика тока, а второй вывод восьмого резистора через шестой конденсатор и второй вывод пятого резистора соединены со вторым выводом второго датчика Холла.
10. Устройство потактового управления несколькими шаговыми двигателями по п. 6, отличающееся тем, что в него между буферной емкостью и драйверами введен датчик тока, второй вход которого соединен с выходом вторичного источника питания, а второй выход соединен с входом аналогово-цифрового преобразователя микропроцессора.
11. Устройство потактового управления несколькими шаговыми двигателями по п. 7, отличающееся тем, что в него между буферной емкостью и драйверами введен датчик тока, второй вход которого соединен с выходом вторичного источника питания, а второй выход соединен с входом аналогово-цифрового преобразователя микропроцессора.
12. Устройство потактового управления несколькими шаговыми двигателями по п. 8, отличающееся тем, что в него между буферной емкостью и драйверами введен датчик тока, второй вход которого соединен с выходом вторичного источника питания, а второй выход соединен с входом аналогово-цифрового преобразователя микропроцессора.
СПОСОБ УПРАВЛЕНИЯ ШЕСТНАДЦАТЬЮ ШАГОВЫМИ ДВИГАТЕЛЯМИ ПО USB-КАНАЛУ КВАЗИОДНОВРЕМЕННО | 2014 |
|
RU2546315C1 |
КОНТРОЛЛЕР ШАГОВОГО ДВИГАТЕЛЯ | 2009 |
|
RU2531360C2 |
0 |
|
SU160905A1 | |
GB 1400160 A, 16.07.1975 | |||
Тепловыделяющая сборка ядерного реактора | 2019 |
|
RU2805363C1 |
US 5237250 A, 17.08.1993 | |||
CN 101540578 B, 13.11.2013 | |||
WO 8805185 A1, 14.07.1988. |
Авторы
Даты
2019-10-29—Публикация
2018-12-26—Подача