Multiple Frame Support

Networking over USB protocols can support network frame aggregation. This allows for multiple network frames to be transferred in a single Bulk Data transfer.

USB Bulk Data transfers have overheads. Both at the bus level where individual transfers must be terminated with a short data packet. And at the OS level where the USB controller drivers must setup and tear down each transfer. And finally in the communication between the protocol driver (class driver on host systems and matching function driver on devices) and the low level controller drivers. These add latency to the time it takes for each transfer to take place.

Aggregating multiple network frames into a single Bulk Data transfer allows the overheads and associated latencies to be absorbed across multiple network frames.

Care must be taken in the use of this feature though. Additional latency is induced as the entire Bulk Transfer must be received before any of the network frames it contains can be forwarded. This places a bound on effective number of frames that should be aggregated. The actual number is best determined by using simple heuristics at runtime to ensure that the use of available bandwidth is optimized with only minimal latency added.

Effective multi-frame support can provide close to 100% improvement in throughput.

Evaluation Version 2.4 USBLAN from Windows Update

The new version of Belcarra's USB Class Driver for Windows is available through the Microsoft DDC.  To use the USBLAN 2.4 evaluation driver your device will need to offer Vendor ID 0x15ec (Belcarra) and our Demo Product ID 0xd041. Ensure that your Windows system is connected to the Internet, plug your device in and let Windows search Windows Update.  The protocol (CDC-ECM, CDC-EEM, CDC-NCM and RNDIS) is automatically detected.

The INF file of the USBLAN evaluation driver creates global variables in the registry using Service name BelcarraDemoUSBLAN (see Section 5.2). These parameters can be modified later using Regedit. Alternatively, common operations, like enable or disable DHCP, can be performed by installing the appropriately named INF file in a supplementary package of INF files (available on request). For example, to enable the DHCP feature do the following
right-click on the file dhcpd-enable.inf in Windows Explorer
select the method Install
N.B. the evaluation USBLAN driver is not the debug version of the driver. If you need to debug your USB device contact for a debug (CHK) version of the evaluation driver.

This evaluation version will run for 30 minutes at a time. It must be re-plugged to continue use.

USB TestDrive Windows Setup

This document is part of series about Belcarra’s USB Testdrive, a quick and easy system for setting up and testing USB solutions between a Windows host and a Gumstix Overo.

The TestDrive system can be used to test and evaluate various USB networking solutions. This document describes
  • How to prepare a Windows test machine
  • How to obtain Belcarra’s USBLAN Windows driver which transparently supports CDC-ECM, CDC-EEM, CDC-NCM.
  • How to run definitive tests to determine reliability, endurance and speed of network links, using industry standard tools.
A USB system consists of a host and one or more peripherals, also known as targets. The TestDrive system uses Windows (all recent versions) as the host environment, and the Gumstix Overo as the target.

Windows Setup and Testing

Belcarra USB TestDrive

Belcarra supports an environment for testing USB Networking protocols. This paper, is the first in a series and will provide an overview of this environment which includes both USB Host and USB Device side software components.

Belcarra’s Overo USB TestDrive is a Linux based test system based on the Gumstix Overo board. The Overo board is a low cost hardware development system using a Texas Instruments OMAP series of System On Chip (SOC) technology. It supports USB 2.0 for both host and client implementations.


The TestDrive system can be used to test and evaluate various USB Networking protocols and implementations:
  • Gadget based network and filestorage function drivers
  • Belcarra based network and mass storage function drivers
  • Belcarra Windows USBLAN class driver
The USB TestDrive kit contains:
  • Overo ROOTFS
  • Compiled Linux kernel and modules
  • script to create an SD card to boot an Overo
Network test tools included:
  • wget / wput
  • iperf
  • apache
  • ping and pingall script

Updated USB MSC Function

Belcarra’s USB Device stack includes a Mass Storage (MSC) function. This allows an embedded device using the USB Framework to emulate a Mass Storage device either as a standalone function or as part of a composite configuration.

The Belcarra MSC solution was updated to increase performance and extend its feature set:
  • More efficient use of the Block IO system for higher throughput
  • Support for mulitple LUN’s (storage volumes)
  • Management (API) allowing things like detecting individual LUN changes
  • Virtual CDROM support (map an ISO image)
  • Read-only volume support -- (Management API allows dynamic change)

CDC-EEM Streaming Mode

Support for networking over USB using the Ethernet Emulation Model was originally implemented in 2006 on both the device (Composite Device Framework) and host  (USBLAN) drivers. Current versions of our drivers now include streaming mode  providing for significantly faster data transfer, "EEM throughput is about 50% higher than ECM in an optimal configuration".  For more information, contact us today.

USBLAN Driver available in Windows Update

Year end review of the Windows Update program that enabled end users to simply and silently install Belcarra USBLAN deemed it as a success.
New Belcarra USBLAN customer kits are required to pass Windows Hardware Quality Labs testing review as well as the previous regime of stress tests.
Microsoft signed USBLAN driver from Windows Update no longer requires system restart or user input during installation.
For more information a fairly comprehensive deployment guide is available here.

[UPDATE - July 20,2011 USBLAN Version 2.4 Released Download OEM Manual]

See also: Linux Gadget VID/PID Patch for USBLAN Evaluation
These patches (download here) modify the Linux Ethernet Gadget default CDC Vendor and Product ID to match the Belcarra USBLAN Evaluation kits available from Windows Update.