STM32驱动开发(二)–USB Device RNDIS虚拟网卡(USB2.0基础概念讲解)
一、简介
本文基于stm32 Rndis实例,github开源, 使用STM32F407单板。结合协议讲解stm32中USB虚拟网卡驱动的实现。达到外部主机(手机)通过USB接口访问物联网设备网页的功能。
二、参考资料
目前关于USB驱动、RNDIS协议讲解的资料非常少,较多的是windows和linux中的案例,也并没有系统讲述细节。初学者可以看看《圈圈教你玩usb》,结合着书的简介结合标准英文协议来看。本人根据网上找的例子,根据HAL库重新移植实现。把这个案例梳理下来,希望对以后有相同需求的开发者提供一个借鉴的作用。总体参考的资料如下:
1) USB 2.0标准协议
https://usb.org/sites/default/files/usb_20_20210701.zip
2) CDC通信设备类标准协议
https://usb.org/sites/default/files/CDC1.2_WMC1.1_012011.zip
3) 微软RNDIS标准协议 (3290页开始)
https://docs.microsoft.com/en-us/windows-hardware/drivers/opbuildpdf/network/toc.pdf?branch=live
4) S