USBNET Overview
USBNET (USB Networking) is a technology that enables network communication via a USB interface. It allows devices to emulate Ethernet over a USB connection (Ethernet over USB) or directly transmit network data through USB links. It is widely used in scenarios such as embedded devices, industrial control, virtual machines, and portable devices.
Core Features of USBNET
USB Interface Based: Implements network communication using the USB physical layer, eliminating the need for traditional network cables (such as RJ45).
High-Speed Transmission: Supports USB 2.0 (480 Mbps), USB 3.0 (5 Gbps), and even USB4 (40 Gbps).
Low Latency: Delivers lower latency than wireless networks (Wi-Fi), making it suitable for real-time data transmission.
Plug and Play: Supports hot swapping, with automatic device recognition and network configuration upon connection.
Common Working Types of USBNET
ECM Mode (Ethernet Control Model)
Protocol: Standard USB protocol with strong compatibility (natively supported by Linux/Android/macOS).
Applicable Scenarios: Embedded Linux devices, industrial controllers.
RNDIS Mode (Remote NDIS)
Protocol: Microsoft-led USB network protocol, natively supported by Windows by default.
Applicable Scenarios: Windows device debugging (e.g., Android USB network tethering).
NCM Mode (Network Control Model)
Protocol: USB-IF standard protocol, more efficient than ECM.
Applicable Scenarios: 5G modules, high-performance embedded devices.
Functional Overview
This article mainly describes how to implement the USBNET function with a QuecPython development board and provide network access for connected devices. The typical programming workflow is divided into the following parts:
Import the USBNET package
Set the working type of the USB network adapter
Enable the USB network adapter
Import the USBNET Package
First, import the USBNET package from misc.
Set the Working Type
This method is used to set the working type of the USB network adapter.
For API details, please refer to USBNET.set_worktype.
Enable the USB Network Adapter
This method is used to turn on the USB network adapter function.
For API details, please refer to USBNET.open.
Application Example
Taking the EC600MCNLE QuecPython development board as an example, this example creates a USB network adapter to provide network access for a PC. The sample code is as follows:
After entering the above code via QPYcom, the USB network adapter is enabled. When you check the network connection interface on the PC, you will see an additional available network.
Open Command Prompt (cmd) and enter ipconfig, you can see that the basic network information has been obtained. At this point, if you disable all other network interfaces and only keep the USB network adapter interface, the computer can still access the Internet normally.
You can then access web pages through your computer's browser. For example, enter https://python.quectel.com in the browser address bar to access the site normally.




Top comments (0)