Ethernet - связь через USB - PullRequest
       21

Ethernet - связь через USB

0 голосов
/ 01 октября 2009

У меня есть часть оборудования, которая отправляет данные USB через Ethernet (будут отправляться только данные, хранящиеся в пакете). На удаленном ПК данные принимаются через Ethernet. Как я могу отправить эти данные в драйвер USB, чтобы он преобразовывал данные в команды, которые могут использовать приложения?

Ответы [ 4 ]

1 голос
/ 05 октября 2009

Вам лучше получить аппаратное обеспечение, которое выполняет ответную реакцию, отправляет информацию USB на основе IP в подсистему USB, а не пытаться взломать сам драйвер программного обеспечения. Я не могу представить, что у вашего поставщика оборудования нет устройства, которое делает это.

0 голосов
/ 01 октября 2009

Я думаю, это будет неприятно.

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

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

Я могу придумать несколько причин, по которым даже хорошо спроектированный USB-стек не справится с этим счастливо.

В Linux вы могли бы «обмануть», интерпретировав данные самостоятельно и отправив их, используя тот же API-интерфейс, который использовался бы фактическим драйвером. Конечно, это не сработает для любого USB-устройства, для этого требуется знать, что это за устройство.

0 голосов
/ 05 октября 2009

Это выполнимо также и для Windows, но вам нужно много знаний о ядре / USB, чтобы заставить его работать, я не думаю, что я ошибусь, оценивая эту задачу как несколько человеко-лет (вы можете значительно уменьшите эту оценку, если у вас ограниченный выбор устройств / типов устройств для поддержки.
Вам потребуется разработать драйвер шины, который будет имитировать драйвер хост-контроллера для собственного хоста usb, к сожалению, этот интерфейс не является общедоступным, и нам не удалось наладить сотрудничество с MS по этому вопросу.
Есть дополнительная опция для работы на уровне концентратора, вместо этого на уровне контроллера, этот интерфейс доступен, но мне не удалось найти мои заметки по этому поводу.
Вы можете скачать оценочную версию и изучить стек драйверов, который может дать вам подсказку, с чего начать.

0 голосов
/ 01 октября 2009

Вам нужен сервер, прослушивающий порт / сокет, к которому вы пытаетесь подключиться. Twisted Matrix делает достойные библиотеки Python для сетевых коммуникаций.

...