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

    文章

    8475

    浏览量

    285826
  • 虚拟网卡
    +关注

    关注

    0

    文章

    9

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于TinyUSB的RNDIS主机示例

    1 概述 本文档专为RNDIS主机所编写,搭配AT-START-F435/437开发板与4G模块使用,可实现AT32F435/437MCU通过USB接口连接4G模块进行上网的功能。
    发表于 03-29 10:07

    HUSB367:高性能USB 2C PD控制器的技术解析

    HUSB367:高性能USB 2C PD控制器的技术解析 在电子设备快速发展的今天,USB Type - C接口和USB PD快充
    的头像 发表于 03-26 17:30 649次阅读

    一篇文章带你了解什么是物联网技术

    物联网技术(Internet of Things, IoT)是一种通过信息传感设备,按约定的协议,将任何物体与网络相连接,实现智能化识别、定位、跟踪、监管等功能的技术。物联网的概念最早
    发表于 02-09 16:58

    触觉智能RV1126B核心板配置USB复合设备(上)

    本文基于触觉智能RV1126B核心板&开发板,为大家介绍配置USB复合设备配置实现,本章节将介绍RNDIS和UAC两种USB复合设备。
    的头像 发表于 01-31 14:03 2753次阅读
    触觉智能RV1126B核心板配置<b class='flag-5'>USB</b>复合设备(上)

    技术解析 | 睿擎平台AMP虚拟网卡:突破双系统通信瓶颈的创新方案

    在工业物联网和边缘计算领域,多操作系统协同工作已成为一种重要趋势。然而,不同操作系统之间的高效通信一直是开发者面临的技术挑战。睿擎平台重磅发布的AMP虚拟网卡技术,为Linux和RT-
    的头像 发表于 01-21 19:06 5676次阅读
    <b class='flag-5'>技术</b><b class='flag-5'>解析</b> | 睿擎平台AMP<b class='flag-5'>虚拟</b><b class='flag-5'>网卡</b>:突破双系统通信瓶颈的创新方案

    触觉智能RK3506开发板配置USB复合设备(上)

    本文基于触觉智能RK3506开发板,为大家介绍配置USB复合设备,本章节将介绍RNDIS和UAC复合设备数据交互。RNDISRNDIS是一种基于USB的网络连接协议,核心作用是将
    的头像 发表于 12-22 12:00 1162次阅读
    触觉智能RK3506开发板配置<b class='flag-5'>USB</b>复合设备(上)

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

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

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

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

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

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

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

    应用开发中我们常使用网卡和网络适配器这两种名称,大家只要知道这两种名称表示同一个概念就行了。 LuatOS开发中的网卡,和电脑上网卡的作用是完全一样的。 我们先来看一张电脑上的网卡图片
    的头像 发表于 10-09 18:25 419次阅读
    多网融合时代: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 1030次阅读
    <b class='flag-5'>协议</b><b class='flag-5'>解析</b>网关是什么?有什么功能?

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

     想要通过USB线快速连接网络?本文详解RNDIS驱动的安装与配置步骤。从Linux系统检测到设备虚拟网卡,仅需几个命令即可实现TCP/IP
    的头像 发表于 08-04 15:46 1826次阅读
    <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 3776次阅读
    让开发板畅游网络: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