Rndis Драйвер
- На этой странице вы можете выбрать и скачать подходящий драйвер для Remote NDIS based Internet Sharing Device производства Rndisdevices. Воспользуйтесь поиском для выбора других продуктов от Rndisdevices. Информация по устройству. Системный идентификатор: USB VID_12D1&PID_14E4&MI_00 Также определяется как: USB VID_12D1&PID_14E4. Каталог драйверов.
- Доброе время суток, дорогие друзья! Первым делом хотелось бы с лучшими пожеланиями.
Feb 23, 2017 - Устройства удаленного сетевого драйвера интерфейса спецификации (RNDIS) устанавливается на компьютере под управлением.
Доброе время суток, дорогие друзья! Первым делом хотелось бы с лучшими пожеланиями поздравить всех с минувшими новогодними праздниками. Ранее была анонсирована разработка RNDIS USB драйвера для контроллеров серии STM32F4. С тех пор библиотека постепенно развивалась и нынче доросла до первой release-версии.
Библиотека под названием LRNDIS (LWIP + RNDIS) позволяет нам создавать на базе контроллера STM32F4 как устройства класса USB «модем», так и любые другие устройства с управлением через web-интерфейс. Пример управления платой stm32f4-discovery из web-браузера на Android-планшете представлен на видео: На странице видеоролика представлена ссылка на исходные коды и HEX-файл прошивки для платы discovery, с которым вы сможете повторить данный эксперимент.
В статье рассказано о том, как и когда технология доступа через WEB-интерфейс полезна, а также — как работает библиотека LRNDIS для контроллеров STM32F4. Также присутствует обучающий материал о работе USB и устройстве Ethernet-сетей. Предыстория создания библиотеки Предыстория проекта весьма типовая.
Стоял тёплый летний день. Гхм Для заказчика стояла задача разработать устройство с сервисным интерфейсом управления. По мере развития прошивки было введено несколько команд управления по VCP-интерфейсу. Это значит, что после подключения USB-устройства в ОС создавался виртуальный COM-порт. Используя его, из пользовательского терминала передавались команды управления и диагностики.
В ответ от устройства принимался статус выполнения и его текущее состояние. Система вполне типовая с сервисной точки зрения: есть последовательный порт и набор команд для управления и диагностики. Всё изменилось в короткий срок.
По объективным причинам рос требуемый набор команд. Также понадобилась интерактивность вывода: некоторые параметры стало необходимо отображать в динамике. Как, например, показания магнитного датчика при проносе мимо него ферромагнетика. Для этого были введены дополнительные команды, которые, оперируя, печатали информацию в пользовательском терминале с высокой периодичностью. Это создавало необходимое ощущение риалтаймовости наблюдения. Интерактивные команды оказались настолько удобными для инженеров, что некоторая часть команд позже была добавлена в соответствии с концепцией.
И тут раздался треск. Энап отзывы. Требовалось поддержать сразу несколько групп команд: интерактивные, диагностические, команды управления. При этом периодический рефакторинг кода был связан с трудоёмкой правкой в большом количестве обрабатываемых команд. Ясно стало, что ещё должна быть пользовательская группа команд — для менее квалифицированного персонала, который будет просто следовать инструкциям по эксплуатации. Для них возникла идея написания клиентского терминала с кнопочками и флажочками И вот тут возникли сомнения: стало ясно, что мы занимаемся сервисной частью, уделяя всё меньше внимания функциональности! А ведь пользовательская программа, запускаемая на клиентской ЭВМ, также должна обладать своими требованиями: кроссплатформенность и LTS (длительностью поддержки). Устройство, предположим, мы закончили, а пользовательское ПО мы должны портировать и тестировать с каждой версией выпускаемых операционных систем!
Так и родился вопрос — как избавиться от дополнительных трудозатрат? Было принято решение использовать стандарты гарантированно длительной поддержки. Те стандарты, которые нам позволят создать клиентскую программу управления устройством, которая будет поддерживаться максимально полным набором операционных систем в настоящем и будущем времени. На первых парах были найдены недостатки популярных кроссплатформенных фрэймворков: — java: необходимость наличия в ОС, и вытекающий из противного предположения необходимость дистрибьюции виртуальной машины — qt: периодическая необходимость и запуска под Android. Нет, эти сложности пугать не должны.
Вопрос, пожалуй, только в трудочасах, которые мы, бывает, недооцениваем с учётом фактора длительной поддержки. Так родилась идея сделать WEB-интерфейс для управления устройством. Он не требует разработки стороннего ПО, браузеры для отображения управляющей страницы есть во всех требуемых ОС. Потенциал оформления интерфейса огромный.
Длительность поддержки в части стандартов http/html/js тоже не вызывает сомнений. По замыслу, управление должно было работать следующим образом. Подключаемое по USB устройство представляется сетевой картой 2. Клиентская ЭВМ (ПК или гаджет) получает IP-адрес для работы в сети нашего устройства 3. По запросу web-браузера на клиентской ЭВМ наше устройство отдаёт страницу 4.
Rndis Драйвер Для Андроид
На странице присутствует информация о текущем состоянии и доступные элементы управления 5. При активации клиентом элементов управления, из браузера передаются соответствующие HTTP-запросы. По сути, между браузером и устройством, ходят те же самые текстовые команды, но только в формате HTTP протокола. Надо понимать, что это всего лишь один из вариантов из большого набора возможных решений.
Rndis Драйвер Windows 7
Он имеет свои плюсы и минусы. Так случилось, что сейчас к использованию web-интерфейсов прибегают производители в основном сугубо сетевых устройств: настройка модемов и роутеров. Посыл данной статьи — давайте применять то что, действительно, удобно. И давайте не бояться сложностей на пути: их преодоление сейчас нам сэкономит куда больше времени в будущем!
Сфера применения библиотеки К сожалению, первый анонс в полной мере успешным не был, т.к. Рассказ о сфере применения был упущен.
Rndis Драйвер Windows Xp
Попробуем немного наверстать упущенное и раскрыть эту тему. Если мы находимся на этапе системного проектирования устройства, то следующие соображения могут склонить нас в сторону использования web-интерфейсов (вне зависимости от физического канала, Ethernet или USB): 1. Устройство должно иметь интерфейс управления и/или диагностики 2. Средства управления могут использоваться не только на этапе разработки, но и на этапе эксплуатации (ПО пользователя) 3. Квалификация пользователя может быть недостаточно высокой, что требует дружественный интерфейс управления 4. Способ «дружественного» управления должен быть доступен из под разных платформ и ОС 5. Соответствующие средства требуется поддерживать в рабочем состоянии длительное время Дополнительным критерием может являться то, разрабатываем ли мы изначально сетевое устройство.
А также: не будет ли (в противном случае) добавление в прошивку сетевого стека и web-сервера являться избыточным на фоне куда менее богатого функционала устройства. Иными словами, добавление web-интерфейса в контроллер управления лампочкой — очевидно, избыточное решение. Если мы поверили в web-интерфейс, то следующие соображения, возможно, нам помогут в выборе физического канала связи (из Ethernet и USB перспективы). Тип Внутрисхемное подключение Типовое применение Ethernet Ethernet PHY контроллер — Промышленные устройства — Бытовые устройства с сетевой функцией и доп. Питанием USB ULPI контроллер или прямое подключение к МК Бытовые и часть промышленных устройств. В особенности, если: — устройства имеют не гарантированный источник питания (питание от батареи, например) — устройства потенциально подключаемые к хосту только с USB интерфейсом (например, планшет) — миниатюрный класс устройств От себя добавлю — не смотря на все прелести, не посоветовал бы применять USB в промышленных узлах с требованием повышенной надёжности: часто встречается негативный опыт.
Если альтернативы нет — то вопрос устойчивости требуется изучить досконально. Исходя из приведённых пунктов, становится ясна сфера применения библиотеки: бытовые и часть промышленных устройств, которые: — работают на базе МК STM32F4 — должны обладать дружественным интерфейсом управления — должны управляться из под разного аппаратного и программного набора — могут не иметь гарантированного источника питания — должны иметь длительный период поддержки ПО управления Возможных примеров использования технологии много даже вне области сугубо сетевых устройств.
К примеру, на данный момент есть планы по превращению stm32f4-discovery в инструмент любительской разработки с функциями портативного генератора/анализатора сигналов и осциллографа. Подключите такой помощник к телефону и посмотрите в динамике что происходит в интересующей вас цепи. Из бесплатных плюсов — не требуется собирать или устанавливать ПО; достаточно прошить HEX-файл и открыть браузер — в нём будут присутствовать все прелести GUI-интерфейса.
На мой привередливый вкус — то что нужно. Конечно, инструмент не для профессиональной разработки, но известный интерес к нему присутствует.
Итак, надеюсь, разобрались. А теперь о том как работает библиотека. Как оно работает При ответе на этот вопрос спешить не будем. Человек, имеющий небольшой опыт взаимодействия с сетями, может вполне справедливо смутиться. Поэтому, касаясь того или иного протокола взаимодействия я буду также давать его краткое техническое описание на том уровне которого когда-то не хватало самому. Подключаем USB-устройство. Как говорилось раньше, на этом этапе наше устройство говорит хосту «я — сетевая карта!».
Клиентская ЭВМ) после подключения к нему нашей поделки, начинает отправлять запросы. — как изделие называется — какой у изделия VID и PID (идентификаторы производителя и изделия, ) — к какому относится устройство — по каким endpoint точкам и какими блоками следует обмениваться данными Ну, и некоторую другую информацию. Конфигурационные пакеты при этом передаются по точке endpoint 0. Ответные пакеты от устройства с информацией о себе обычно называют «дескрипторы USB устройства».
Подробно ознакомиться о процессе опроса (энумерации) можно. Вообще, протокол USB достаточно богат иногда даже кажется, что избыточно.
Однако, это богатство вот уже много лет позволяет подключать совершенно разные устройства, даёт возможность передавать изохронные потоки, блоки данных, прерывания. В общем, всё необходимое, что может потребоваться широкому набору современных устройств. Обратная сторона медали — высокий порог входа в разработку USB-устройств. После получения информации об устройстве, ОС хоста производит поиск подходящего драйвера для взаимодействия. В типовом случае, вроде flash-носителей (USB класс MSC) или клавиатуры с мышкой (HID класс), загружается стандартный для класса драйвер. В более «тяжёлом» случае, вроде нашей USB сетевой карты (CDC класс с RNDIS подклассом), операционная система поступает по усмотрению: — ОС linux/android/mac, как правило, успешно пытается наладить типовой обмен — ОС windows просит установить внешний драйвер Наше устройство в первом случае работает сразу. В случае ОС windows (позднее XP) можно установить.
Для Windows XP необходимо поставить inf-файл, доступный. Драйвер инициализирует RNDIS-устройство На данной картинке изображён принцип связи с RNDIS устройством (ОС Windows). Более подробно о нём можно почитать.
Если вкратце, то RNDIS протокол — это расширение NDIS для внешних устройств. Роль протокола — обеспечить поддержку PnP и обмен сетевыми пакетами. По сути своей, RNDIS — самостоятельный сетевой интерфейс, информационной нагрузкой которого являются кадры канального/сетевого уровней (Ethernet или IP кадры, опционально). На приведённой схеме это реализует кубик «Минипорт Remote NDIS», который отвечает за: — сервис общения (спросить у сетевого устройства его MAC-адрес, размер пакета, скорость работы и прочее) — оборачивает отправляемые хостом сетевые пакеты в RNDIS заголовок — транслирует принимаемые от устройства пакеты, выбрасывая RNDIS заголовок Кубик «Минипорт Remote NDIS USB» отвечает за транзит RNDIS посылок, работая с драйвером USB шины. На стороне контроллера STM32 за поддержку RNDIS протокола и работу с USB отвечает файл.
Он делает то же самое, что и «кубик» хоста «Минипорт Remote NDIS» — занимается приклеиванием/отклеиванием заголовков, а также отвечает на вопросы драйвера. Ответы, вроде MAC-адреса и скорости он берёт из файла. После успешной инициализации RNDIS драйвер Windows создаёт сетевой интерфейс, который в последствии отображается в «Центре управления сетями» и в области трей-индикатора. Получение IP-адреса Итак, для чего нужна служба получения динамического адреса. Эта служба называется (протокол динамической настройки узла).
После того как хост инициализирует наше устройство, он создаёт сетевой интерфейс. #define NOSYS 1 #define MEMALIGNMENT 4 #define LWIPRAW 1 #define LWIPNETCONN 0 #define LWIPSOCKET 0 #define LWIPDHCP 0 #define LWIPICMP 1 #define LWIPUDP 1 #define LWIPTCP 1 #define ETHPADSIZE 0 #define LWIPIPACCEPTUDPPORT(p) ((p) PPNTOHS(67)) #define MEMSIZE 10000 #define TCPMSS (1500 /.mtu./ - 20 /.iphdr./ - 20 /.tcphhr./) #define TCPSNDBUF (2. TCPMSS) #define ETHARPSUPPORTSTATICENTRIES 1 #define LWIPHTTPDCGI 1 #define LWIPHTTPDSSI 1 #define LWIPHTTPDSSIINCLUDETAG 0 Также была решена проблема с memmalloc. Хоть текущая версия прошивки и не использует динамическую аллокацию, аппаратный крах при вызове memmalloc держал настороже. Разрешилось добавлением определения MEMALIGNMENT, который раньше был обойдён вниманием. По этой же причине стабильно заработал поддерживаемый сообществом HTTP-сервер, что и побудило отказаться от планов создания собственного. Нерешённые вопросы 1.
Ньюансы релицензирования стека lwip, который может иметь свои условия включения в состав другого ПО; 2. Доработка DNS-сервера для обработки «многовопросных» пакетов; Вместо заключения Благодарю читателя за терпение и надеюсь, что данная статья окажется для него полезной. Опубликованная в исходных кодах доступна для использования на правах MIT-лицензии. Считаю замечательным, если работа, на которую было уделено ощутимое время и запас сил, окажется полезной ещё кому-то. На худой конец, без использования открытых библиотек не получилось бы и этой. В данный момент планируется поддержка библиотеки, поэтому за вопросами можно обращаться по адресу электронной почты fsenok@gmail.com. Только зарегистрированные пользователи могут участвовать в опросе., пожалуйста.
Извините, пропустил вопросы. HonixBox не продавался, это было бесплатное приложение к Eserv-Eproxy, вспомогательное устройство для прокси. USB-драйвер использовался USBSER (виртуальный COM-порт) — там на сайте написано. USB-питания хватало, но с альтернативным внешним питанием более гибкие возможности, ведь USB в HonixBox может работать и хостом (в USB-OTG), т.е. Само питать внешние устройства.
Кроме того, если нужен только Ethernet, а USB не нужен, то запитать через разъём питания можно не только от 5В-адаптера, но и более высоких напряжений. Да, о том что драйвер был бы полезен во встраиваемых ОС думал. Думаю даже, что займусь этим вопросом.
В контики, кстати, что не очень нравится, включен стек uIP. Смотрел на него, но отказался, т.к. Он оптимизирован под 8 или 16 битные МК. Хотя, конечно, его простота и нетребовательность весьма привлекательна. Кстати, как у Contiki, так и у uIP и LwIP один автор, на сколько помню — Adam Dunkels. Про сложность написания серверной части могу сказать — не сложно, ибо есть много примеров. Вот один из них: (вариант Raw API programming).
Интересный подход, взял на заметку. Но на мой взгляд, у него также есть слабые места: 1. Независимость от операционных систем допольно спорная. Все же нужен низкоуровневый драйвер сетевой карты, который умеет общаться с вашим устройством.
И если сегодня стандартный работает, не получится ли так что он перестанет работать в будущем? Нет совместимости с нестандартными клиентами, где такого драйвера нет. Wi-fi или Bluetoooth гораздо более стандартны, чем USB сетевая карта. Очень уж сложные требования к разработчику web-интерфейса.
Я так понимаю, тут нужно нечто особое и обычному специалисту по PHP/HTML/Javascript придется адаптироваться под такую уникальную «серверную» платформу. Позволю не согласиться.
Всех приветсвтую. В этой записи речь пойдет о регулировке тепловых зазоров в газораспределительном механизме, т.е регулировка клапанов). Регулировка клапанов на ваз( лада) 2114 - 8 клапанный двигатель. Если понравилось видео составь лайк и подпишись!! Jun 1, 2017 - Регулировка клапанов ВАЗ 2114 не сложная процедура. Следует выполнить действия по указанной инструкции и все у вас получится. Инструкция по регулировке клапанов ваз 2114. Нормальную функцию механизма газораспределения обеспечивает правильная регулировка клапанов ВАЗ 2114. Самостоятельная регулировка клапанов на 8 клапанном инжекторном двигателе ВАЗ 2114 в гаражных условиях. Необходимость регулировки клапанов.
Технология Ethernet over USB (в частности RNDIS), вероятно, должна поддерживаться пока есть Ethernet и USB, ибо позволяет прокидывать кадры одного через другое. А также — пока есть такой класс устройств, как USB-модем или USB сетевая карта. Бесспоно, есть много нестандартных устройств. Однако для ноутбуков, десктопов и большей части планшетов поддержка есть, что, собственно, устраивает.
Касательно Wi-Fi — хороший вариант взаимодействия. Однако, ставить в разрабатываемые изделия лишь для сервиса управления пока что представляется нецелесообразным. Со встраиванием bluetooth не сталкивался на практике. Есть сомнения, что Web-интерфейс по нему можно прогнать и это будет поддерживаться множеством устройств. Иначе придётся писать клиентское ПО. Гхм «Очень уж сложные требования к разработчику web-интерфейса» — какие?
Однако уровень среднестатистических показателей интеллекта за последние 10 лет существенно снизил темпы развития. Буквы и цифры. Тренажер «Буквы и цифры плюс» от сервиса BrainApps – это превосходный способ не только поддерживать свой мыслительный потенциал в тонусе, но развивать его, что бы не отставать от ритмов современной информационной нагрузки. Как работает?
Разработчики устройства и интерфейса договариваются о наборе запросов управления и получения статуса. Далее web-разработчик пилит интерфейс у себя на локальной машине. Требуемые знания: HTML/JS/JQUERY.