0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RNDIS协议实现USB虚拟网卡上网技术解析 !

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2025-12-12 17:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

RNDIS(Remote NDIS)技术通过USB接口实现TCP/IP协议栈的传输,将设备虚拟为一块以太网卡,从而让主机系统无需额外拨号即可通过USB连接共享网络。该方式广泛应用于嵌入式设备与主控终端之间的高速联网,具备即插即用、兼容性强等优势。


本文以Air780EPM系列核心板/开发板为例,分享在Windows及Linux系统下,通过RNDIS方式实现USB上网的要点。

一、Windows下使用RNDIS功能

Windows系统默认支持RNDIS,直接用USB连接板子和电脑就可以使用。

1.1 核心示例代码

open_rndis.lua核心代码如下图示,完整demo详见源码仓库最新文件。

wKgZO2k70_aAbUZZAAQiSFu4pLA355.png

1.2 确认RNDIS状态

先用Luatools将相关代码烧录到模组中,通过日志来确认是否已经成功开启RNDIS功能:

wKgZO2k71D-AbvEhAATsKiGZuOA352.png

1.3 在Widows中启用RNDIS

当开启RNDIS功能后,Air780EPM会虚拟一个网卡,此网卡可在“设备管理器”或“高级网络设置”中看到。

wKgZO2k72d6AQ62fAAJ0IPqXf4U212.pngwKgZO2k72f6AVk9LAAIhgRRzECQ241.png

启用完毕后,即可看到我们电脑的图标已经变为以太网连接,此时可以正常使用RNDIS上网了。

wKgZPGk72jyAePYlAAKoTLjYPBs128.png

1.4 相关注意事项

由于Air780EPM驱动使用的是CDC驱动,所以请使用Win10及其以上系统(Win10以下系统,Air780EPM不做支持)。

如果启动后日志中打印RNDIS启动成功,但是Windows上没有连上网络,需要确认下系统是否将RNDIS的虚拟网卡禁用了

wKgZO2k72pSAGn6_AAIFM3usd5Y042.png

二、Linux下使用RNDIS功能

2.1 在Linux中启用RNDIS

因为Air780EPM的RNDIS使用CDC-ACM驱动,大部分Linux系统默认就支持,所以无需设置代码,插入USB就可以在Linux中使用。

使用 ls /dev/ttyACM* 即可看到三个端口

wKgZO2k72s2AMz91AAFnkaUsHlM564.png

在控制台查看USB设备可以看到一个ID为19d1:0001的USB设备,这个就是Air780EPM虚拟出的USB网卡:

wKgZO2k72y6ADod1AAKDNX5mJlQ247.png

查看网卡信息可以看到如下信息:

wKgZPGk721CAISkjAANCSyUDf0E702.png

尝试使用ping命令访问百度,联网成功:

wKgZO2k728CAahlbAATHc2mDLR8464.png

2.2 相关注意事项

有些Llinux设备存在Air780EPM重启后,操作文件会发生移位。

比如:

本来是/dev/ttyACM0/1/2,重启后变成了ttyUSB1/3/4。

最靠谱的方法是,通过驱动节点来找到操作文件usb_find.c;

寻找真正的需要的端口:

FindUsbDevice(AIRM2M_USB_DEVICE_AT_INTERFACE_ID)

每个设备的ethx可能不一样,插入Air780EPM后增加的网卡即为RNDIS网卡。

如果遇到没有RNDIS驱动的情况,可在编译内核时参考下图配置:

wKgZO2k73CGATPP_AAl89qTU0oI951.png

今天的内容就分享到这里了~

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • usb
    usb
    +关注

    关注

    60

    文章

    8375

    浏览量

    281813
  • 虚拟网卡
    +关注

    关注

    0

    文章

    8

    浏览量

    1593
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    PLC远程监控有什么物联网技术的加持

    协议解析技术 工业协议兼容性 技术核心 :支持Modbus、Profinet、OPC UA、EtherCAT等主流工业
    的头像 发表于 11-10 17:57 419次阅读

    USB 扩展网卡全方位指南:从选购到使用

    在无线网络普及的当下,有线网络凭借更稳定的传输速率和更低的延迟,仍是游戏、直播、大型文件传输等场景的首选。而USB扩展网卡(又称USB千兆网卡US
    的头像 发表于 10-24 15:37 467次阅读
    <b class='flag-5'>USB</b> 扩展<b class='flag-5'>网卡</b>全方位指南:从选购到使用

    如何理解工业物联网网关的协议解析功能

    工业物联网网关的协议解析功能是其核心能力之一,它通过将不同工业设备使用的多样化通信协议转换为统一格式,实现异构设备间的无缝互联与数据交互。以下从功能定位、
    的头像 发表于 10-15 11:40 167次阅读

    多网融合时代:4G/Wi-Fi/以太网/虚拟网卡配置实战!

    应用开发中我们常使用网卡和网络适配器这两种名称,大家只要知道这两种名称表示同一个概念就行了。 LuatOS开发中的网卡,和电脑上网卡的作用是完全一样的。 我们先来看一张电脑上的网卡图片
    的头像 发表于 10-09 18:25 139次阅读
    多网融合时代:4G/Wi-Fi/以太网/<b class='flag-5'>虚拟</b><b class='flag-5'>网卡</b>配置实战!

    基于USB的多虚拟设备通信

    随着芯片技术的进步,USB 已成为 MCU 的标准接口,为连接外部设备提供了灵活性和多功能性。新唐科技是将USB接口集成到MCU/MPU芯片中的先驱,采用ARM® Cortex® M0/M23/M4
    发表于 09-05 06:51

    协议解析网关是什么?有什么功能?

    、OPCUA、HTTP等),并将其转换为目标系统或设备可识别的协议格式,从而实现协议的通信与数据交互。 简单来说,协议解析网关就像“翻译官
    的头像 发表于 08-13 14:04 615次阅读
    <b class='flag-5'>协议</b><b class='flag-5'>解析</b>网关是什么?有什么功能?

    USB上网实战教程:RNDIS驱动一键配置!

     想要通过USB线快速连接网络?本文详解RNDIS驱动的安装与配置步骤。从Linux系统检测到设备虚拟网卡,仅需几个命令即可实现TCP/IP
    的头像 发表于 08-04 15:46 1074次阅读
    <b class='flag-5'>USB</b><b class='flag-5'>上网</b>实战教程:<b class='flag-5'>RNDIS</b>驱动一键配置!

    让开发板畅游网络:RT-Thread CherryUSB 驱动 RNDIS 模块详解 | 技术集结

    本文通过在RT-Thread操作系统上,使用CherryUSB软件包作为USBHost协议栈,驱动AIR780E4GCat.1模块的RNDIS功能,并成功接入lwIP网络协议栈,最终在开发板上
    的头像 发表于 07-02 17:04 3007次阅读
    让开发板畅游网络:RT-Thread CherryUSB 驱动 <b class='flag-5'>RNDIS</b> 模块详解 | <b class='flag-5'>技术</b>集结

    【Milk-V Duo S 开发板免费体验】烧录系统与SSH登录体验

    TF卡插到开发板,TypeC USB接电脑上电 可以看到LED闪烁,说明系统运行。 USB枚举虚拟网络连接SSH登录 USB会枚举出RND
    发表于 06-28 23:56

    51+单片机TCP-IP+协议栈ZLIP源码

    概述 单片机上网技术,是当前的一个热门技术。单片机上网技术中的一个重要部分是在单片上实现 TCP/IP 协议栈。现在可获得的 TCP/IP
    发表于 04-22 15:11

    hyper v 上网,Hyper-V上网虚拟机网络配置

    大家介绍Hyper-V上网虚拟机网络配置。    在Hyper-V环境中,正确配置虚拟机的网络设置是确保虚拟机能够正常访问外部网络的关键。以下是详细的Hyper-V
    的头像 发表于 02-06 10:29 4153次阅读
    hyper v <b class='flag-5'>上网</b>,Hyper-V<b class='flag-5'>上网</b>:<b class='flag-5'>虚拟</b>机网络配置

    PROFINET通讯协议报文解析

    PROFINET是一种广泛应用于工业自动化领域的通信协议,由PROFIBUS国际组织开发,基于以太网技术,支持工业控制系统和设备(如传感器、执行器和其他控制器)之间的通信。本文将对PROFINET
    的头像 发表于 02-03 14:29 6140次阅读

    USB PPP拨号上网,看这篇!

    今天一起来看看,如何使用PPP拨号的方式快速实现USB上网。 一、Windows下PPP拨号 1.1 配置标准调制解调器 1)选择COM口 具体操作如下: 打开控制面板—>电话和调制解调器
    的头像 发表于 01-08 18:24 1209次阅读
    <b class='flag-5'>USB</b> PPP拨号<b class='flag-5'>上网</b>,看这篇!

    快速入门!RNDIS网卡实现USB上网~

    本文将带你使用RNDIS的方式,搭配Linux主控终端,快速实现USB上网。   RNDIS是指Remote NDIS,基于
    的头像 发表于 12-24 17:02 2620次阅读
    快速入门!<b class='flag-5'>RNDIS</b><b class='flag-5'>网卡</b><b class='flag-5'>实现</b><b class='flag-5'>USB</b><b class='flag-5'>上网</b>~

    AUTOSAR通信协议解析 如何实现AUTOSAR通信

    通信协议栈是一个复杂的系统,它涵盖了多种通信方式和模块,以实现车内ECU之间的高效、可靠的数据交换。以下是对AUTOSAR通信协议解析实现
    的头像 发表于 12-17 14:54 3975次阅读