Протокол RNDIS на примере контроллера STM32 работает следующим образом: 45
- Подключаемое по USB устройство представляется сетевой картой. 45
- Клиентская ЭВМ (ПК или гаджет) получает IP-адрес для работы в сети устройства. 45
- По запросу веб-браузера на клиентской ЭВМ устройство отдаёт страницу. 45
- На странице присутствует информация о текущем состоянии и доступные элементы управления. 45
- При активации клиентом элементов управления из браузера передаются соответствующие HTTP-запросы. 45
Некоторые этапы работы протокола:
- Инициализация устройства. 4 После успешной инициализации RNDIS драйвер Windows создаёт сетевой интерфейс, который впоследствии отображается в «Центре управления сетями» и в области трей-индикатора. 45
- Получение IP-адреса. 45 Для этого используется служба получения динамического адреса — DHCP (протокол динамической настройки узла). 45
- Ответ DHCP-сервера. 4 Контроллер «говорит» клиенту, что он находится в определённой сети, должен использовать определённый IP-адрес и что ещё есть DNS-сервер с определённым адресом. 4
- Назначение IP-адреса хостом. 4 Хост назначает интерфейсу выданный IP-адрес и запоминает IP-адрес DNS-сервера. 4
На стороне контроллера STM32 за поддержку RNDIS-протокола и работу с USB отвечает файл usbdrndiscore.c. 45