Ethernet через USB

Материал из wikixw
Перейти к навигации Перейти к поиску

Ethernet через USB означает использование USB в качестве сети Ethernet. Но это также можно интерпретировать как некоторое устройство Ethernet, которое подключено через USB (вместо, например, PCI или PCIe ).

Протоколы[править]

Существуют многочисленные протоколы для сетей Ethernet-стиля через USB. Основной мотивацией для этих протоколов является возможность независимого от приложений обмена данными с USB-устройствами вместо специализированных протоколов, таких как видео или MTP. Несмотря на то, что USB не является физическим Ethernet, сетевые стеки всех основных операционных систем настроены для транспортировки кадров IEEE 802.3, не заботясь о том, что на самом деле является базовым транспортом.

Основные отраслевые протоколы (в хронологическом порядке): удаленный NDIS (RNDIS, протокол поставщика Microsoft), модель управления Ethernet (ECM), модель эмуляции Ethernet (EEM) и модель управления сетью (NCM). Последние три являются частью более крупного класса устройств связи (CDC) группы протоколов форума разработчиков USB (USB-IF). Они доступны для загрузки с USB-IF (см. ниже). Спецификация RNDIS доступна на веб-сайте корпорации Майкрософт. Что касается де-факто стандарты, некоторые стандарты, такие как ECM, определяют использование ресурсов USB, которыми не обладали ранние системы. Однако незначительные изменения стандарта, так называемые подмножества, делают возможными практические реализации на таких платформах. Примечательно, что даже некоторые из самых современных платформ нуждаются в небольших помещениях, и поэтому поддержка этих подмножеств по-прежнему необходима.

Из этих протоколов ECM на сегодняшний день самый простой—кадры просто отправляются и принимаются без изменений по одному. Это была хорошая стратегия для систем USB 1.1 (текущая при выпуске протокола) с 64-байтовыми пакетами, но не для систем USB 2.0, которые используют 512-байтовые пакеты.

Проблема в том, что кадры Ethernet имеют размер около 1500 байт—около 3 пакетов USB 2.0 и 23 пакета USB 1.1. Согласно тому, как работает система USB , каждый пакет отправляется как передача, серия пакетов максимальной длины, завершаемая коротким пакетом или специальным zlp (пакетом нулевой длины). После этого есть задержка шины, где ничего не отправляется, пока другая передача не может быть начата. Это уменьшает загрузку автобусов, а это означает, что ничего не отправляется в течение значительных долей времени автобуса. Промежуток каждые 23 кадра не заметен, но промежуток каждые три кадра может быть очень дорогим для пропускной способности.

Поскольку USB стал быстрее, устройства также стали более голодными для данных, и поэтому теперь существует спрос на отправку больших объемов данных - либо для хранения на устройстве, либо для ретрансляции по беспроводным каналам (см. 3GPP долгосрочная эволюция ).

Поскольку новые устройства, хотя и быстрее, чем раньше, все еще намного ниже по мощности, чем настольные ПК, возникает вопрос о тщательной обработке данных, чтобы максимизировать использование ресурсов DMA на устройстве и минимизировать (или исключить) копирование данных (нулевое копирование). В протоколе по НКМ содержатся подробные положения по этому вопросу. См. ссылку ниже для тщательного сравнения протоколов.

Драйвер дляLinux[править]

Модуль USB-eth в Linux делает компьютер, на котором он работает, разновидностью устройства Ethernet, использующего USB в качестве физического носителя. Он создает сетевой интерфейс Linux, которому может быть назначен IP-адрес и в противном случае обрабатывается так же, как истинный интерфейс Ethernet. Любые приложения, которые работают через реальные интерфейсы Ethernet, будут работать через интерфейс USB-eth без изменений, потому что они не могут сказать, что они не используют реальное оборудование Ethernet.]

На хостах Linux соответствующий модуль ядра Ethernet-over-USB называется usbnet. Сетевой драйвер Bahia -это драйвер в стиле usbnet, доступный для хостов Win32.

Подход позволяет приборам с очень лимитированным оборудованием связей работать над сетями IP. Ядро Linux для iPAQ использует эту коммуникационную стратегию исключительно, так как оборудование iPAQ не имеет ни доступного последовательного порта (RS-232/ RS-422), ни выделенного сетевого интерфейса.

Поставщики[править]

SEGGER обеспечивает реализацию IP через USB для USB-устройств, которые не требуют установки драйвера на хосте независимо от ОС хоста. При запуске USB-соединения программный пакет определяет, к какому хосту он подключен, а затем запускает необходимый класс, RNDIS или CDC-ECM (класс устройства связи, модель управления Ethernet) и все IP-сервисы, необходимые для работы. Micrium с IS2T совместно обеспечивают реализацию Ethernet через USB, которая может использоваться как с Java, так и с C/C++

Пруф[править]

.usb.org/