Wpm usb что это
Включаем HDMI в USB: что для этого нужно?
Сразу к делу: переходник с hdmi на usb. Любое устройство, которое гонит видео на hdmi, становится для компьютера как веб-камера.
Зачем это может быть полезно?
Последний случай как раз мой, на его примере и рассмотрим этот адаптер. Но для реализации плана нам потребуется еще одно полезное устройство, впрочем об этом позже.
Итак, что же мы видим?
Упаковка переходника — обычная картонная коробка. Возобновляемые ресурсы, экологичность, никакого пластика, зеленым понравится.
На обороте — краткие характеристики. Заявлена поддержка видео по входу до 4К, на выходе до 1080, длина кабеля до 15м. Обратная совместимость со всеми стандартами usb, поддержка со стороны win mac и андроид. Звук тоже передается этим устройством, это важно. Да, и никакого внешнего питания, что конечно удобно.
Открываем. Находим описание и собственно устройство.
Описание еще раз повторяет сведения с коробки, дополняя их банальными рекомендациями по втыканию разъемов в нужные гнезда. На обороте все то же самое на китайском.
Корпус производит впечатление дорогой вещи. Алюминий, приятный цвет, анодированное покрытие.
С одной стороны — hdmi разъем.
… с другой — usb 3.0. Судя по синему цвету штекера. У устройства есть еще usb 2.0 версия, она стоит немного дешевле, но я экономить не стал и купил «на вырост».
Я не удежрался и решил все разобрать. Два торца установлены на 4 винта. На одном винтике пломба, но для разборки устройства выкручивать его не обязательно, достаточно снять один из торцов. Но я вошел во вкус и снял оба.
Пайка аккуратная, флюс смыт, компоненты подписаны — любо-дорого поглядеть.
Теплоотвод на корпус. Позже увидим, как обстоят дела с нагревом.
На плате есть еще линейный преобразователь, память, кварц и немного резисторов.
Но все волшебство железки скрыто в одном чипе — MS2109.
Я посмотрел его спецификацию, вот ее фрагмент:
Ну конечно. Этот чип поддерживает только usb 2.0.
Отлично. Диспут ушел продавцу, а мы пока посмотрим, как эта штука работает.
Тестировать буду в паре с одним замечательным устройством, которое я уже как-то обозревал. Это «удлинитель» hdmi по витой паре. У меня в укромных местах стоят всякие сервера, к ним протянута витая пара и их экраны я хочу периодически выводить на свой монитор. Помогает мне в этом два переходника:
Вот мой обзор этого замечательного девайса, много раз помогал он мне и избавлял от таскания монитора по пыльным местам.
Сегодня две эти железки найдут друг друга.
Компьютер мигом нашел новое устройство и сам установил драйвера из интернета. Осталось только запустить программу для просмотра видео.
Пока не подключен провод и сигнал отсутствует, переходник hdmi2usb выдает тестовую картинку с цветными полосками. Это удобно, при любых проблемах сразу можно исключить неисправность адаптера, если эта картинка есть.
Да, программа, которую я использовал, называется Smart Camera. Очень рекомендую, все нужное и ничего лишнего. Бесплатная. Легко найдете в инете.
Для примера вывел экран видеорегистратора.
Когда переключаешься в полноэкранный режим возникает полное впечатление, что смотришь в монитор этого регистратора. Никаких помех и артефактов.
Вот меню выбора доступных разрешений экрана и частоты кадров:
Я дополнил комплект еще вот таким устройством:
Это удлинитель usb по витой паре. На него у меня тоже есть обзор. Подключаем мышку и клаву. У меня регистратор метрах в 10-15. Все три устройства — два удлинителя и переходник с hdmi на usb работают превосходно. Конечно, небольшая задержка видео присутсвтует, как без этого. Все-таки картинка претерпевает перекодировку по дороге. Но если не елозить бешено мышкой, кликая в случайные точки, то вполне можно работать. А клавиатурой, в командной строке — так и вовсе отлично.
Надо сказать, что устройство греется очень умеренно: после получаса работы температура 30-40 градусов.
Так что могу порекомендовать все три переходника. С учетом того факта, что мне usb2 продали по цене usb3. Но я уверен, что получу компенсацию в размере разницы в цене.
В сегодняшнем обзоре принимали участие:
Удлинитель hdmi по витой паре
Настоящий шнур hdmi на 15 метров стоит бешеных денег, а этот позволяет использовать любой патч-код для удаленного просмотра картинки с hdmi. Звук, кстати, тоже передает. Меньше 300 рублей все удовольствие.
Еще один удлинитель hdmi по RJ45 — более свежая версия. Сам не держал в руках, у меня и синяя превосходно работает, но это вроде как посвежее и капельку дешевле, так что оставлю ссылку здесь.
Удлинитель usb по витой паре — бюджетный вариант, стоит около 200 рублей. Метров 10-15 провод держит уверенно. Мышка, клава работают превосходно, флешки не проверял. У меня было два комплекта таких, но один сгорел. Так что теперь собираюсь купить подороже, вот такой:
Еще один удлинитель usb по витой паре — продвинутая версия, стоит под 1000 рублей.
Ну и наконец, герой обзора:
Адаптер HDMI to USB. Я купил версию с usb 3.0, но похоже она отличается от usb 2.0 только цветом штекера. Usb 3.0 у меня прекрасно работает.
Должен предупредить, что 2.0 я не тестировал, и что отличия только внешние — это мое предположение.
Как технология USB over IP позволила людям забыть о расстоянии
Источник изображения
Сегодня быстрым ростом количества устройств сети Интернет и интернета вещей уже никого не удивишь. Существует множество различных протоколов и технологий, на которых основана обработка и обмен информацией между устройствами и, собственно, сама связь этих устройств.
Некоторые технологии являются своеобразными канонами: используются уже не один десяток лет и постоянно совершенствуются. А есть и такие, которые либо уже вымерли, либо родились, но так и не попали в массы ввиду своего несовершенства, низкой релевантности в отношении требований рынка и прочего.
В этой статье речь пойдет о технологии, не относящейся ни к одной, ни к другой группе — USB over IP. Без нее компьютерные сети существовали бы без особых проблем, но она способна значительно упростить работу и снизить затраты на эксплуатацию у крупных предприятий, небольших организаций и даже обычных пользователей. К примеру, с помощью нее можно пробросить аппаратный USB-ключ защиты ПО внутрь облачной платформы или облака на базе VMware и использовать его так, словно он установлен на локальной машине. Но обо всем по порядку.
История появления технологии USB over IP
Сложно сказать, когда именно появилась технология проброса USB-девайсов через сеть в том виде, в каком ее используют сейчас. Вероятнее всего, с развитием возможностей программных компонентов Linux, ростом потребностей рынка и изобретательности энтузиастов.
В наши дни существуют два популярных инструмента для трассировки USB-устройств: usbip и usbip-win. Оба нацелены на совместное использование USB-устройств через IP-сеть за счет обработки USB I/O сообщений, их инкапсуляции в TCP/IP и последующей передачи между устройствами сети типа «клиент-сервер». В такой схеме устройства подключаются к серверу, и на нем же запускается необходимый демон.
На машине клиента, как правило, запускается любое приложение, которое не умеет работать с сетью, зато прекрасно справляется с USB-девайсами. Технология проброса как раз позволяет эмулировать локальное подключение USB-устройств на клиентской машине.
Кому это интересно и где применяется
Преимущества сетевого проброса USB-устройств:
Используемые технологии и оборудование
Способ обмена информацией у локальных и удаленных устройств отличается лишь тем, что для удаленных девайсов будет использоваться виртуальный драйвер шины: набор инструкций и данных, осуществляющий преобразование логической информации или данных в физические сигналы.
Подключение локальных и удаленных устройств
Когда приложения отправляют запрос на конечное устройство, USB PDD (USB Personal Device Driver) преобразует запросы ввода-вывода в серию команд понятных для USB, а затем отправляет их через драйвер шины (связующее звено между драйвером устройства и конечным устройством) в виде блоков USB-запросов на конечное устройство.
Способы проброса аппаратных ключей
Персональный драйвер устройства (PDD), как ни странно, отвечает за управление отдельными USB-устройствами. PDD отправляет запросы в виде специальных блоков запросов URB (USB Request Block), которыми он обменивается данными с ядром USB (USB Core) — отдельной подсистемой внутри ОС, выполняющей роль поддержки USB-устройств и контроллеров.
Модель обмена данными между USB-устройствами и конечным пользователем
Для реализации проброса протокола USB через IP-сеть была разработана сущность, называемая виртуальным интерфейсом хост-контроллера, или Virtual Host Controller Interface (VHCI). VHCI относится к виртуальному контроллеру и способен экспортировать виртуальные USB-устройства, не поддерживаемые физическими устройствами. В Linux контроллеры VHCI используются для доступа к USB-устройствам с удаленных машин, подключенных по уже известному нам протоколу USBIP.
VHCI является эквивалентом драйвера хост-контроллера (HCD) и отвечает за обработку URB-запросов. И VHCI, и HCD отвечают за обработку URB-запросов, полученных от ядра, и делят их на более простые запросы, именуемые Transfer Descriptions (дескрипторы передачи TD) для их дальнейшей передачи на хост-контроллер интерфейса, он же USB-контроллер (Host Controller Interface HCI). Данный интерфейс работает на уровне физических регистровых передач и обеспечивает коммуникацию с периферийными устройствами, подключенными к USB.
Теперь о том, как USB попадает в сеть. Блок запросов URB преобразуется в блок запроса USB / IP драйвером VHCI и отправляется на удаленный компьютер. Драйвер заглушки также добавлен как новый тип USB PDD. Драйвер-заглушка отвечает за декодирование входящих USB / IP-пакетов с удаленных машин, извлечение URB и последующую отправку их на локальные USB-устройства.
Модуль ядра vhci-hcd — это только виртуальный хост-контроллер, к которому вы можете подключить виртуальные устройства.
Как это устроено в Selectel
Рассмотрим работу с USB-концентратором на примере устройства DistKontrolUSB-16. Для того, чтобы пробросить USB-устройство с порта концентратора, необходимо:
Заключение
Описанная технология способна обеспечить необходимую масштабируемость и гибкость в современной, постоянно изменяющейся среде. Проброс USB-устройств через сеть также обеспечивает надежность за счет ограничения физического доступа к устройствам.
Отсутствует необходимость перемещать оборудование, а безопасность сети повышается за счет возможности использования алгоритмов шифрования и настройки прав доступа. Доступна планировка сценариев для каждого отдельно взятого устройства.
Снижение рисков и затрат на обслуживание, удобство совместного использования ресурсов между рабочими станциями — все это делает технологию usbip конкурентоспособной в отношении безопасной авторизации и передачи данных (с TOTP/HOTP, OCRA) и применимой для решения широкого спектра задач IT.
Введение в разработку USB периферии
Контекст
Разрабатывается электронное устройство, которое будучи подключенным к датчику выполняет измерение микроперемещения и передаёт результат на ПК, где он выводится в удобной для оператора графической форме. Область применения измерительного прибора — машиностроение.
Немного о том, как всё работает
На схеме показаны основные действующие лица, участвующие в жизни разрабатываемого прибора.
Микроконтроллер — основной элемент устройства, который подаёт управляющие сигналы на датчик и принимает отклик, по которому вычисляет результат измерения. С помощью реализованного стека USB обмен данными с хостом сводится практически к работе с буферами чтения и записи. Ввиду того, что измерительный алгоритм не требует больших вычислительных мощностей и период одного измерения равен 100-150 мс выбран микроконтроллер at90usb162 (8 бит, 16 МГц, 16 кБ). В этом МК есть аппаратная поддержка USB, что значительно упрощает программную реализацию стека USB. В прочем, реализовывать стек и заниматься инициализацией МК мне не пришлось благодаря примеру USB Generic HID Implementation из сопроводительного пакета ПО. Из альтернатив фирменным примерам для AVR есть фреймворк LUFA (лицензия MIT) для AT90USBxxxx и ATMEGAxxUx и полностью программная реализация стека V-USB (GPL или коммерческая лицензия), позволяющая работать с AVR-овскими МК без аппаратной поддержки USB.
Немножко о аббревиатуре HID. Это класс USB-устройств, предназначенных для ввода данных человеком: клавиатура, мышь, игровые контроллеры. Предполагается, что у таких устройств небольшой объем передаваемой информации, как и у разрабатываемого устройства: пакеты по 8 байт с интервалом в 100-150 мс. Главное удобство работы с устройствами этого класса — наличие стандартного драйвера в ОС, что освобождает от написания своего.
Хостом (мастером, ведущим) в моём случае является ПК, а точнее встроенный в материнку контроллер USB. Согласно дескриптору (описанию) моего устройства хост опрашивает его на предмет новых посылок с периодом примерно в 20 мс. Прикладное ПО собирает принятые хостом данные, проводит небольшую обработку и рисует индикаторы, напоминающие автомобильные спидометры, на которых показываются измеряемые величины. Выводится список подключенных датчиков и их настройки, которые можно изменить: изменения будут переданы на устройство и сохранены в энергонезависимой памяти.
Одна из идей приложения — кроссплатформенность, поэтому оно разрабатывается во фреймворке Qt на С++, а обращения к ОС для считывания и передачи данных выполняются через библиотеку libusb. Последние несколько месяцев идёт активная разработка бэкенда libusb v1.0 для виновс, уже пишут о предрелизном статусе и, что более важно, у меня с ней вроде всё работает. Также есть порт libusb v0.1 для винды — LibUsb-Win32. Тема работы через WinAPI подробно и с примерами на Visual Basic и Visual C# раскрыта в книге USB Complete (о книге). Я WinAPI попробовал и мне не понравилось.
100 ватт по USB или как работает Power Delivery
Почитав вот этот пост и сопутствующую ему дискуссию, я решил попробовать внести ясность в то, что такое USB Power Delivery и как это работает на самом деле. К сожалению у меня сложилось впечатление, что большинство участников дискуссии воспринимают 100 ватт по USB слишком буквально, и не до конца понимают что за этим стоит на уровне схематики и протоколов.
Итак, кратко – основные пункты:
О кобелях Про кабели
USB Power Delivery работает с шестью типами коннекторов:
Про порты
После сертификации USB PD порты маркируются следующим образом:
Данное лого информирует о версии USB (2.0 или 3.0 SuperSpeed), а также о профилях электропитания которые поддерживает данный порт. Значение ”I” означает потребляемый профиль, необходимый для полноценного функционирования устройства, а значение «О» то какой профиль порт может предоставить. Примеры маркировки портов:
Физический канал
USB PD определяет принципиальную схему физической организации соединения посредством кабеля следующим образом:
Как видно из схемы, USB PD также требует чтобы и в источнике и в приемнике были реализованы схемы определения падения/скачка напряжения, а так же методы определения разряженной батареи для случаев когда одна из сторон не может запитаться от своего внутреннего источника.
В качестве алгоритмов для определения разряженной батареи предлагаются следующее. Если одна из сторон выставляет сопротивление в 1кОм между экраном и землей, это свидетельствует о том что ее батарея разряжена. В такой ситуации другая сторона берет на себя роль источника и начинает отдавать минимальные 5В, чтобы дать через VBus питание противной стороне и начать обмен сообщениями по протоколу USB PD.
Как уже упоминалось ранее, для обмена сообщениями USB PD протокол использует линию VBus. Ниже приведена блок-схема, определяющая ключевые функциональные элементы передатчика:
И соответственно такая же блок-схема для приемника:
Сериализированная кодировка 4b5b и декодировка 5b4b подразумевает что все данные по шине, кроме преамбулы пакета, передаются пятибитными последовательностями в соответствии c таблицей кодировки, определяемой стандартом. Каждая такая последовательность кодирует либо одну из 16 цифр (0x00..0x0F), либо сигналы начала / синхронизации / сброса и конца пакета. Таким образом передача одного байта занимает 10 бит, 16-битного слова – 20 бит и 32-битного двойного слова – 40 бит и т.д.
Логический канал
USB PD протокол основывается на последовательных парах типа запрос-ответ. Запросы и ответы пересылаются с использованием пакетов. Пакеты состоят из преамбулы (фаза подготовки к передаче), начала пакета SOP (три сигнала Sync-1 и завершающий Sync-2 в кодировке 4b5b), заголовок, 0..N байт полезной нагрузки, контрольной суммы (CRC-32) и сигнала конца пакета (одиночный сигнал EOP):
Как было упомянуто выше, преамбула не кодируется в 4b5b. SOP, CRC и EOP кодируются 4b5b на физическом уровне, заголовок и полезная нагрузка кодируются на уровне логического протокола.
Сброс шины производится путем посылки трех сигналов RST1 и завершающего сигнала RST2, в соответствии с кодировкой 4b5b.
Протокол
Все USB PD сообщения состоят из заголовка и порции данных произвольной длины. Сообщения либо генерируются на уровне логического протокола и затем пересылаются на физический уровень, либо принимаются на физическом уровне и затем пересылаются на уровень логического протокола.
Заголовок сообщения имеет фиксированную длину 16 бит и состоит из следующих полей:
Сообщения бывают двух видов – управляющие (control) и информационные (data).
Управляющие сообщения
Контрольные сообщения состоят только из заголовка и CRC. Количество объектов данных для таких сообщений всегда устанавливается в 0. Типы управляющих сообщений USB PD представлены в таблице ниже:
Отдельно следует упомянуть что поля вида tSourceActivity, tSinkRequest и т.д. — это константы, значения которых глобально заданы самой спецификацией в отдельной главе. Сделано это потому что они определялись опытным путем в результате прототипирования, и найденные оптимальные значения просто подставили в отдельную главу, чтобы не рыскать по всей спецификации.
Информационные сообщения
Данный вид сообщений предназначен для получения детальной информации об источнике или приемнике, а также для передачи запрашиваемых характеристик электропитания – сила тока, напряжение и т.д. Информационные сообщения всегда содержат ненулевое значение в поле ”Number of Data Objects”.
Спецификация определяет четыре вида информационных сообщений:
Сообщение о характеристиках
Порт источника всегда обязан сообщать свои характеристики приемнику путем передачи серии 32-битных объектов PDO. Информация переданная посредством этих объектов используется для определения возможностей источника, в том числе включая возможность работать в режиме приемника.
Сообщения о характеристиках представляются в виде одного или нескольких объектов следующих за заголовком:
PDO соответствующий элементу с постоянным типом электропитания 5V всегда должен идти первым в цепочке объектов.
Структура объекта PDO:
Для каждого типа электропитания предлагаются различные характеристики.
Постоянный тип электропитания, напряжение постоянное. Источник должен иметь хотя бы один такой элемент:
Программируемый тип электропитания, напряжение может регулироваться путем запросов в пределах между минимальным и максимальным:
Вариативный тип электропитания, напряжение может изменяться в заданных пределах абсолютного минимума и абсолютного максимума, но не может регулироваться:
Батарея, данный тип используется для обозначения батарей которые могут быть напрямую подключены к линии VBus:
Сообщение о запросе
Сообщения о запросах передаются приемником к источнику для передачи своих требований в фазе установления соглашения по электропитанию. Данное сообщение посылается в ответ на сообщение о характеристиках и должно содержать один и только один объект запроса данных – RDO, который описывает информацию о требуемых характеристиках электропитания для приемника.
Данный запрос имеет два типа, в зависимости от адресуемого типа элемента электропитания, переданного в сообщении о характеристиках источника. Для запросов к элементу электропитания постоянного или вариативного типа, либо батареи поля ”Operating Current / Power” и ”Total Current / Prog Voltage” интерпретируются одним путем, а для запросов к элементу программируемого типа – другим путем, так как в этом случае запрашивается и напряжение, и сила тока.
Структура объекта RDO:
На мой взгляд данной информации достаточно, чтобы получить хорошее представление о принципах работы USB Power Delivery. Я сознательно не стал углубляться в дебри, связанные с таймерами, счетчиками и обработкой ошибок.
Взаимодействие с традиционным USB
Как уже было упомянуто выше, Power Delivery – это самостоятельная подсистема, которая функционирует параллельно и независимо от канонического USB. Тем не менее, в случаях когда устройства реализуют оба протокола – и USB и Power Delivery, спецификация рекомендует реализацию т.н. System Policy Manager или SPM, компонента который может контролировать оборудование USB PD посредством традиционных запросов USB.
Для систем с поддержкой SPM, спецификация рекомендует предоставить PD информацию посредством специальных типов USB дескрипторов. Не считаю нужным в них детально углубляться, просто перечислю их названия:
Заключение
Надеюсь что данным постом я подогрел интерес публики к USB Power Delivery. Скромно замечу, что автор имеет непосредственное отношение к данной спецификации, поэтому готов ответить на любые вопросы по Power Delivery в частности и USB в общем.