QuecPython+USBNET:实现USB网卡功能

USBNET 概述

USBNET(USB Networking) 是一种通过 USB 接口 实现网络通信的技术,允许设备通过 USB 连接模拟以太网(Ethernet over USB)或直接进行网络数据传输。它广泛应用于嵌入式设备、工业控制、虚拟机和便携式设备等场景。

USBNET 的核心特点

  • 基于 USB 接口:利用 USB 物理层实现网络通信,无需传统网线(如 RJ45)。
  • 高速传输:支持 USB 2.0(480 Mbps)、USB 3.0(5 Gbps)甚至 USB4(40 Gbps)。
  • 低延迟:相比无线网络(Wi-Fi),USBNET 延迟更低,适合实时数据传输。
  • 即插即用:热插拔支持,设备连接后自动识别并配置网络。

USBNET 的常见工作类型

ECM 模式(Ethernet Control Model)

  • 协议:USB 标准协议,兼容性强(Linux/Android/macOS 原生支持)。
  • 适用场景:嵌入式 Linux 设备、工业控制器。

RNDIS 模式(Remote NDIS)

  • 协议:微软主导的 USB 网络协议,Windows 默认支持。
  • 适用场景:Windows 设备调试(如 Android USB 共享网络)。

NCM(Network Control Model)

  • 协议:USB-IF 标准协议,比 ECM 更高效。
  • 适用场景:5G 模块、高性能嵌入式设备。

功能概述

主要介绍如何使用 QuecPython 开发板实现 USBNET 功能,并为设备提供网络。典型的编程工作流程分为以下几个部分:

  • 导入 USBNET 包
  • 设置 USB 网卡工作类型
  • 打开 USB 网卡

导入 USBNET 包

首先从 misc 中导入 USBNET 包。

from misc import USBNET

设置工作类型

该方法用于设置 USB 网卡的工作类型。

USBNET.set_worktype(type)

API 详情请参考 USBNET.set_worktype

打开 USB 网卡

该方法用于打开 USB 网卡功能。

USBNET.open()

API 详情请参考 USBNET.open

应用案例

以 EC600MCNLE QuecPython 开发板为例,创建 USB 网卡,并未 PC 端提供网络。示例代码如下:

# 首先从misc中导入USBNET包
>>> from misc import USBNET
>>> from misc import Power

# 查询当前USBNET的工作模式,1 表示ECM模式, 3 表示RNDIS模式。
>>> USBNET.get_worktype()
1

# 设置为RNDIS模式
>>> USBNET.set_worktype(USBNET.Type_RNDIS)
0

# 重启模组,用以生效之前配置的模式
>>> Power.powerRestart()

# 重启模组后,导入所需的包
>>> from misc import USBNET
>>> import dataCall

>>> USBNET.get_worktype()
3

# 查询模组是否拨号成功
>>> dataCall.getInfo(1,0)
(1, 0, [1, 0, '10.62.213.130', '211.138.180.4', '211.138.180.5'])

# 有拨号信息后打开USB网卡
>>> USBNET.open()
0

通过 QPYcom 输入以上代码后即可开启 USB 网卡,查看 PC 端网络连接界面,可以看到多出来一个网络可供选择。

打开 cmd,输入 ipconfig,可以看到基本网络信息都已获取,此时关闭其余网络接口,只保留 USB 网卡的网络接口,电脑也可以正常上网。

此时可以通过电脑浏览器访问网页。比如浏览器输入 https://python.quectel.com 即可正常访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值