Hardware Networks

Ethernet and USB on computers

The computer side of a CopperLan Ethernet connection is handled by the default Ethernet hardware available on board.
The software in charge is the CopperLan VNM. This CopperLan piece of code creates a virtual network inside the computer and extends it as needed to the outside world, uniting multiple hardware devices and computers.

The computer side of a CopperLan USB link is directly talking to the local virtual network.


Ethernet in embedded designs

For hardware devices that need networking without being tied to a computer, we offer two solutions:
1. Embedded Linux. This is usually reserved to high-end implementations.
2. Using an off-the-shelf Ethernet capable microcontroller for which we provide the necessary firmware.
This allows the manufacturer to use any CPU/MCU/DSP fit for its main application task while CopperLan is handled independently.

A standardized network-handling chip ensures the following advantages:

  • The network data transfer characteristics are guaranteed (bandwidth, latency)
  • The application host processor capability plays absolutely no role in the network performance.
    On the application side, this allows the use of any application microcontroller that matches the needs of the product, down to the lowest performance and cost options.
  • The CopperLan MCU only sends relevant data to the application MCU.
    It means that only useful information will be seen by the application.
  • Embedded intelligence handles the entire network auto-configuration tasks (declaration, flow control, data filtering, etc).
  • A cost which is volume driven.

The actual choice of a microcontroller implementing the CopperLan Ethernet link is depending on the market offering in terms of adequacy and price/performance ratio. Our current choice is taken from the AVR32 family manufactured by Atmel®.
For the evaluation phase, there is no need to build custom prototyping boards as these are readily available from us


USB in embedded designs

For CopperLan products that cannot be used without a computer, it makes sense to connect them through USB only.

By design, USB is not a networking technology; nevertheless, CopperLan makes it appear so.
With CopperLan through USB, it is possible to have the networking task (VNM) and the middleware (CHAI) residing inside the computer. It implies that a USB-based CopperLan device need not to run networking handling code; it only needs the code linking it to the computer in addition to its specific application code. This transfer of the networking and CHAI jobs inside the computer allows using any low-cost USB-capable MCU.

We have a reference design using the AT90USBKey evaluation board from Atmel®. It is based on an 8-bit USB-capable microcontroller from their AVR® 8-bit family.
Migrating our reference code to the architecture you already master is a no-brainer: just interface your USB handler to our Read and Write C functions.
With this solution, the compact CHAI-Link Client C-code allows rich CopperLan implementations into low-resource microcontrollers.


Combining USB and Ethernet in the same embedded design

Some devices are equally used with and without a computer. Those products could simultaneously offer USB and Ethernet for CopperLan connectivity in order to target various use cases and markets.
Such products can be realized by the combination of the options here above: The application MCU is accessing the computer's CopperLan service when hooked through USB, ignoring the local Ethernet MCU, or alternatively, relying on its local Ethernet MCU when there is no USB connection.


The Ethernet to USB-Host bridge: USB sans computer

For CopperLan products exclusively connected via Ethernet, it might be desirable that they also offer a USB Host port capability to which USB-based CopperLan products can connect.
For those products, Klavis is offering the firmware for dedicated off-the-shelf microcontrollers that handle both USB-Host and Ethernet functionalities. The firmware contains the usual VNM and CHAI, with the added capability of emulating the role of a computer to handle CopperLan USB products.
When using a Linux embedded platform, such functionality is implicit, as it is part of the code we provide.