The goal of this semester project was to plan and develop an implementation of Universal Serial Bus (USB) support for ETH Oberon. USB was founded by the companies Compaq, Intel, Microsoft and NEC. It defines (essentially) a hardware interface and a communciation protocol.
The original motivation for the Universal Serial Bus came from three interrelated considerations:
User applications such as digital imaging demand a high performance connection between the PC and these increasingly sophisticated peripherals.
USB is the answer to connectivity for the PC architecture. It is a fast, bi-directional, isochronous, low-cost, dynamically attachable serial interface that is consistent with the requirements of the PC platform of today and tomorrow.
The development and implementation was done on a Native Oberon system. A central aspect of the design was the posibility to port the USB support to Aos, the Active Oberon System, without having to change the interface design.
After finishing the design phase, the following components were implemented:
The mouse and keyboard drivers should be able to handle all USB mice and keyboards available on the market. The hub driver (included in the core support) should also work with all known USB hubs.
USB Mass Storage devices are a little bit tricky. Although there exists an official specification (from the USB comitee) on how to design such devices and how they should communicate over the bus, vendors often decide to implement their own (proprietary) protocols. This is the reason why USB devices often get delivered with special Windows 95/98/NT (TM) driver disks. Many vendors do not like to give away the specifications of their products, nevertheless the Oberon USB Mass Storage driver supports some proprietary devices.
Further development effort should be made in writing a driver for the Compaq OHCI chipset and the implementation of streaming devices (audio devices, cameras).
The report (including an overview of the Oberon USB API) can be downloaded at the following location:
The report is written in german.