CopperLan is a complete turnkey solution both for software and hardware companies. It comprises the following:
The CopperLan Protocol (application and system messaging)
The Procedures (mechanisms and rules)
The Middleware (precooked standard routines - supporting system and applications)
The computer Driver set (Virtual network inside the computer and links to external hardware)
CopperLan-ready chip for embedded CopperLan via Ethernet - avoids in-house development
Embedded Linux implementation
A protocol is the entire set of commands and messages that a communication system offers. In CopperLan, most of the system-related and supporting functions are automated in the background and are not directly related to the performance and control; this is why we broadly split the Protocol in two:
Performance messages (editing, playing, displaying)
System messages (housekeeping)
Performance messages is the part that provides the application-related capabilities that are specific to each product.
System messages are the supporting foundation for Performance messages. Very few system messages will be used by the applications; they are essentially hidden inside system procedures.
Instead of offering a bland set of protocol commands and leaving the implementers to figure out their own way of using them, we want to accelerate the integration of CopperLan into products by having the manufacturers concentrate on their applications. Procedures define how things should be done and what the supporting code does. Reference implementations are also offered both for software applications and embedded devices.
Procedures are rules and definitions for various processes.
Procedures are defined with several goals in mind:
Simplify the job of the application's developer
Provide user friendliness
Rules which the application will comply with; these will be implemented by the application developer.
Rules and process offered as turnkey code that is provided by CopperLan. Such code is spread among several sub-categories:
Low-level network routines
Non-real time user related procedures
Much code is provided by CopperLan in ready-to-use format.
In the context of application code, the middleware is defined as code that integrates into the application code in order to provide standardized supporting features. Within an application, CopperLan middleware is called CHAI (CopperLan Host Application Interface). Conceptually, the CHAI sits between the code written by the application developer and the network. It offers the entire functionality of network management and many application supporting functions (Procedures). Practically, the CHAI code will be compiled within the application.
The generic Driver name groups all software that is needed inside a computer to run CopperLan and is not part of the applications.
It consists of the following:
The Virtual Network Manager (VNM) that creates a virtual CopperLan network for applications running inside the computer.
Various network extensions to equipment attached via USB, Ethernet, Firewire or other links.
MIDI interfacing module that caters for MIDI applications and physical MIDI links.
The full set is freely available for downloading and offered on MAC-OS® and Windows® computer platforms (Linux for computers to be announced later).
For manufacturers needing Ethernet capability into their hardware products, three solutions are at hand:
1. Using an Ethernet-capable chip of own choice. This freedom implies the associated development effort and cost.
2. Using a generic turnkey solution. Manufacturers can buy the low-cost CopperLan specified microcontroller from a supplier of their choice and program it with the firmware we provide, or alternatively, buy it readily programmed for development and small production runs.
3. Use the embedded Linux implementation we offer. This allows having both the CopperLan service and the application code to run on the same chip.
In addition to network handling, an Ethernet/CopperLan capable microcontroller (1 & 2 above) contains the CHAI, and a CHAI-link server. The implementers only need to integrate a small CHAI-link client code in their application microcontroller to benefit from the entire set of CopperLan capabilities.