USB is a popular way to connect broadband networking devices to consumer PCs. Notable applications include cable modems and ADSL. MCCI® offers complete driver and firmware solutions for USB networking.
When using USB networking, the Network Interface Controller (NIC) is connected to the user's computer using USB. If a USB-to-Ethernet bridge is being used, the USB bus, an Ethernet NIC, and a physical Ethernet segment will all be present. If the NIC has been integrated into the target device (for example, as in a cable modem), the software on the PC is the same, but the physical Ethernet segment is replaced by a software "virtual" Ethernet segment.
Figure 1 compares the USB remote NICs to local NIC architectures.
Figure 1. Remote NIC System Diagram
Figure 2 illustrates the virtual Ethernet architecture used in USB cable modems and home networking/SOHO routing applications.
Figure 2. Virtual Ethernet Architecture
Notice that the presence of two NICs implies that there are two Ethernet addresses embedded in the USB device. One would be associated with the NIC that was previously in the host; and one is associated with the NIC that was previously in the device. Frequently, however, this extra Ethernet address can be eliminated, because of the point-to-point nature of the link, especially if (as in cable modems) another NIC already has an Ethernet address assigned; the cable modem NIC address can also be used on the virtual Ethernet.
Figure 3 illustrates the use of the virtual Ethernet architecture used when connecting several PCs to a cable modem or SOHO router using USB:
Figure 3. Multi-port Virtual Ethernet Architecture
In this block diagram, the Multiport Virtual NIC protocol module routes packets to the appropriate ports based on the Ethernet addresses.
MCCI Network Driver Architecture for Windows 2000, XP, and Vista
Figure 4 shows the driver architecture for Windows 2000, XP, and Vista. The architecture in these systems is simpler, because there are no legacy drivers to support. For architectural reasons, we still use a two part driver; this simplifies management, and allows us to use the same drivers on all Windows operating system.
Figure 4. Windows 2000/XP/Vista Software Architecture -- Networking
Firmware Architecture for USB Networking Devices
The firmware architecture for a virtual Ethernet implementation is shown in Figure 5.
Figure 5. Virtual Ethernet Device Block Diagram
The nature of, and the requirement for, the virtual Ethernet layer is somewhat application dependent. In many cases, especially if only one USB device port is to be supported, the Application NIC driver and the Virtual Ethernet can be integrated, resulting in increased efficiency.