Что делать, если не работают USB-порты компьютера
Если компьютер отказывается реагировать на USB-устройство, попробуйте эти способы. Не поможет один — переходите к следующему.
Перезагрузите компьютер
Как бы глупо это ни звучало, после это USB-девайс может заработать.
Проверьте подключаемое устройство и порт
Прежде чем разбираться с входом, нужно выяснить, исправно ли само подключаемое устройство.
- Вставьте его в другой порт.
- Если ПК по-прежнему не реагирует либо выдаёт ошибку, значит, проблема в девайсе.
- Отключите устройство и снова вставьте, но уже поплотнее. Возможно, выход просто расшатался.
- Устройство заработало? Тогда проблема действительно в порте.
Почистите USB-порты
Выключите компьютер и посмотрите, нет ли грязи и пыли внутри порта. Это особенно актуально для настольных ПК, в которых часть или даже все порты располагаются сзади. Пыль также может препятствовать току воздуха и, как следствие, снижать производительность.
Возьмите баллончик со сжатым воздухом и прочистите им все входы.

Если нет баллончика, попробуйте воспользоваться пылесосом.
Проверьте список устройств, подключённых к компьютеру
Через него можно получить информацию о USB-устройствах, а в некоторых случаях и исправить проблему с портами.
На Windows
- Введите в поиске операционной системы запрос «диспетчер устройств» и откройте его.
- Найдите раздел «Контроллеры USB» и разверните его.
- Вам нужен пункт со словами «Расширяемый хост-контроллер».

Такого пункта нет? Это может объяснять, почему ваше USB-устройство не работает. Нажмите на кнопку «Обновить конфигурацию оборудования» на панели задач: это иконка с голубым экраном и лупой. Вероятно, после проверки нужный пункт появится, а устройство заработает как надо.
Если хост-контроллер в списке есть, попробуйте его переустановить.
- Нажмите на него правой кнопкой мыши и выберите «Удалить устройство».
- Проделайте это с каждым таким контроллером, если их несколько.
- Перезагрузите компьютер.
После запуска Windows контроллеры автоматически переустановятся, а порт, возможно, заработает.
На macOS
- Откройте меню Apple и выберите «Об этом Mac».
- Откройте раздел «Отчёт о системе».
- В категории «Аппаратные средства» выберите USB.

На компьютерах Apple можно только просмотреть информацию о флешках и внешних жёстких дисках. Если порт рабочий, то устройство будет отображаться в списке. Такого простора, как в случае с Windows, у вас, к сожалению, нет.
Деактивируйте временное отключение USB-порта
На обнаружение USB-устройств могут влиять настройки управления питанием, особенно если у вас ноутбук. Функция временного отключения USB призвана снизить затраты энергии и обычно работает корректно. Но в крайнем случае стоит проверить и её.
На Windows
- В поиске операционной системы введите и выберите «Изменение схемы управления питанием».
- В открывшемся окне нажмите «Изменить дополнительные параметры питания».
- В категории «Параметры USB» вы найдёте один или два пункта в зависимости от того, настольный компьютер у вас или ноутбук. В обоих нужно поставить «Запрещено».
- Сохраните настройки и перезагрузите ПК.

На macOS
- В меню Apple выберите «Системные настройки».
- Откройте раздел «Экономия энергии».
- Во вкладках «Аккумулятор» и «Сетевой адаптер» уберите галочки «По возможности переводить диски в режим сна».

Почините вход
Порты припаяны к плате внутри компьютера: обычно не к материнской, а к отдельной. Если часто пользоваться USB-устройствами, то порты могут расшататься или даже целиком отвалиться.
Часто это связано с формой подключаемых устройств, в частности кабелей и старых флешек. Они могут быть довольно тяжёлыми и перевешивать хрупкий вход.
Незакреплённый вход может указывать на поломку. Вставьте во вход устройство и немного пошевелите его. Разъём не должен шататься. Если шатается, закрепите его паяльником.
Если USB-порт не шатается, но всё равно не работает, необходимо его заменить. Сделать это самостоятельно непросто. Скорее всего, тоже понадобится паяльник. Например, как в этом видео:
Если вы не уверены в своих силах, обратитесь за помощью к специалисту.
Читайте также 💻
Что такое USB разьем? Какие бывают типы USB?
USB (ю-эс-би, англ. Universal Serial Bus — «универсальная последовательная шина») — последовательный интерфейс для подключения периферийных устройств к вычислительной технике. Получил широчайшее распространение и фактически стал основным интерфейсом подключения периферии к бытовой цифровой технике.
Интерфейс позволяет не только обмениваться данными, но и обеспечивать электропитание периферийного устройства. Сетевая архитектура позволяет подключать большое количество периферии даже к устройству с одним разъёмом USB.
Разработка спецификаций USB производится в рамках международной некоммерческой организации USB Implementers Forum (USB-IF), объединяющей разработчиков и производителей оборудования с шиной USB. В процессе развития выработано несколько версий спецификаций. Тем не менее разработчикам удалось сохранить высокую степень совместимости оборудования разных поколений.

Существуют два типа коннекторов/разъёмов для USB:
Каждый из типов подразделяешься на три группы:
- Стандартные
- Мини
- Микро
Некоторые типы разъемов


Все USB устройства имеют свою версию.
Первая версия USB разъёмов (1.1). Её Характерной особенностью является очень маленькая скорость, при которой вся информация передаётся с большой задержкой.
Скорость передачи составляет 12 Мбит/с. Его основное предназначение – это применение для взаимосвязи устройств.
Вторая версия USB разъёмов (2.0).
Характеризуется скоростью передачи данных 480 Мбит/с. Это соответствует скорости в 48 Мбайт/с.
Основная часть всех современных технических приборов и устройств приспособлены к применению именно этой версии. Она наиболее популярна и известна, а поэтому все ещё пользуется спросом на рынке электротоваров.
Правда по причине множества факторов настоящая скорость этого стандарта не бывает больше 30 – 33 Мбайт/с.
Третья версия USB (3.0).
Данная версия характеризуется скоростью передачи информации – 5 Гбит/с – что считается достаточно высоким показателем.
Такая скорость соответствует 500 Мбайт/с. Это намного выше показателей скорости винчестеров последнего поколения (150 – 170 Мбайт/с).
Разъёмы USB 3.0 для их распознавания (иногда) специально маркируются синим цветом.

Питание USB разъёмов
Мощность, на которую рассчитаны подключаемые устройства с разъёмами USB, составляет 2,5 Вт, а также 4,5 Вт (для третьей версии). Исходя из этого, разъёмам USB всех версий необходимо напряжение 5 В. Ток до 0,5 А, а для третьей версии – 0,9 А.
Micro USB 3.0.
Современные внешние накопители, имеющие высокую скорость, а также диски типа SSD, в основном, все оснащены таким разъёмом, который характеризуется высокой скоростью обмена информацией.

USB 3.1 Type-C
- Скорость передачи данных до 10 GBps
- Возможность запитывания от порта устройств с потребляемой мощностью вплоть до 100Вт
- Размеры коннектора сравнимые с micro-USB
- Симметричность разъёма — у него не существует верха и низа, а значит нет ключа, который часто приводит к повреждениям как самих разъёмов, так и подключаемых через них гаджетов
- С помощью данного интерфейса можно запитывать устройства с напряжением вплоть до 20 вольт
- Больше не существует разных типов коннекторов — А и В. На обоих концах кабеля стоят совершенно одинаковые разъёмы. Как данные так и питающее напряжение могут передаваться через один и тот же разъём в обоих направлениях. В зависимости от ситуации каждый разъём может выступать в роли ведущего или ведомого
- Нам обещают, что конструкция разъёма способна выдерживать до 10 000 подключений
- Возможно использование этого интерфейса для непосредственного подключения вместо некоторых других широко распространённых интерфейсов для быстрого обмена данными.
- Стандарт совместим сверху вниз как c обычным USB 3 интерфейсом, так и с его младшими братьями. Конечно не на прямую, но с помощью переходника через него возможно подключение скажем USB 2.0 диска

Коннектор USB Type-C немного крупнее привычного USB 2.0 Micro-B, однако заметно компактнее сдвоенного USB 3.0 Micro-B, не говоря уже о классическом USB Type-A.
Габариты разъема (8,34×2,56 мм) позволяют без особых сложностей использовать его для устройств любого класса, включая смартфоны и планшеты.
В заключении матрица USB коннекторов:

Автор
gomoloff
Администратор сайта. Веб-разработчик.
решаем проблемы с портами USB 3.0
Если мы подключаем флешку 3.0 к компьютеру, который предусматривает поддержку портов USB 3.0, при этом видим сообщение «Это устройство может работать быстрее при подключении к Super-Speed USB 3.0», это, друзья, значит, что мы либо вставляем флешку не в порты USB 3.0 (с синим язычком), либо с их функционированием имеются проблемы, и они работают в режиме USB 2.0. В чём кроются причины проблем с работой портов USB 3.0 на компьютерах, и как решаются такие проблемы, в этом попытаемся разобраться в сегодняшней статье.
«Это устройство может работать быстрее…»: решаем проблемы с портами USB 3.0

Настройки в BIOS
Порты USB 3.0 могут работать в рамках возможностей USB 2.0, если таким образом они настроены в BIOS. Этот момент необходимо проверить в первую очередь. Заходим в BIOS и ищем, где настраиваются USB-порты, обычно это раздел расширенных настроек «Advanced» и подраздел «USB Configuration». Или нечто с подобными названиями. Здесь необходимо проверить, активна ли поддержка USB 3.0. Параметр «USB 3.0 Support» должен иметь значение «Enable» (Включено). Значение «Enable» также должно быть у параметра «XHCI hand-off», он может называться «XHCI Pre-Boot Mode», просто «XHCI» или как-то по-другому, но с присутствием ключевого термина «XHCI».
![]()
Обновление драйвера
Внутри Windows работать на уровне USB 2.0 интерфейс USB 3.0 может по банальной причине некорректной установки драйвера контроллера. Решается такая проблема любым из способов борьбы с некорректно установленными драйверами – это либо их обновление, либо переустановка. Используем для начала штатные возможности Windows. Идём в диспетчер устройств. Раскрываем ветку «Контроллеры USB». Кликаем расширяемый хост-контроллер. Чаще он значится как «Расширяемый хост-контроллер Intel(R) USB 3.0», но в нашем случае, например, его производителем является японская компания Renesas. Вызываем на нём контекстное меню и выбираем обновление драйвера.
![]()
Жмём автоматический поиск в Интернете.
![]()
Если в Интернете драйверы не найдутся, можно вручную установить драйверы USB 3.0, скачав их с сайта производителя ноутбука или материнской платы ПК. Либо прибегнуть к помощи программ для автоматической установки/обновления драйверов.
Подключаем com порт usb в Windows
Всех приветствую вновь на страницах своего блога и сегодня хочу рассказать, как подключить com порт usb в Windows . Поговорим, что это такое и для чего используется. Я думаю для начинающих сетевых администраторов, да и просто для продвинутых пользователей это будет интересно, для меня в свое время это было просто какой-то магией, позволяющая настраивать серверное оборудование.
Что подключают через com порт
Через com порт ранее подключали модемы, мышки. Сейчас он используется для соединения с источниками бесперебойного питания, для связи с аппаратными средствами разработки встраиваемых вычислительных систем, спутниковыми ресиверами, кассовыми аппаратами, с приборами систем безопасности объектов, а также с многими прочими устройствами.
С помощью COM-порта можно соединить два компьютера, используя так называемый «нуль-модемный кабель» (см. ниже). Использовался со времен MS-DOS для перекачки файлов с одного компьютера на другой, в UNIX для терминального доступа к другой машине, а в Windows (даже современной) — для отладчика уровня ядра.
Но в сетевом мире через com порт подключаются к консольному порту сетевых устройств (коммутаторов, роутеров, таких брендов как Cisco или Juniper)
Какая схема подключения к коммутаторам через последовательный порт. Есть переходники, например от фирмы st-lab На одном конце USB который вы подключаете к компьютеру, а второй это com порт.
Далее к ком порту подсоединяется вот такой шнурок, com порт, а с другой стороны LAN RJ45, и вся схема дает нам один большой шнурок USB to LAN.
Установка драйверов com порт usb в Windows
К сожалению в Windows подключенные устройства, usb to com не всегда автоматически устанавливаются в системе, и приходится искать для них драйвера. Если вы покупали его сами, то в комплекте шел диск с драйверами, и можно воспользоваться им, если его нет, то смотрим как найти драйвера.
Открываем диспетчер устройств в Windows. Если не знаете как, то нажмите CTR+Pause breake, либо нажмите Win+R и в окне выполнить введите devmgmt.msc. Как видите у меня в разделе Порты (COM и LPT) нашелся на третьем COM порту неизвестный провод, и драйверов для него не нашлось у системы, о чем говорит нам желтый значок.
Переходим в свойства данного устройства и выбираем ИД оборудования, у вас будет, что то по типу usb\VID_067B&PID_2303&REV_0300, вот его вы копируете и ищите в гугле или яндексе.
После чего щелкаем правым кликом по устройству в диспетчере устройств и выбираете установить драйвера, указываете до них путь и ставите, если все ок, то у вас пропадет значок предупреждения.
Далее вы уже можете использовать возможности com порта, с помощью таких утилит на подобие Putty, где вы выбираете пункт Serial и указываете нужный порт Com порта, посмотреть его можно в том же диспетчере устройств.
Надеюсь вы научились и разобрались как подключать com порт usb в Windows.
Как это работает: USB

USB — разработанный в середине девяностых годов стандарт обмена данными между устройствами и их питания. Этот протокол используется для подключения к компьютеру периферии и пришел на замену нескольким разработанным ранее портам. Стандарт утвержден несколькими крупными компаниями, в том числе IBM, Intel, Microsoft и NEC. В июне 2009 года Еврокомиссия приняла разъем micro USB в качестве стандартного для зарядки смартфонов, выпускаемых 14 крупнейшими производителями.

USB используется для подключения к компьютеру Flash-накопителей, жестких дисков, звуковых карт, колонок, микрофонов, MIDI-клавиатур, адаптеров Wi-Fi, модемов, клавиатур, мышей, джойстиков, веб-камер, принтеров, кард-ридеров, оптических приводов и прочей техники, а также для зарядки аккумуляторов и питания маломощных устройств. Компания Microsoft ввела поддержу USB в Windows 98, Apple в начале века пыталась продвигать стандарт FireWire, однако впоследствии отдала предпочтение USB, а в некоторых продуктах использует собственную разработку — интерфейс Lightning, основанный на USB 2.0 и нескольких проприетарных протоколах.
Официально стандарт USB 1.x был утвержден в начале 1996 года. Он предусматривал обмен данными на двух скоростях: низкой — до 1,5 Мбит/с и высокой — до 12 Мбит/c. В 1998 стандарт был обновлен до версии 1.1, в которой был устранен ряд проблем первой версии.
USB 2.0 утвержден в апреле 2000 года и до настоящего момента наиболее распространен. Теоретически максимальная скорость обмена данными выросла до 480 Мбит/с, в реальной жизни она редко превышает 280 Мбит/с. Напряжение, подаваемое через плату составляет 5 В при силе тока 150 или 500 мА.
Кабель USB вплоть до версии 2.0 содержит четыре проводника, два из которых используются для передачи данных, другие два — для подачи питания периферийному устройству. Обычно кабель бывает экранирован.
Стандарт USB 3.0 утвержден в 2008 году, в нем скорость передачи данных увеличена до 5 Гбит/с, а сила тока — до 900 мА. В кабеле USB 3.0 используется девять проводников: два для питания и семь для передачи данных. Стандарт также получил дополнительную спецификацию для использования в зарядных устройствах — сила тока составляет 1,5 А, при этом передача данных не предусмотрена. Как правило, контакты порта USB 3.0 размещены на площадке синего цвета.
В 2013 году утвержден стандарт USB 3.1, в котором теоретическая скорость передачи информации выросла по сравнению с USB 3.0 вдвое — до 10 Гбит/с. Стандарт обратно совместим с USB 2.0 и 3.0. Сила тока при напряжении 5 В увеличена до 2 А, также предусмотрено питание с силой тока 5 А при напряжении 12 и 20 В.

Чаще всего внешние устройства, питающиеся от USB, поддерживают «горячее» подключение и отключение, что достигается замыканием заземляющих контактов и как следствие отсутствием разницы потенциалов корпусов.
Передача данных между USB-хостом и периферийным USB-устройством осуществляется через управляемый программно USB-контроллер. Данные передаются короткими пакетами «вопрос-ответ». Пакеты одновременно уходят в оба направления, при этом контроллер не дожидается подтверждения их доставки, что обеспечивает обмен данными с высокой скоростью. Пакеты могут передаваться как с гарантией доставки (например, в устройствах ввода), так и без нее (при передаче видео и звука).
Для подключения устройств к порту USB предусмотрено несколько типов разъемов, они отличаются размером, дизайном и расположением контактов. Существуют как стандартные разъемы, так и проприетарные, ограниченные применением в продукции той или иной компании. Нестандартные разъемы могут применяться для передачи дополнительной информации — к примеру, при использовании гарнитуры телефона.
Не работает USB порт: что делать?
Наверх- Рейтинги
- Обзоры
- Смартфоны и планшеты
- Компьютеры и ноутбуки
- Комплектующие
- Периферия
- Фото и видео
- Аксессуары
- ТВ и аудио
- Техника для дома
- Программы и приложения
- Новости
- Советы
- Покупка
- Эксплуатация
- Ремонт
- Подборки
- Смартфоны и планшеты
- Компьютеры
- Аксессуары
- ТВ и аудио
- Фото и видео
- Программы и приложения
- Техника для дома
- Гейминг
- Игры
- Железо
- Еще
- Важное
- Технологии
- Тест скорости
Как превратить «столетний» usb-хаб в «умный» управляемый и сэкономить при этом 300$
Как-то давно понадобился мне хаб, желательно с большим количеством портов и c достаточно удобной формой, пригодной для встраивания вместо флоппи-дисковода в отсек 3,5». Беглый просмотр барахолки подкинул модель D-link DUB-H7, да еще и в комбинации «2 по цене 1». Внешний осмотр ничего особенного не дал, хаб как хаб, сделан добротно, капитальный «принтерный» USB AM-BM на оборотной стороне и 3 А блок питания. Как всегда первым делом разобрал, порадовался малому количеству пустых мест вместо элементов вкупе с качественной пайкой и успокоился. Правда на всякий случай зашел в интернет посмотреть, а что это за хаб и есть ли интересные проекты с его участием. Проектов не оказалось, отзывы пользователей 50/50, в общем, никакой динамики. Хаб на протяжении 5-7 лет довольно сносно работал и выполнял свою задачу, потом плавно переместился в коробку для электронного хлама и вполне возможно сгинул бы в итоге вместе с безызвестными переходниками, адаптерами и т. п. Но произошло у меня в жизни событие, которое заставило-таки меня покопаться в мешках со старым барахлом, найти этот, как оказалось уникальный D-link, и стряхнув пыль извлечь его на божий свет. Если интересно послушать зачем — добро пожаловать под cut.
Intro или Плач о жадных производителях usb-хабов
С появлением маленьких удобных SoC роутеров (вроде любовно описанного мной в статье Руководство по доведению «до кондиции» клона популярного китайского мини-роутера Hame A15, он же «unbranded A5-V11» ) и повсеместного внедрения openwrt для управления сонмами устройств (в абсолютном большинстве случаев, это устройства подключаемые по USB) очень актуальной задачей становится задача управления электропитанием всевозможных модемов, картридеров, usb-rs232 преобразователей и т. д. и т. п. Найболее часто встречается необходимость управления портом при работе с GSM-модемами (для перезагрузки, например). В принципе, народ наработал уже достаточное количество решений. Для этих целей, начиная от использования свободных GPIO выводов в роутере, и заканчивая готовыми реле. Существуют решения и от сторонних производителей. Это например программируемый USB хаб на 4 порта от Acroname, который и в корпусе приятном и программным обеспечением богат, но стоит около 300$.
Есть вариант подешевле, умный переключаемый хаб с приятным названием Yupkit YKUSH всего лишь за 35€:
Самые же экономные могут использовать связку из самого дешевого usb хаба, нормально закрытого 5V реле, и любой из Arduino-к для отключения питания от usb порта в случае необходимости. Стоимость такого решения < 10$, без учета временных затрат на пайку и программирование Arduino.
Казалось бы тупик. Либо дорого и красиво, либо просто и на соплях неказисто. Но оказалось существует третий вариант. Притом решение старо, как сама спецификация USB 2.0 для хабов в которой оно описано.
Выдержки из спецификации, касающиеся управления питания USB
Self-powered hubs may have power switches that control delivery of power downstream facing ports but it is not required. Bus-powered hubs are required to have power switches. A hub with power switches can switch power to all ports as a group/gang, to each port individually, or have an arbitrary number of gangs of one or more ports. A hub indicates whether or not it supports power switching by the setting of the Logical Power Switching Mode field in wHubCharacteristics. If a hub supports per-port power switching, then the power to a port is turned on when a SetPortFeature(PORT_POWER) request is received for the port. Port power is turned off when the port is in the Powered-off or Not Configured states. If a hub supports ganged power switching, then the power to all ports in a gang is turned on when any port in a gang receives a SetPortFeature(PORT_POWER) request. The power to a gang is not turned off unless all ports in a gang are in the Powered-off or Not Configured states.
…
Although a self-powered hub is not required to implement power switching, the hub must support the Powered-off state for all ports. Additionally, the hub must implement the PortPwrCtrlMask (all bits set to 1B) even though the hub has no power switches that can be controlled by the USB System Software.
Переводя на русский, получается, что в стандарте USB уже прописана возможность управления питанием портов, с помощью т.н. Per-Port Power Switching (PPPS), но вот встретить устройство, которое бы поддерживало эту возможность не просто тяжело, а очень тяжело. Для реализации PPPS-функционала необходимы дополнительные компоненты (полевые транзисторы и обвязка), которые в целях экономии в хабы не устанавливаются.
Чутко реагируя на запросы рынка некоторые производители указывают в спецификациях хабов функцию PPPS, но на деле дальше надписи на коробке дело не идет. И в принципе, придраться тяжело, ведь многие чипы внутри хабов эту функцию поддерживают, но вот реализовать ее без дополнительных переключателей (транзисторов) невозможно (чаще всего USB порты напрямую подключены к линии +5V).
Я даже разобрал специально несколько маленьких USB-хабов, которые планировал использовать совместно c A5-V11 роутером. Внутри оказались: чип GL850G и горяче любимый китайцами FE1.1s. Естественно внутри обнаружились только сами контроллеры с минимумом деталей. Ввиду миниатюрного размера платы поместить даже навесным монтажом транзистор и примкнувшие к нему детали тяжело. Пришлось это успокоится. Хотя, в зависимости от чипа, если в даташите встречается упоминание о over-current detection and Individual or ganged power control, то можно провести операцию по smart-изации такого устройства по методу описанному в статье. Товарищ использовал комбинацию из транзистора и кучки резисторов для включения функции PPPS в своем хабе.
Схема переделки и внешний вид устройства
Также читая документацию, ловишь себя на том, что в ней нет-нет да и встречается упоминание о том, что режим управления портами можно реализовать, добавив дополнительно в схему какой-нибудь AIC1526-0 или MIC2026 (Dual-channel power distribution switch).
Схемы из даташитов не дадут соврать
Часть основная или переходим к сути
Обуреваемый невеселыми мыслями по поводу покупки китайских хабов с неизвестным функционалом («кота в мешке») и невозможности предварительной их проверки, я нечаянно натолкнулся на статью, посвященную настройке openwrt для управления питанием USB-хаба, притом в качестве примера приведен тот самый, заброшенный и забытый D-Link DUB-H7 в сером корпусе.
Изучив матчасть стало ясно, что на борту хаба помимо достаточно продвинутого контроллера Philips ISP1521BE есть и целая куча тех самых dual-channel power distribution switch AIC1528-0 для полноценного переключения питания. Хотя судя по даташиту, чип с минимальным обвесом сам может управлять питанием downstream портов (а еще там много чего, как оказалось, не реализовано, например индикация активности upstream порта с помощью технологии GoodLink, или хост USB 1.1 для корректной поддержки смеси 2.0 и 1.1 на downstream портах и т.д. и т.п.).
Кстати, для тех, кто решится повторить пройденный мной путь, сразу скажу, что современные версии D-Link DUB-H7 (в черном глянцевом корпусе) уже не так полезны, как старички серого цвета.
По информации с wikidevi.com (1,2,3,4) существует несколько ревизий данного хаба, с различным набором компонентов на борту, и соответственно с различным функционалом (А1/A5 — ISP1521BE 7-port, B1-2xGL854G 4-port, C1 — 2xGL850Z 4-port).
Внимание на D-Link DUB-H7 обращено еще и потому, что помимо его неплохого функционала, это еще и самый доступный (как по цене, так и по распространенности) в наших краях вариант. Из моделей, которые могли упоминаться попутно с «Per-Port Power Switching» можно дополнительно отметить, например, такие:
- Linksys USB2HUB4 USB 2.0 hub.
- D-Link DFB-H7 Combo Hub
- Elecom U2H-G4S
- Sanwa Supply USB-HUB14GPH
- Targus Inc. PAUh312
- Hawking Technology Uh314
Мне искать упомянутые устройства не довелось, потому что когда-то повезло с версией ревизии A5. Правда сейчас, если бы пришлось покупать такой хаб, я бы постарался найти ревизию B1, потому что помимо управления питанием портов, чип, на котором она построена (GL854G) имеет внутри такую штуку, как Multi Transaction Translator.
Важность наличия Multi Transaction Translator (MTT) в USB хабе
Небольшое отступление для того, чтобы расказать, что такое этот Multi Transaction Translator (MTT) и почему он так важен и нужен. Передатчик операции (англ. transaction translator, TT) является важным компонентом любого высокоскоростного хаба, который обеспечивает связь между upstream и downstream портами концентратора, особенно в случае, когда эти порты работают на разных скоростях передачи данных. Фактически, TT отделяет низко- и среднескоростные устройства, от высокоскоростных (сугубо USB 2.0, например) и отвечает за работу на скоростях USB 1.1.
Передатчик операции может быть двух видов — одинарным (англ. Single Transaction Translator, STT) или множественным (англ. Multiple Transaction Translator, MTT). В случае STT используется один передатчик для всех портов, а в случае MTT — у каждого порта свой передатчик. Понятно что первый вариант более дешевый и простой, откуда происходит и основной недостаток такого варианта — в случае подключения к хабу нескольких USB 1.1 портов все они будут работать через одно-единственное «бутылочное горлышко». Думаю можно представить что будет со скоростью обмена.
Говоря простым языком, STT-хабы имеют ограничение на количество устройств, которыми можно пользоваться одновременно. В противном случае это чревато потерей пакетов из-за конфликтов в планировании передачи данных, перегрузкой хаба (особенно в случае использования активно обменивающихся данными устройств, вроде звуковых карт) и т.п. Поэтому лучше при выборе хаба сразу ориентироваться на устройства с MTT, а не искать потом причину нестабильности в работе. Если хаб уже имеется, и он, к несчастью, оказался с STT, то остается только внимательно проверить стандарты подключенных к хабу устройств и, по возможности, сократить количество подключенных USB 1.1 до одного.
К сожалению, абсолютное большинство недорогих хабов, построенных на бюджетных чипах (fe1.1s, GL850G, и ISP1521BE моего A5 хаба) на борту имеют STT, более дорогие и продвинутые (GL852G, GL854G (B1 ревизия обсуждаемого D-link DUB-H7), GL3520, VL812, VL813, SMSC USB2514) работают под управлением MTT.
Проверить тип передатчика операции можно либо прочитав даташит на чип (но часто китайцы не могут или не хотят сообщать марку чипа), либо подключив хаб к компьютеру с *nix и выполнив команду lsusb -v и найдя кусок служебной информации, относящийся к исследуемому хабу (по названию). В строке DeviceProtocol будет указано либо Single TT либо Multi TT. Ясно, что покупать лучше только с Multi 🙂
Описание характеристик хаба выданное командой lsusb
Bus 001 Device 005: ID 2001:f103 D-Link Corp. DUB-H7 7-port USB 2.0 hub
Couldn’t open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 1 Single TT
bMaxPacketSize0 64
idVendor 0x2001 D-Link Corp.
idProduct 0xf103 DUB-H7 7-port USB 2.0 hub
bcdDevice 1.00
iManufacturer 0
iProduct 0
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0001 1x 1 bytes
bInterval 12
При запуске команды lsusb -v -t можно увидеть симпатичную иерархическую структуру подключенных usb-устройств.
Вместо lsusb можно использовать утилиту hwinfo с ключем —usb (ее желательно предварительно установить через sudo apt-get install hwinfo). Тогда вывод информации о usb устройствах будет выглядеть немного иначе:
Информация выдаваемая hwinfo
lab@lab-G:~$ hwinfo —usb
23: USB 00.0: 10a00 Hub
[Created at usb.122]
Unique ID: zFuK.sOcBcpBDhs4
Parent ID: k4bc.9T1GDCLyFd9
SysFS ID: /devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8:1.0
SysFS BusID: 1-8:1.0
Hardware Class: hub
Model: «D-Link DUB-H7 7-port USB 2.0 hub»
Hotplug: USB
Vendor: usb 0x2001 «D-Link»
Device: usb 0xf103 «DUB-H7 7-port USB 2.0 hub»
Revision: «1.00»
Driver: «hub»
Driver Modules: «usbcore»
Speed: 480 Mbps
Module Alias: «usb:v2001pF103d0100dc09dsc00dp01ic09isc00ip00in00»
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #21 (Hub)
В общем, кратенько с особенностями работы низкоскоростных устройств разобрались и теперь самое время перейти к программной части.
Управляем питанием USB-портов
Cкажу сразу, найти способ реализации функционала PPPS в среде Windows мне не удалось (хотя бы из праздного интереса). Максимум — включить/отключить устройство с помощью утилиты devcon. Буду рад, если кто-то из читателей поправит и дополнит. А пока же все процедуры проводятся на примере Ubuntu (в случае openwrt – алгоритм аналогичен, хотя в последних trunk-ах она уже должна быть включена в состав «дистрибутива»).
Итак, возможность Per-Port Power Switching (PPPS) или «попортового переключения питания» реализуется на хабах с аппаратной поддержкой этой функции с помощью программы hub-ctrl или ее потомка uhubctrl. Рассмотрю их по-очереди.
HUB-CTRL
Программа написана японским борцом за независимость инженером Niibe Yutaka в далеком 2006 году. Но работает без проблем и сейчас. Для установки нам понадобится любой *nix и библиотека libusb-dev. На примере Ubuntu 16.04 LTS алгоритм следующий:
Устанавливаем доп. пакеты: sudo apt-get update && sudo apt-get install libusb-dev git gcc Скачиваем исходники: git clone https://github.com/codazoda/hub-ctrl.c Комплируем с помощью gcc: cd hub-ctrl.c && gcc -o hub-ctrl hub-ctrl.c -lusb
В случае недоступности адреса, можно вручную закачать исходники отсюда или отсюда и скомпилировать описанной выше командой.
У программы достаточно простой синтаксис командной строки, укладывающийся в следующее описание:
./hub-ctrl [{-h HUBNUM | -b BUSNUM -d DEVNUM}] \ [-P PORT] [{-p [VALUE] | -l [VALUE]}]
где HUBNUM — номер хаба, BUSNUM-номер шины, DEVNUM-номер устройства, PORT-номер порта
Для того, чтобы узнать эти параметры, достаточно запустить команду lsusb:
Кстати, программа hub-ctrl может выступать в качестве своеобразного «пробника» usb-хаба на факт наличия в нем способности к управлению питанием портов. Достаточно ее запустить с ключом -v. Получаем список имеющихся в системе поддерживаемых хабов (строка INFO) и состояние портов (в моем случае все порты выключены).
lab@lab-G:~/hub$ sudo ./hub-ctrl -v
Hub #0 at 001:006
INFO: individual power switching.
WARN: Port indicators are NOT supported.
Hub Port Status:
Port 1: 0000.0000
Port 2: 0000.0000
Port 3: 0000.0000
Port 4: 0000.0000
Port 5: 0000.0000
Port 6: 0000.0000
Port 7: 0000.0000
А вот так будет выглядеть конфигурация, когда все порты включены:
lab@lab-G:~/hub$ sudo ./hub-ctrl -v
Hub #0 at 001:006
INFO: individual power switching.
WARN: Port indicators are NOT supported.
Hub Port Status:
Port 1: 0000.0100 power
Port 2: 0000.0100 power
Port 3: 0000.0100 power
Port 4: 0000.0100 power
Port 5: 0000.0100 power
Port 6: 0000.0100 power
Port 7: 0000.0100 power
Чтобы включить какой-то из портов нужно выполнить команду sudo ./hub-ctrl -h 0 -P 1 -p 1, где -h указывает какой хаб используем (0-й в моем случае), -P говорит какой порт (1-й порт в моем случае), а -p указывает на состояние (0-выключен, 1-включен).
Чтобы получить конфигурацию как на картинке выше, понадобилось последовательно выполнить следующие команды (для изначально отключенных портов):
sudo ./hub-ctrl -h 0 -P 2 -p 1
sudo ./hub-ctrl -h 0 -P 4 -p 1
sudo ./hub-ctrl -h 0 -P 6 -p 1
Соответственно, не сложно написать скрипт, который заставит for fun мигать светодиоды в нужной последовательности. Примеры таких вещей уже есть и успешно функционируют:
азбука Морзе на usb-хабе, елочные гирлянды и т.д. и т.п. Мне вот из возможностей hub-ctrl не хватило функции циклического включения для реализации своих сиюминутных светотехнических фантазий (чтобы не тратить время на написание скрипта ну и т.п.). Этот досадный недостаток устранен в преемнике — uhubctl.
UHUBCTL
Программа uhubctl представляет из себя оптимизированный аналог hub-ctrl и обладает некоторыми косметическими отличиями (ну и конечно же поддерживает большее количество устройств).
С uhubctl работают:
Теоретически, утилита может быть скомпилирована для запуска в среде windows, но… Но пока взаимодействует она с утройствами через драйвер winusb.sys, который не может обращаться напрямую к хабу. Также в программе заявлена поддержка USB 3.0 (хабов USB 3.0 поддерживающих Per-Port Power Switching, кстати, намного больше чем хабов USB 2.0 с аналогичным функционалом). При работе с USB 3.0 хабом, подключенным к USB 3.0 upstream-порту, программа определяет его как два независимых виртуальных хаба: USB 2.0 и USB 3.0, а уже сами USB-устройства будут подключены к одному из них в зависимости от их возможностей и скорости соединения. Соответственно, для управления такими устройствами программа по-умолчанию включает/отключает питание на виртуальных хабах (перевести утилиту в ручной режим можно добавив в команду запуска ключ -е).
Важно: некоторую путаницу может вызвать система адресации для USB-портов (она схожа для hub-ctrl и uhubctl). При работе использует тот же метод адресации аналогичный таковому в ядре Linux: b-x.y.z, где b — номер шины USB, а x, y, z — номера портов цепочки узлов, начиная с корневого USB-хаба для данной шины. Если имеется больше чем один управляемый USB-хаб, определить правильные параметры можно запустив uhubctl с параметром -l (location). Отмечу, что эта адресация является полустабильной — она не изменится, если вы отключите и подключите USB-устройства обратно к одному и тому же физическому порту.
Алгоритм компиляции программы аналогичен алгоритму для hub-ctrl. За тем только исключением, что дополнительно нужно установить библиотеку libusb-1.0 (версия 1.0.12 или позднее) привычной командой sudo apt-get install libusb-1.0-0-dev, а затем скомпилировать бинарик командой make.
Синтаксис запуска программы следующий
uhubctl -a off -p 2
Эта команда отключает питание (-a off, или -a 0) на порту 2 (-p 2). Поддерживаемые команды off/on/cycle (или 0/1/2). Ключ cycle отключает питание, выжидает некоторое время (определяется ключом -d) и включает его обратно. Т.е. теперь хаб запросто для мигания может заменить микроконтроллер.
Что из этого всего следует, или Выводы
А следует из этого то, что «секрет» в старом хабе от D-Link все-такие есть. Использование описанной технологии (PPPS) вполне обосновано при необходимости удаленного управления массивом устройств, подключенных к шине USB. Более того, способ этот уже используется для отключения жестких дисков, веб-камер и GSM-модемов (таких как на картинке):
Хотя, что касается модемов и упомянутого мной D-link DUB-H7, то есть люди, которые подвергают сомнению работоспособность такой связки (при работе с программой hub-ctrl).
Причина заключается в том, что…
«… эксперименты с использованием Dlink DUB H-7 показали, что hub-ctrl -p 0 понижает напряжение только до уровня 1.47V. При этом после вставки модема в такой «выключенный порт» светодиод не моргает, однако файлы /dev/ttyUSBx для данного модема в системе появляются. Они даже могут быть открыты. Однако запись команд и чтение ответов из этого порта не заканчиваются успехом.»
Описанные в статье утилиты (lsusb, hwinfo, hub-ctrl) могут выступать отличным подспорьем при выборе очередного USB-хаба, особенно, если нет доступа к просмотру внутреннего устройства. На хабре уже описывались пользовательские идеи и ожидания от идеальных usb-хабов (здесь и здесь). Описанные алгоритмы проверки существующих хабов, на мой взгляд, отлично дополнят и разбавят описанные авторами подходы. Ну и так, вдогонку, герой моей статьи (D-link DUB-H7 ver. A5) на мой взгляд очень неплохо выглядит с точки зрения схемотехнических решений. На сим, пожалуй, откланяюсь 🙂
P.S. Вдогонку вопрос к членам хабра-сообщества, у которых вдруг совершенно случайно завалялся такой же как у меня D-link DUB-H7 в сером корпусе.
Что за детали установлены на обведенных позициях (а может быть кто-то даже видел схему)? Особенно интересуют элементы RP1…RP2 (подозреваю на резисторную сборку из 0-х cопротивлений).
Дополнение: если вдруг кому-то понадобится дамп прошивки микросхемы EEPROM 24C02, то выглядит он вот так:
Важно! Все обновления и промежуточные заметки из которых потом плавно формируются хабра-статьи теперь можно увидеть в моем телеграм-канале lab66. Подписывайтесь, чтобы не ожидать очередную статью, а сразу быть в курсе всех изысканий 🙂
Список использованных источников

