Как запрограммировать USB RNDIS? - PullRequest
4 голосов
/ 13 ноября 2010

Я использую одну плату контроллера, на которой работает Linux. Я хочу подключить свое устройство к главному компьютеру (ОС Windows) через USB.

Я решил использовать класс RNDIS для связи между хостом и устройством. У меня готов драйвер на стороне устройства (Linux). Когда я подключаю свое устройство к хосту Windows, оно обнаруживает оборудование как неизвестное устройство RNDIS / CDC. Теперь для разработки драйверов в Windows я использовал «Jungo windriver 10.10». Он сгенерировал INF-файл, и мое устройство было успешно обнаружено в системе.

Теперь, как я могу начать связь между хостом и устройством? Я хотел бы отметить, что я новичок в программировании и не имею опыта программирования на стороне Windows.

Наверняка мне придется разработать драйвер приложения для обеих сторон (Device-Linux и host-windows)

Может ли кто-нибудь подсказать мне, как мне поступить?

Заранее спасибо ....

Ответы [ 3 ]

2 голосов
/ 05 апреля 2011

Во-первых, RNDIS как стандартная поставка доступна для Windows XP и более поздних версий, не для стека хостов Jungo, а для MS.

Во-вторых, знаете ли вы, какой драйвер у вас есть на стороне устройства? Это целевой стек Jungo RNDIS?

Чтобы установить связь между хостом и целью для устройства RNDIS, попробуйте следующие две ссылки от MS, которые помогут вам понять канал управления и канала данных, а также настройку EP:

http://207.46.16.248/en-us/library/ee483123(WinEmbedded.60).aspx http://download.microsoft.com/download/B/0/B/B0B199DB-41E6-400F-90CD-C350D0C14A53/%5BMS-RNDIS%5D.pdf

RNDIS использует два канала, один канал управления и один канал данных. Начальная связь начинается с канала управления, затем данные начинают передаваться по каналу данных, который использует две конечные точки BULK, IN и OUT.

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

0 голосов
/ 13 мая 2011

уже есть модули, которые могут помочь вам при подключении Linux Mac к Win PC. Попробуйте поискать модуль g_file_storage, например, который может позволить вам смонтировать образ файловой системы из linux mc, чтобы выиграть ПК в качестве отдельного диска, на котором вы можете выполнять форматирование, ввод файлов и т.д. ... :) Спасибо, AJ

0 голосов
/ 07 марта 2011

Как я понимаю, Windows загрузит универсальный драйвер клиента USB (драйвер Jungo) для подключения вашего устройства linux. Далее вам нужно будет открыть соединение через конечные точки, вероятно, в и из групповых конечных точек, отформатировать данные (которые вы отправляете) поверхконечные точки в формате протокола RNDIS.Вы должны быть уверены, что ваше устройство Linux действительно предоставляет интерфейс RNDIS.Для помощи я могу посоветовать использовать USB Logger.Попробуйте подключить ваше устройство linux к Windows или Linux, где вы знаете, что устройство было распознано каким-то драйвером, и там соединение затем делает записи о том, что происходит на USB.Кажется, что вы начинаете исследовать USB-интерфейс, и это разные протоколы, я думаю, что лучше начать с некоторого готового материала, попытаться найти и узнать, как люди анализируют, понимают и пишут USB-протоколы, например, для устройства kinect.

...