EMBEDDED PROJECTS JOURNAL
100% frei und kostenlos,
als PDF und in gedruckter Form,
per Open Source Lizenz
AVR-RISC (Infos)
Embedded Software selbst entwickeln
(inkl. Absatz über USBprog)
AVR-Starterkit für 61,90 EUR
Quicklinks: Home | Online Firmware Pool | Shop
     

Free USB-host-stack for embedded systems

from Benedikt Sauter, sauter@ixbat.de, 05.08.2007

What's usbport? 

It was the purpose of this diploma thesis to design a free, portable and extendable USB-host-stack for embedded-systems. To create an easy-to-use and complete USB-host-stack a lot of work had to be put in the design of the software-structure. Because only with a clear structure other developers can be get interested in using this USB-stack. The clear structure has been achieved by subdividing in single components and drivers. In the diploma thesis a host-controller-driver for the module SL811HS from Cypress, an usb-device-driver for the USB to RS232 converter FT232 from FTDI Inc. and an USB-class-driver for mass storages, hub- and HID-devices has been developed for the USB-host-stack.

 



With the help of example-applications getting started is easier for the user. Furthermore a lot of value has been placed on commenting the source code to improve the readability for the interested developer. The next primal task will be the publication as an open-source-project and the development of further host-controller-drivers.

Downloads 

Diploma  thesis  PDF (GFDL)  Sourcecode (LGPL)

Actual developer version: http://developer.berlios.de/svn/?group_id=7604

Read sources online:  http://svn.berlios.de/viewcvs/usbport/trunk/

News

  • Published the first version 0.1 (05.08.2007)

Einleitung

The Universal Serial Bus - USB - has escpecially been developed to replace technically outdated interfaces such as RS232, parallel port, game port and so forth. With USB costs should be reduced, the connection and the configuration should become easier for the user and a lot of technical problems of the already existing interfaces should be solved.

In the early days of USB there have been only controllers that had been permanently integrated in the chipset of a computer. There haven't been any single USB modules with which you could have controlled an USB device with a random micro-controller. Meanwhile there are a lot of USB modules for embedded systems. Often USB is even already a permanent feature of modern system-on-chip devices. Thus you are now able to use the whole range of USB periphery on an embedded system with an USB interface.

However, a disadvantage of USB is that the specification has become a rather bulky text because of the many requirements. Thus it's difficult to program a communication with a device via USB without further knowledge. As a basis many providers offer several little libraries that show you how to use the applied module. But often these libraries aren't for free and mostly they just demonstrate typical standard functions like mounting a mass storage and the like. If you want to access other devices you face the problem again that you have to gain further knowledge about the USB matter.

The purpose of this diploma thesis is to design and to implement a free, portable and extendable USB-host-stack für embedded systems. The software is meant to be a basis for many different USB-host-modules. Due to a subdivision of the software in several levels a high degree of reapplicability is given. In the single chapters of the diploma thesis it is described how this works out in detail as follows.

Chapter 1 begins with the contemplation of the task, the requirements and fields of the USB-host-stack. After that the basics of an USB-bus are described in chapter 2. This will help the reader to better understand where to pay attention when designing an USB-host-stack. In chapter 3 the components and their tasks in the USB-host-stack are discussed. The implementation of the different levels of an USB-host-stack is described in chapters 4, 5 and 6. In chapter 7 the within the scope of the diploma thesis designed test-PCB is introduced. Finally in chapter 8 a prospect on future work and a conclusion on the finished work is given.

 © 2007 by Embedded Projects, Benedikt Sauter