Документация USB хаб

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

USB хаб имеет на борту управляющий микроконтроллер, четырёхпортовый хаб USB 3.0, 4 USB разъёма и 4 реле для коммутации нагрузок 220 В. USB хаб имеет также 8 программируемых GPIO выводов для организации дополнительного функционала.

Управление контроллером происходит через USB интерфейс при помощи встроенной прошивки и специального протокола, в комплекте также поставляется программа для ПК для ручного ввода управляющих команд.

Основные характеристики

  • Микроконтроллер: ATmega16A
  • Хаб USB 3.0: VL812
  • 4 индикатора USB подключений
  • 4 реле 220В/10А
  • 4 индикатора состояния реле
  • 4 USB разъёма
  • 4 индикатора питания USB разъёмов
  • Управляющий USB разъём
  • Чип USB/UART: CH340N
  • 8 цифровых/аналоговых пинов
  • Разъём SPI для программирования
  • Напряжение питания: 9-36 В

Структурная схема

Ниже представлена структурная схема USB хаб на которой виды все основные блоки контроллера, их иерархия и характер их взаимодействия.

Контроллер имеет 4 управляющих USB разъёма (1-4), к которым можно подключать любое оборудование с интерфейсом USB. Все эти разъёмы имеют возможность включать и выключать выходное питающее напряжение 5 В, тем самым включая или выключая подсоединённые устройства.

Отдельно стоит разъём USB0, он предназначен для подключения управляющего компьютера (контроллера), который и управляет логикой работы USB хаб. Через этот же разъём осуществляется питание всех основных блоков контроллера — микроконтроллера ATmega16A, хаба USB 3.0 и т. д.

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

Коммутацией работы реле, USB выходов и дополнительных GPIO (0-7) занимается микроконтроллер ATmega16A по программе, заложенной в его прошивку, и в соответствии с поступающими внешними управляющими командами.

Управляющие команды поступают в ATmega16A через встроенный USB/UART мост CH340N, USB хаб и разъём USB0.

Схема подключений

Для нормальной работы контроллера USB хаб требуется подключение как питающего напряжения 9-36 В, так и входного кабеля в разъём USB0 (поскольку часть схемы питается от USB напряжения 5 В).

Также через разъём USB0 происходит управление контроллером, это ещё одна причина, почему этот разъём должен быть подключён к компьютеру (контроллеру).

Обратите внимание: разъёмы USB2-USB4 как коммутируют питающее напряжение, так и являются полноценными портами USB 3.0 и могут передавать и принимать данные, а разъём USB1 может только коммутировать питание, но не имеет линий обмена данными.

Типовые примеры применения

Контроллер USB хаб имеет множество сценариев применения, ниже представлены некоторые из них.

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

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

Удалённая перезагрузка. На удалённом объекте зависает оборудование и USB хаб в автоматическом режиме производит её перезагрузку. Либо коммутацией питающего USB напряжения, либо при помощи реле на 220 В.

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

Программное обеспечение

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

Посылать команды можно при помощи любого ПО, которое умеет коммуницировать по последовательному интерфейсу. Это может быть терминальная программа, код для любого микроконтроллера или программа для ПК.

В комплекте поставки USB хаб есть готовая программа для персонального компьютера, которая позволяет вручную в интерактивном режиме управлять контроллером.

Протокол и управляющие команды

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

n — бит номера вывода (0-7)

х — любое состояние бита

При получении команды чтения, контроллер возвращает байт состояния:

  • для дискретных выводов 0 или 1
  • для аналоговых входов 0x00-0xFF (соответствует 0 – 5 В)
  • для конфигурации — 0, 1, 2 или 3

При назначении на программируемые выводы 0 и/или 1 прерывания, при возникновении любого изменения состояния входов, контроллер выдает байт состояния вывода в формате:

Управление реле

Для управления 4-я встроенными реле используются три вида команд: это включение, выключение и чтение состояния.

Примеры с использованием программы ControlHUB, поставляемой с контроллером (подробности по использованию программы ControlHUB см. в соответствующем руководстве).

Включение реле №1:

ControlHUB COM3 129

Здесь COM3 — это виртуальный COM-порт, к которому подключён контроллер USB хаб, а команда 129 — это команда включения первого реле, согласно вышеприведённой таблицы.

Выключение реле №1:

ControlHUB COM3 128

Получение данных о состоянии реле №1:

ControlHUB COM3 0

Управление питанием USB

Здесь всё аналогично: команды на включение приводят к подаче напряжения 5 В на соответствующие USB разъёмы USB хаб, команды на выключение — снимают напряжение, а команды на чтение — возвращают статус того или иного (1-4) USB порта.

Групповые команды

Доступны также групповые команды управления реле и питанием USB выходов.

Конфигурационные команды

Конфигурационные команды позволяют настраивать работу восьми дополнительных GPIO, имеющихся на плате USB хаб. Здесь доступно переключение их на вход, на выход, работу с прерываниями или получение аналоговых (ADC) данных с них.

Управление дополнительными GPIO

После настройки дополнительных GPIO, ими можно так же управлять, как и реле или питанием USB разъёмов.

Используя эти однобайтовые команды, можно управлять работой контроллера USB хаб при помощи любой программы, умеющей работать по последовательному интерфейсу. Конфигурация работы по UART встроенной прошивки — 115200-8-N-2.

Программирование USB хаб

В USB хаб используется микроконтроллер ATmega16A который можно программировать, используя ISP разъём на плате контроллера. Если вас не устраивает функционал, поддерживаемый встроенной прошивкой, то вы можете самостоятельно написать прошивку для USB хаб и реализовать нужные вам функции.

Примеры кода

Для контроллера USB хаб доступны примеры программирования на различных языках и для различных платформ — вы можете использовать эти примеры как основу для ваших разработок.

Исходный код прошивки USB хаб на C:

usb-firmware-src.zip (3 кБ)

Исходный код управляющей программы для Windows/Linux на C:

usb-ControlHUB-v10-src (4 кБ)

Скомпилированный файл утилиты ControlHUB для Windows.

usb-ControlHUB-v10.zip (11 кБ)

Интерфейс управления контроллером USB хаб на Питоне:

usb-ControlPanel-py.zip (3 кБ)

Принципиальная схема

Для USB хаб доступна также принципиальная схема, что ещё больше облегчит и ускорит работу с контроллером и реализацию на нём ваших проектов.

Полный набор схем контроллера USB хаб можно скачать по ссылке ниже:

usb-v10-circuit.zip (186 кБ)

Больше информации об USB хаб

Быстрый старт и руководство по USB хаб