реклама на сайте
подробности

 
 
> Есть желание сделать TCP/IP over USB, Порекомендуйте стартовую точку для реализации RNDIS
VslavX
сообщение Feb 17 2009, 09:45
Сообщение #1


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



На данный момент в устройствах для обмена с "внешним миром" есть целых три протокола - один для RS-232/485, один для USB, и один для etehrnet. Так уж "исторически" получилось smile.gif. В итоге появилось осознанное желание оставить только TCP/IP, а "несетевые" интерфейсы перевести на "пакетный режим" - IP. Для RS-232 скорее всего будет SLIP и/или PPP, для RS-485 - пока нет ясности, а вот для шины USB некая компания Microsoft предлагает RNDIS - драйверы в Windows имеются готовые, осталось "уговорить принцессу" написать свой firmware. Поиск по форуму и в Сети ничего толкового не дал, может быть уважаемый All чего полезного посоветует в качестве отправной точки? Платформа без разницы - интересует лишь пример реализации - "just for reference"
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AlexandrY
сообщение Feb 17 2009, 10:02
Сообщение #2


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



RNDIS по сути транспортирует Ethernet пакеты
Нафик устройствам такой оверхед?
Делаете на USB виртуальный COM порт и присоединяетесь по PPP способом Direct Cable Connection. Оверхед будет меньше.


Цитата(VslavX @ Feb 17 2009, 11:45) *
На данный момент в устройствах для обмена с "внешним миром" есть целых три протокола - один для RS-232/485, один для USB, и один для etehrnet. Так уж "исторически" получилось smile.gif. В итоге появилось осознанное желание оставить только TCP/IP, а "несетевые" интерфейсы перевести на "пакетный режим" - IP. Для RS-232 скорее всего будет SLIP и/или PPP, для RS-485 - пока нет ясности, а вот для шины USB некая компания Microsoft предлагает RNDIS - драйверы в Windows имеются готовые, осталось "уговорить принцессу" написать свой firmware. Поиск по форуму и в Сети ничего толкового не дал, может быть уважаемый All чего полезного посоветует в качестве отправной точки? Платформа без разницы - интересует лишь пример реализации - "just for reference"
Go to the top of the page
 
+Quote Post
VslavX
сообщение Feb 17 2009, 10:27
Сообщение #3


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(AlexandrY @ Feb 17 2009, 12:02) *
RNDIS по сути транспортирует Ethernet пакеты
Нафик устройствам такой оверхед?
Делаете на USB виртуальный COM порт и присоединяетесь по PPP способом Direct Cable Connection. Оверхед будет меньше.

Тоже вариант. Но разницу между фреймами PPP/802.3 не считаю принципиальной, судя по описанию RNDIS от MS - ничего там сильно оверхедного нет. Все равно в устройстве есть полный сетевой стек - осталось только интерфейсы нужные дописать - а это 10-15% от всей уже проделанной работы. Впрочем, PPP будет имплементироваться "по-любому" - для модемов/RS-232, поэтому без проблем можно будет попробовать и на CDC.
Еще виртуальный COM на USB не особо хочется из-за проблем в "штатных" драйверах Windows. Да, в XP SP(какой-то) вроде уже получше с usbser.sys стало, но у нас есть клиенты и на 98SE/2000 (есть и на 95/DOS, но им USB "даже не сниться").
RNDIS же в действии видел - мой КПК по USB так подключается. На мой взгляд - вполне элегантное решение, для пользователя все просто - подключил шнурок и получил сетевое соединение автоматически. Еще недавно был на семинаре Telit - там тоже плату подключали по USB, на плате был Linux c RNDIS-клиентом, и кажется, даже u-boot работал по сетке через USB.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Feb 17 2009, 16:29
Сообщение #4


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Сочувствую.
Выж не клиент, а разработчик.
PPP через виртуальный COM также автоматом включается как и RNDIS. Надо только incoming connection в винде поставить на прослушивание.
Эта фишка в виндах по моему с версии 3.11 идет.
Только RNDIS по USB ой как сложно вам будет снифить, не в пример PPP по COM порту.


Цитата(VslavX @ Feb 17 2009, 12:27) *
RNDIS же в действии видел - мой КПК по USB так подключается. На мой взгляд - вполне элегантное решение, для пользователя все просто - подключил шнурок и получил сетевое соединение автоматически. Еще недавно был на семинаре Telit - там тоже плату подключали по USB, на плате был Linux c RNDIS-клиентом, и кажется, даже u-boot работал по сетке через USB.
Go to the top of the page
 
+Quote Post
VslavX
сообщение Feb 17 2009, 17:44
Сообщение #5


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(AlexandrY @ Feb 17 2009, 18:29) *
Сочувствую.

Спасибо smile.gif. Только сочувствие не требуется, скорее наоборот - это ж интересно - заимплементить весчь типа RNDIS.
Цитата(AlexandrY @ Feb 17 2009, 18:29) *
Только RNDIS по USB ой как сложно вам будет снифить, не в пример PPP по COM порту.

То есть? "Сверху" на PC RNDIS пакеты нормально возьмутся ethereal (aka wireshark) (работает по NDIS), "снизу" на USB - софтовым сниффером типа USBlyser. С этими обоими снифферами уже много работал - особых проблем не вижу. Потенциальная проблема может быть в неполноте спецификации RNDIS от MS - но там драйверы крошечные, и к ним символы в pdb выложены. Собственно имеется некоторый опыт и с самим NDIS (приходилось работать в команде по написанию firewalls), поэтому все "непонятки" можно будет выяснить при помощи IDA. Еще большой плюс RNDIS (по сравнению с текущим используемым WinUSB), что он работает начиная от Win98.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- VslavX   Есть желание сделать TCP/IP over USB   Feb 17 2009, 09:45
|- - AlexandrY   Вижу вы уверены, что сокращения вам еще долго не г...   Feb 17 2009, 20:00
|- - VslavX   Цитата(AlexandrY @ Feb 17 2009, 22:00) Ви...   Feb 17 2009, 22:30
|- - AlexandrY   Так на что собираетесь портировать RNDIS? Процессо...   Feb 18 2009, 18:15
|- - VslavX   Цитата(AlexandrY @ Feb 18 2009, 20:15) Та...   Feb 18 2009, 21:53
- - Rst7   Кстати, я так понимаю, RNDIS сам по себе поднимает...   Feb 17 2009, 11:58
- - Concorde   Я писал. В общем, реализация приема/передачи Ether...   Feb 21 2009, 00:22
- - Дмитрий Мазунин   Уважаемый Concorde, прошу Вас ответить на вопрос -...   Feb 25 2009, 09:11
|- - Concorde   Цитата(Дмитрий Мазунин @ Feb 25 2009, 12...   Feb 25 2009, 16:06
|- - AlexandrY   А вы уверены что делали RNDIS и что вы сами его де...   Feb 25 2009, 21:29
|- - VslavX   Цитата(AlexandrY @ Feb 25 2009, 23:29) А ...   Feb 25 2009, 22:08
|- - Concorde   Цитата(AlexandrY @ Feb 26 2009, 00:29) А ...   Feb 25 2009, 23:37
- - DiMonstr   У меня вопрос конкретно по Remote NDIS. Ваяю обра...   Feb 6 2010, 18:45
|- - VslavX   Цитата(DiMonstr @ Feb 6 2010, 20:45) REMO...   Feb 6 2010, 21:51
|- - DiMonstr   Цитата(VslavX @ Feb 7 2010, 00:51) Э-э-э-...   Feb 8 2010, 09:18
|- - VslavX   Шина USB работает в формате little-endian, это зна...   Feb 8 2010, 12:56
|- - DiMonstr   Цитата(VslavX @ Feb 8 2010, 15:56) Шина U...   Feb 8 2010, 17:26
- - DiMonstr   Вопрос. FX2LP настроен на режим Slave FIFO. Внешни...   Feb 24 2010, 08:55
- - knk   Добрый день! Сейчас занимаюсь такой-же задачей...   Sep 23 2012, 14:05
- - knk   Добрый день! С REMOTE_NDIS_INITIALIZE_CMPLT вр...   Sep 25 2012, 14:04


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th July 2025 - 06:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01508 секунд с 7
ELECTRONIX ©2004-2016