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

 
 
> Есть желание сделать 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
Ответов
DiMonstr
сообщение Feb 6 2010, 18:45
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 81
Регистрация: 26-10-06
Из: Россия, Пенза
Пользователь №: 21 706



У меня вопрос конкретно по Remote NDIS.

Ваяю обработку запросов по спецификации Remote NDIS. Чип юзаю от кипариса FX2LP.
По ходу дела столкнулся с таким траблом.
В спецификации изложено, что
1)хост передает в запросе Send Encapsulated Command сообщение
REMOTE_NDIS_INITIALIZE_MSG (Size 24 bytes):
02 00 00 00
18 00 00 00
02 00 00 00
01 00 00 00
00 00 00 00
00 40 00 00
2)девайс подтверждает его получение передачей RESPONSE_AVAILABLE по Endpoint INTERRUPT
3)на что хост, выставив запрос GET_ENCAPSULATED_COMMAND, забирает данные от девайса в сообщении
REMOTE_NDIS_INITIALIZE_CMPLT(Size 52 bytes):
80 00 00 02
00 00 00 34
02 00 00 00
00 00 00 00
00 00 00 01
00 00 00 01
00 00 00 01
00 00 00 00
00 00 00 01
00 00 05 3A
00 00 00 03
00 00 00 00
00 00 00 00

А дальше одни непонятки...

Вопрос №1. После GET_ENCAPSULATED_COMMAND нужно ли передавать RESPONSE_AVAILABLE?
Вопрос №2. Если я отвечаю RESPONSE_AVAILABLE на запрос GET_ENCAPSULATED_COMMAND, то хост снова выставляет запрос GET_ENCAPSULATED_COMMAND. А т.к. данные я уже передал, и передавать нечего, хост на этом прекращает инициализацию. Потом решил ему постоянно передавать REMOTE_NDIS_INITIALIZE_CMPLT. И тут хост как начал метелить GET_ENCAPSULATED_COMMAND в цикле, что я испугался и впал в ступорsmile.gif

Вопрос №3. Что я делаю неправильно?


По документу вроде хост должен вычитать пакет данных из Bulk IN. Но таких запросов что-то не наблюдается... sad.gif((

Сообщение отредактировал DiMonstr - Feb 6 2010, 18:49
Go to the top of the page
 
+Quote Post
VslavX
сообщение Feb 6 2010, 21:51
Сообщение #3


embarrassed systems engineer
*****

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



Цитата(DiMonstr @ Feb 6 2010, 20:45) *
REMOTE_NDIS_INITIALIZE_MSG (Size 24 bytes):
02 00 00 00
...
REMOTE_NDIS_INITIALIZE_CMPLT(Size 52 bytes):
80 00 00 02
...

Э-э-э-э, а с порядком байтов у Вас ничего не напутано случайно?

Цитата(DiMonstr @ Feb 6 2010, 20:45) *
Вопрос №1. После GET_ENCAPSULATED_COMMAND нужно ли передавать RESPONSE_AVAILABLE?

Нет, не нужно. RESPONSE_AVAILABLE следует высылать тогда, когда Вы готовы что-то передать хосту - результат выполнения предыдущих посланных rоманд или какую-либо асинхронную нотификацию. Поскольку RA посылается в interrupt endpoint, то хост увидит это сообщение достаточно быстро и выдаст запрос GET_ENCAPSULATED_COMMAND, на который и следует выдать имеющиеся данные (результат выполнения команды присланной в SEND, например).

Цитата(DiMonstr @ Feb 6 2010, 20:45) *
Вопрос №2. Если я отвечаю RESPONSE_AVAILABLE на запрос GET_ENCAPSULATED_COMMAND, то хост снова выставляет запрос

Правильно, высылая новый RA Вы говорите хосту что у Вас еще что-то есть, вот он и спрашивает новым GET-ом.

Цитата(DiMonstr @ Feb 6 2010, 20:45) *
По документу вроде хост должен вычитать пакет данных из Bulk IN. Но таких запросов что-то не наблюдается...

До запуска хостом чтения по Bulk IN еще достаточно далеко - нужно перейти в состояние data-inited, а для этого маска фильтров устанавливается хостом при помощи SEND/RA/GET, поскольку у Вас этот механизм еще не запустился - то до чтения Вы и не дошли пока.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- VslavX   Есть желание сделать TCP/IP over USB   Feb 17 2009, 09:45
- - AlexandrY   RNDIS по сути транспортирует Ethernet пакеты Нафик...   Feb 17 2009, 10:02
|- - VslavX   Цитата(AlexandrY @ Feb 17 2009, 12:02) RN...   Feb 17 2009, 10:27
|- - AlexandrY   Сочувствую. Выж не клиент, а разработчик. PPP чере...   Feb 17 2009, 16:29
|- - VslavX   Цитата(AlexandrY @ Feb 17 2009, 18:29) Со...   Feb 17 2009, 17:44
|- - 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   Цитата(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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 11:05
Рейтинг@Mail.ru


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