Registered by Harald Landro

A USB stack for embedded applications using TinyOS.

TinyUSB is a usb stack for embedded applications using TinyOS. It aims at efficiency and ease of use without compromising much on the features of usb. It currently implements bulk and interrupt pipes in addition to the default message pipe on full-speed devices according to the usb 2.0 specification (see http://www.usb.org/developers/docs/). Isochronous pipes have not been implemented yet. It is designed to be easy to port; the difficult part of porting to a new usb chip is porting tinyos, as it is not ported to many microcontrollers with usb support yet. It will support usb classes in the future, but at present only the HID class is implemented.

For an example of the efficiency of the stack, the bulkecho example in the tutorial creates a binary that is 3910 bytes and uses 366 bytes of RAM. Speed tests included in the project show that on the rzusbstick platform, running at 8MHz, it can transmit data on the usb bus in excess of 700kB/s. On the 1287on600 platform, which runs at 16MHz, it saturates the full-speed usb bus at just above 1MB/s.

A tutorial can be found here (it is not really done yet, but contains quite a lot of information):
http://dl.dropboxusercontent.com/u/14798045/doc/tutorial.pdf

Nesdoc documentation:
http://dl.dropboxusercontent.com/u/14798045/doc/nesdoc/1287on600/index.html

To develop the transfer system, I used a theoretical approach based upon petri nets. The petri nets give a graphical means to verify that the transfer system is correct. These petri nets and how they are connected to the implementation is described here:
http://dl.dropboxusercontent.com/u/14798045/doc/usb%20transfer%20petri%20nets.pdf

Just a quick note: The usb 2.0 specification defines three speeds: low-speed, full-speed and high-speed. The maximum speed on a "full-speed" usb device is thus 12Mbaud.

Project information

Maintainer:
Harald Landro
Driver:
Not yet selected
Licence:
Simplified BSD Licence

RDF metadata

View full history Series and milestones

trunk series is the current focus of development.

All code Code

Version control system:
Bazaar
Programming languages:
nesC,Python

All bugs Latest bugs reported

All blueprints Latest blueprints

Get Involved

Downloads

tinyusb does not have any download files registered with Launchpad.