СПОСОБ УПРАВЛЕНИЯ ШЕСТНАДЦАТЬЮ ШАГОВЫМИ ДВИГАТЕЛЯМИ ПО USB-КАНАЛУ КВАЗИОДНОВРЕМЕННО
METHOD TO CONTROL SIXTEEN STEP MOTORS ALONG USB-CHANNEL IN QUASISIMULTANEOUS MANNER

Изобретение относится к способам управления шаговыми двигателями по USB-каналу, использующим микроконтроллер с USB-интерфейсом.
Известен способ управления шаговым двигателем по USB (Universal Serial Bus - универсальная последовательная шина персонального компьютера) [1], заключающийся в том, что управляющая программа, разработанная на высокоуровневом языке программирования Паскаль для персонального компьютера, способна записывать данные в последовательный порт [2]. Персональный компьютер (ПК) по программе формирует пакет данных, содержащий информацию о направлении поворота и количестве шагов ротора шагового двигателя. Сформированный пакет данных записывается в последовательный порт и отсылается драйвером порта по USB-каналу в микроконтроллер (МК) [3], где данные обрабатываются и преобразуются в сигналы управления в виде бинарного кода, поступающего в драйвер шагового двигателя. Драйвер осуществляет цифроаналоговое преобразование, усиление сигналов управления и защиту микроконтроллера от самоиндукций обмоток.
К недостаткам способа следует отнести ограничение по количеству подключаемых двигателей, определяемое разрядностью микроконтроллера, а также возможностью одновременного управления только одним шаговым двигателем, что обусловлено неуниверсальностью управляющей устройством программы.
Задачей изобретения является разработка способа квазиодновременного управления шестнадцатью шаговыми двигателями с персонального компьютера по шине USB через микроконтроллер.
Для решения задачи изобретения предлагается использовать новый формат пакета данных, отсылаемого по интерфейсу USB из персонального компьютера в микроконтроллер; дешифратор (интегральная микросхема (ИМС) типа КР1533ИД3) для определения адресов шаговых двигателей; D-триггеры (ИМС типа К155ТМ8) для хранения и выдачи двоичного кода, определяющего направление поворота роторов шаговых двигателей [4].
Модифицированный пакет данных, формируемой программой ПК, имеет следующий формат: [адрес шагового двигателя] [направление вращения ротора][количество шагов]. Адреса шаговых двигателей обозначаются буквами английского алфавита, пример обозначения представлен на фиг.2. Каждый новый пакет данных записывается функцией Delphi WriteFile в последовательный порт, открываемый функцией Delphi CreateFile [5]. Пакеты данных записываются в соответствующие адресам шаговых двигателей ячейки оперативной памяти МК, формируя массив информации для управления шаговыми двигателями.
Программное обеспечение МК использует два массива данных. Первый массив, формируемый в оперативной памяти МК при его инициализации (запуске) МК, состоит из 16 строк и 9 столбцов, в каждой строке которого, соответствующей номеру шагового двигателя, хранится информация о количестве шагов в десятичной форме исчисления (формат: [число] [число]), направлении вращения ротора шагового двигателя (формат: [R] либо [L]), адресе двигателя в двоичном коде (формат: [число] [число] [число] [число]), флаге исполнения, информирующем о выполнении или невыполнении шагов, в двоичном коде (формат: [число] (0 - если все шаги исполнены двигателем)) и номере строки второго массива в десятичной форме исчисления (формат: [число]). Пример приведен на фиг.3.
Второй массив содержит четыре стандартных комбинации бинарного кода для поворота роторов шаговых двигателей [6]. Пример приведен на фиг.4.
Микроконтроллер формирует на подключенных к дешифратору выходах, четырехразрядную бинарную комбинацию, соответствующую определенному D-триггеру, и сигналы включения/отключения разрешения дешифрации, подаваемые на входы ИМС КР1533ИД3 (дешифрация разрешена при подаче напряжения низкого уровня). Дешифратор на одном из шестнадцати выходов, подключаемых к D-триггерам, формирует перепад сигнала, который на входе синхронизации (вход С D-триггера) ИМС К155ТМ8 инициализирует (запускает) запись в память D-триггера четырехразрядного бинарного кода, поступившего из МК по шине данных и управляющего шаговым двигателем.
Сигналы с информационных выходов D-триггеров являются управляющими для шаговых двигателей и поступают на соответствующие усилители.
Сущность предлагаемого способа заключается в том, что в отличие от известного способа управления шаговым двигателем по каналу USB через микроконтроллер [фиг.1], в пакеты данных, поступающих из персонального компьютера в микроконтроллер, вводится адрес, декодируемый добавляемым в схему дешифратором, который выбирает один из шестнадцати шаговых двигателей, непосредственно управляемых цифровым кодом, поступающим из микроконтроллера в добавленные D-триггеры, выходы которых связаны с усилителями двигателей [фиг.5] [фиг.6].
Работоспобность предложенного способа проверена в системе моделирования электрических процессов Multisim 8, где была построена схема управления шестнадцатью шаговыми двигателями через микроконтроллер [фиг.7, фиг.8, фиг.9, фиг.10]. При моделировании в реальном масштабе времени в микроконтроллере DD1 вырабатывался четырехразрядный код, который подавался на дешифратор DC1, и сигналы включения/отключения разрешения дешифрации. Дешифратор генерировал сигнал выбора соответствующего D-триггера (ТТ1-ТТ16). Квазиодновременно микроконтроллер вырабатывал четырехразрядный код, соответствующий направлению поворота ротора шагового двигателя, который по шине данных BUS1 подавался на все D-триггеры, но записывался только в тот, адрес которого определялся дешифратором. Для индикации выходных сигналов к D-триггерам подключались светодиоды.
Достоинством разработанного способа является возможность управления шестнадцатью шаговыми двигателями по USB-каналу квазиодновременно. Проведенное моделирование доказало физическую возможность управления шестнадцатью шаговыми двигателями квазиодновременно.
ИСТОЧНИКИ ИНФОРМАЦИИ
1. http://pic.rkniga.ru/shemotehnika/kompyuter/240-upravlenie-shagovym-dvigatelem-cherez-usb.html
2. М. Сухарев. Золотая Книга DELPHI. С обновлениями до версии 2010. - СПб.: Наука и Техника, 2010. - 1040 с.
3. Агуров П.В. Практика программирования USB. - СПб.: БХВ-Петербург, 2006. - 624 с.
4. Шило В.Л. Популярные цифровые микросхемы: Справочник. 2-е изд., испр. - Челябинск: Металлургия, Челябинское отд., 1989. 352 с.
5. Кузан Д.Я., Шапоров В.Н. Wim32 API в Delphi. - СПб.: БХВ-Петербург, 2005. - 368 с.
6. Прокопенко В.С. Программирование микроконтроллеров ATMEL на языке С.- К.: «МК-Пресс», СПб.: «КОРОНА-ВЕК», 2012. - 320 с.